Как разбить исполняемый файл gem5 в GDB по n-й инструкции?
С помощью --debug-flags ExecAll
При трассировке я обнаружил, что в N-й инструкции есть ошибка, которая возникает в N-й строке журнала.
Есть ли простой способ специально разбить эту инструкцию на отладку в GDB и просмотреть внутреннее состояние gem5?
1 ответ
Если ваша достопримечательность видит ExecutionContext
объект, который, если часто называют xc
Вы можете просто добавить условную точку останова, например:
b MyClass::myFunction if xc->numInsts.data()->value() == <n> - 2
-2
необходим, потому что этот индекс основан на нуле, и потому что тик увеличивается после выполнения инструкции.
Протестировано в gem5 9f247403e558977738b5911a45e5776afff87b1a.