Как написать команды в GDB-скрипте, которые выполняются каждый раз, когда выполняется удар по конкретному brkpt? - PullRequest
3 голосов
/ 09 февраля 2010

Мне нужно отлаживать определенный набор команд каждый раз, когда я вызываю gdb - поэтому я решил поместить их в мой .gdbinit. Все было хорошо, пока я не решил использовать commands (для выполнения определенного набора команд GDB каждый раз, когда нажимается определенный brkpt). Мой скрипт выглядит следующим образом:


<code>define setup
   handle SIGTRAP noprint nostop
   br 'Class1::Fun1(void)'
   run
   br 'Class2::Run(void)'
   c
   br Function2
   commands 3
     return 0 
     c
   end
end
</p> <p>Problem is , whenever I execute them one by one , it behaves perfectly , but when i source the script and run setup, он ведет себя странно после команд (не делает то, что делал ранее).

Кто-нибудь может помочь?

1 Ответ

1 голос
/ 24 февраля 2010

Вы, вероятно, не размещаете команды на той точке останова, о которой думаете.

На вашем месте я бы изменил сценарий следующим образом:

define setup
   handle SIGTRAP noprint nostop
   br 'Class1::Fun1(void)'
   run
   br 'Class2::Run(void)'
   c
   br Function2
   commands
     return 0 
     c
   end
end

Если цель останова не указана, commands связывается с самой последней точкой останова. Таким образом, независимо от того, какие другие точки останова у вас есть в сеансе GDB, ваши команды будут связаны с точкой останова на Function2.

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