Просмотр графиков времени выполнения функций с помощью Lauterbach Trace - PullRequest
1 голос
/ 26 марта 2019

Я отлаживаю сбой, при котором длительный метод часто вызывается перед смертью.Моя главная проблема заключается в том, чтобы определить, где находятся вложенные и / или рекурсивные вызовы.

Окно Trace-> Chart-> Symbols показывает график работы функции в данный момент времени, который выглядит следующим образом:следующие вызовы:

         display
            |
       drawChildren
       /         \
  drawTitle   drawImage
      |           |
   display     display
      |           |
drawChildren  drawChildren
display      | _     _   _       _   _     _
drawChildren |  |_  | |_| |  _  | |_| |  _|
drawTitle    |    |_|     |_| | |     | |
drawImage    |                |_|     |_|

Что мне нужно, так это что-то более похожее на график пламени, где продолжительность каждого вызова видна сразу, а вложенные вызовы легче обнаружить:

display______________________________
 drawChildren_______________________
  drawTitle_______ drawImage_______
   display_______   display_______
    drawChildren     drawChildren

Я пытался просмотреть представление списка, но мне было неудобно ориентироваться в количестве вызовов и итераций в нашем проблемном коде.Я знаю, что представление диаграммы можно отсортировать, но есть ли способ получить другое представление данных?

1 Ответ

2 голосов
/ 27 марта 2019

Полагаю, команды, которые лучше всего соответствуют вашим потребностям:

  • Trace.Chart.Nesting
  • Trace.ListNesting

Вы не найдете эти команды в меню. Вы должны ввести их в командной строке в нижней части окна приложения TRACE32 (за B::) или использовать программные клавиши под командной строкой, чтобы найти эти команды.

Обратите внимание, что вы можете синхронизировать окна трассировки друг с другом с помощью параметра "/Track".

...