Один шаг - процесс по одной инструкции по сборке - PullRequest
0 голосов
/ 28 сентября 2011

Когда вы выполняете одношаговую операцию с использованием ptrace, процесс выполняет одну «строку» кода или вместо него выполняет одну строку сборки.Если это первый случай, есть ли способ пошагового выполнения процесса в Linux только одной инструкцией процессора?

Я имею в виду сделать это в ядре, но источник GDB довольно большой, и трудно точно определить, что именноэто делает, чтобы сделать это одиночным шагом ASM.Я хочу пошаговый процесс, просто я не уверен, каково точное поведение одиночного шага ptrace (всего 1 инструкция или больше?)

Ответы [ 2 ]

2 голосов
/ 28 сентября 2011

Это делает одну линию сборки.Вы можете проверить это, открыв два сеанса: в одном сеансе вы можете запустить свою программу, которая отображает содержимое регистра IP (EIP в 32-битном и RIP в 64-битном), а в другом запустить objdump, используя следующую команду - objdump -d -j.code |меньше и проверить

0 голосов
/ 28 сентября 2011

Использовать gdb: http://condor.depaul.edu/glancast/373class/docs/gdb.html#Running_the_Program_being_Debugged

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

...