2013-09-26 4 views
1

У меня есть сборка, которую я пытаюсь отладить в GDB. Более конкретно, я пытаюсь посмотреть, какие значения сравниваются по всей программе, но есть много инструкций, которые я не делаю, чтобы пройти. Есть ли способ просто запустить, пока я не нахожу определенный тип инструкции, например, cmp? Например:Пропуск до определенных инструкций в GDB

0x08048eaf <+98>: mov %ecx,%edx 
0x08048eb1 <+100>: sub (%eax),%edx 
0x08048eb3 <+102>: mov %edx,(%eax) 
0x08048eb5 <+104>: add $0x4,%eax 
0x08048eb8 <+107>: cmp %ebx,%eax 
0x08048eba <+109>: jne 0x8048eaf <func+98> 

Это только простой цикл, но я не хочу, чтобы пройти через все другие команды просто посмотреть на сравнивающемся заявлении. Я понимаю, что могу ввести until *0x8048eb8, но что, если я не знаю, каким будет мое следующее сравнение?

Я пробовал искать в Интернете, но я не смог найти ответы.

ответ

0

Попробуйте ввести break *0x08048eba.

+0

Я знаю, что это просто доходит до утверждения перехода. Я хочу продолжить до следующего, произвольного сравнения, хотя – mottese

+0

Итак, вы хотите разбить любую инструкцию 'cmp'? –

+0

Это именно то, что я хочу сделать – mottese

Смежные вопросы