УПРАВЛЕНИЕ ИСПОЛНЕНИЕМ С МЕЖУРОВНЕВЫМ СОПОСТАВЛЕНИЕМ ТРАССИРОВКИ

1. Система управления исполнением воспроизведения трассировки, содержащая:
процессор;
память в функциональной связи с процессором;
трассировку, записанную во время исполнения программы, вместе со средой исполнения и ядром, причем трассировка включает в себя записи трассировки, которые включают в себя запись деятельности посредством инструкций собственного кода, которые исполнялись, по меньшей мере, в одном потоке программы;
исходный код, по меньшей мере, фрагмента программы;
исходно-промежуточное сопоставление, которым осуществляется сопоставление между исходным кодом и промежуточным представлением исходного кода;
промежуточно-собственное сопоставление, которым осуществляется сопоставление между промежуточным представлением и трассировкой; и
контроллер исполнения в программном инструментальном средстве, причем контроллер исполнения выполнен с возможностью, при его исполнении процессором управлять исполнением воспроизведения трассировки в ответ на запросы, в котором исходный код соотносится с записями трассировки посредством исходно-промежуточного сопоставления и промежуточно-собственного сопоставления.
2. Система управления исполнением воспроизведения трассировки по п.1, в которой контроллер исполнения выполнен с возможностью транслировать запросы, по меньшей мере, для следующих операций в соответствующее выполнение инструкций собственного кода трассировки:
операции шага внутрь исполнения назад,
операции шага наружу исполнения назад и
операции шага с обходом исполнения назад.
3. Система управления исполнением воспроизведения трассировки по п.1, при этом система сконфигурирована выполнять шаг внутрь части исходного кода, которая во время исполнения воспроизведения еще не была компилирована в инструкции собственного кода.
4. Система управления исполнением воспроизведения трассировки по п.1, при этом промежуточное представление содержит, по меньшей мере, одно из следующего: символьная таблица, которая соотносит, по меньшей мере, два идентификатора, используемых в исходном коде, с типами данных, абстрактное синтаксическое дерево, полученное, по меньшей мере, из фрагмента исходного кода, и трансляция в промежуточный язык, по меньшей мере, фрагмента исходного кода.
5. Система управления исполнением воспроизведения трассировки по п.1, при этом трассировка не содержит какой-либо исполняющийся экземпляр среды исполнения, причем система не сконфигурирована осуществлять вызов внутрь трассировки для исполнения какого-либо кода, который является характерным для среды исполнения.
6. Система управления исполнением воспроизведения трассировки по п.1, дополнительно содержащая живой процесс программы с вызываемым экземпляром среды исполнения, при этом трассировка записывается из живого процесса, и система сконфигурирована для исполнения воспроизведения трассировки.
7. Система управления исполнением воспроизведения трассировки по п.1, при этом система сконфигурирована пропускать исполнение воспроизведения фрагмента трассировки, в том смысле, что контроллер исполнения перемещает исполнение воспроизведения с первого момента времени исполнения трассировки во второй момент времени исполнения трассировки без выполнения системой инструкций собственного кода трассировки, которые были бы выполнены при непрерывном исполнении от первого местоположения до второго местоположения.
8. Способ управления исполнением воспроизведения трассировки, содержащий этапы, на которых:
идентифицируют трассируемую управляемую программу, а именно программу, которая была сконфигурирована исполняться вместе с вызовами в среду исполнения и сконфигурирована для трассировки;
принимают запрос управления исполнением воспроизведения трассировки, причем запрос управления исполнением воспроизведения трассировки принимается в программном инструментальном средстве, работающем в вычислительной системе;
на основе запроса управления исполнением воспроизведения трассировки автоматически выполняют сопоставление между исходным кодом трассируемой управляемой программы и промежуточным представлением исходного кода, и автоматически выполняют сопоставление между промежуточным представлением и трассировкой, при этом трассировка включает в себя запись действий посредством, по меньшей мере, одного процессора, каковые действия трассируются, когда трассируемая управляемая программа исполняется, при этом трассировка не включает в себя какой-либо исполняющийся экземпляр среды исполнения; и
выполняют инструкции собственного кода трассировки, которые соответствуют запросу управления исполнения воспроизведения трассировки, тем самым воспроизводят фрагмент трассировки.
9. Способ управления исполнением воспроизведения трассировки по п.8, в котором запрос управления исполнением воспроизведения трассировки идентифицирует операцию шага наружу исполнения назад, чтобы выполнять шаг наружу из подпрограммы, при этом способ содержит этап, на котором устанавливают контрольную точку на инструкцию собственного кода трассировки, которая имеет местоположение, которое в коротком промежутке времени предшествует местоположению адреса возврата вызова в подпрограмму, причем местоположение A в коротком промежутке времени предшествует местоположению B в трассировке, когда A встречается ранее B во время исполнения трассировки вперед, и существует, самое большее, пять инструкций собственного кода трассировки между A и B.
10. Способ управления исполнением воспроизведения трассировки по п.8, в котором исходный код содержит операторы и выражения, при этом способ содержит установку контрольной точки на инструкцию собственного кода трассировки, которая находится на крае группы всех инструкций собственного кода трассировки, которые сопоставляются посредством способа с конкретным оператором или конкретным выражением в исходном коде, причем инструкция X из группы инструкций G в трассировке находится на краю G, когда X удовлетворяет, по меньшей мере, одному из следующих условий: X является первой инструкцией из G встреченных во время исполнения трассировки вперед, X является последней инструкцией из G встреченных во время исполнения трассировки вперед, X является первой инструкцией из G встреченных во время исполнения трассировки назад, или X является последней инструкцией из G встреченных во время исполнения трассировки назад.
11. Способ управления исполнением воспроизведения трассировки по п.8, в котором запрос управления исполнением воспроизведения трассировки идентифицирует операцию шага внутрь исполнения вперед, чтобы выполнять шаг внутрь подпрограммы пользовательского кода, при этом исполнение воспроизведения подпрограммы пользовательского кода включает в себя исполнение воспроизведения, по меньшей мере, одного вызова в подпрограмму среды исполнения, причем этот вызов в подпрограмму среды исполнения не имеет соответствующего оператора вызова или выражения вызова в исходном коде, при этом способ содержит, по меньшей мере, один из следующих этапов, на которых:
устанавливают диапазон контрольных точек, который указывает полный диапазон памяти, который предназначается для приема динамически скомпилированного кода; или
устанавливают контрольную точку, чтобы выполнять операцию шага с обходом по вызову в подпрограмму среды исполнения.
12. Способ управления исполнением воспроизведения трассировки по п.8, в котором этом запрос управления исполнением воспроизведения трассировки вызывает, по меньшей мере, одну из следующих операций:
продолжение исполнения воспроизведения трассировки вперед по трассировке, пока контрольная точка не будет достигнута;
продолжение исполнения воспроизведения трассировки вперед по трассировке, пока местоположение в диапазоне контрольных точек не будет достигнуто;
продолжение исполнения воспроизведения трассировки назад по трассировке, пока контрольная точка не будет достигнута; или
продолжение исполнения воспроизведения трассировки назад по трассе, пока местоположение в диапазоне контрольных точек не будет достигнуто;
операция шага внутрь исполнения назад;
операция шага наружу исполнения назад;
операция шага с обходом исполнения назад;
операция шага внутрь исполнения вперед;
операция шага наружу исполнения вперед;
операция шага с обходом исполнения вперед.
13. Способ управления исполнением воспроизведения трассировки по п.8, в котором во время исполнения трассируемой управляемой программы максимальное число контрольных точек было ограничено аппаратным ограничением контрольных точек, что процессор может наблюдать, самое большее, N адресов одновременно, при этом способ дополнительно содержит установку более чем N контрольных точек во время исполнения воспроизведения трассировки, тем самым превышая аппаратное ограничение контрольных точек.
14. Машиночитаемый носитель данных, сконфигурированный с помощью данных и инструкций выполнять, при исполнении процессором в функциональной связи с памятью, способ управления исполнением воспроизведения трассировки, причем способ управления исполнением воспроизведения трассировки содержит этапы, на которых:
принимают запрос управления исполнением воспроизведения трассировки, причем запрос управления исполнением воспроизведения трассировки принимается в программном инструментальном средстве, работающем в вычислительной системе;
на основе запроса управления исполнением воспроизведения трассировки выполняют сопоставление между исходным кодом трассируемой управляемой программы и промежуточным представлением исходного кода и выполняют сопоставление между промежуточным представлением и трассировкой, при этом трассировка включает в себя запись инструкций собственного кода, которые были трассированы при исполнении трассируемой управляемой программы, причем трассировка не включает в себя какой-либо исполняющийся экземпляр среды исполнения; и
выполняют инструкции собственного кода трассировки, которые соответствуют запросу исполнения воспроизведения трассировки, или устанавливают контрольную точку на инструкцию собственного кода трассировки, тем самым управляя воспроизведением трассировки.
15. Машиночитаемый носитель информации по п.14, при этом способ содержит, по меньшей мере, три следующих действия управления исполнением:
управление исполнением среды исполнения на высоком уровне с помощью информации машинного уровня в трассировке, где управление на высоком уровне означает управление на основе пользовательского выбора, который указывает идентификатор или оператор или выражение в исходном коде, а информация машинного уровня означает информацию, которая является характерной для архитектуры процессора;
отладку исполнения вперед и исполнения назад процесса трассируемой управляемой программы;
выполнение шага внутрь вызова, показанного в исходном коде, по меньшей мере, отчасти посредством установки большого диапазона контрольных точек, где диапазон контрольных точек является большим, когда он охватывает, по меньшей мере, тысячу соседних адресов или инструкций в трассировке;
сопоставление с конкретной версией собственного кода подпрограммы, когда трассировка включает в себя, по меньшей мере, две версии собственного кода подпрограммы; или
запись данных трассировки из живого процесса трассируемой управляемой программы во время отладки живого процесса и затем выполнение отладки обратного исполнения по живому процессу с помощью, по меньшей мере, некоторых из записанных данных трассировки.