Использование GDB для оценки команд ASM - PullRequest
1 голос
/ 09 марта 2011

Я пытаюсь написать небольшую функцию, чтобы GDB оценивал, что делает команда ASM, учитывая 2 переменные: начальное значение и конечное значение. По сути, я пытаюсь заставить GDB делать si, пока не попадет в команду, которая делает то, что я ищу. Скажем, например, я ищу следующую команду, которая добавляет от 1 до 34. Я знаю, что я мог бы вручную пройти и распечатать инструкции и перейти к си, но я бы предпочел, если это возможно, создать функцию, которая смотрит на инструкция ASM, а затем останавливается, если находит команду, которая делает это. Поэтому при условии, что моя команда, которая соответствует, является ADD R1, R2, R3 и я ищу начальное значение 24 и конечное значение 55, если R2 = 24 и R3 = 31, и я знаю, что команда add, это будет моя очередь, чтобы остановить , Я думаю, что если бы я мог заставить GDB разбить команду x / i, я мог бы легко заставить ее это сделать, так как она могла бы разделить ADD, R1, R2 и R3, я мог бы оценить ее в своей собственной функции с помощью если (($ R2 + R3) ==) Проблема в том, что я не могу заставить GDB разорвать эту x / i строку на части ... и я думаю, что, возможно, ему придется каким-то образом передать ее из GDB во внешнюю программу. Если у кого-то есть идея, я на все уши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...