Как разбить исполняемый файл 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.

Другие вопросы по тегам