如何在gdb中为函数的所有调用设置断点?

pas*_*ena 5 c++ gdb

我有第三部分库函数调用分散在我的可执行文件的很多地方.我的可执行文件是使用调试符号构建的,但第三方库没有调试符号,因此我不能在函数上放置断点.我想在调用库函数时放置一个断点来检查调用堆栈.如何在我的可执行文件中的库函数调用的所有调用中设置断点.

Ada*_*der 4

我认为唯一的办法是:

  • 在您的代码中找到此函数的任何调用;
  • 在该行中创建一个断点;
  • 运行调试器并停在那里;
  • 在gdb中写入nexti以获取第一个函数指令;
  • 获取当前的 eip,它将指向该函数的开头;
  • 在eip指向的地址处创建一个新的断点;