gdb:仅当调用函数不等于某个值时才有条件地中断函数

时间:2014-11-17 23:14:09

标签: c linux gdb

在我的项目中,我有调用malloc()的my_malloc()。

我喜欢在gdb中设置条件断点,以便gdb会分解为“gdb>”只有当malloc()的调用函数不等于my_mallc()时。

有可能吗?

目标是识别所有直接调用malloc()的代码,而不是通过my_malloc()。

1 个答案:

答案 0 :(得分:4)

  

我喜欢在gdb中设置条件断点,以便gdb会分解为“gdb>”只有当malloc()的调用函数不等于my_mallc()。

换句话说,当malloc未调用my_malloc时,您想要暂停malloc

一种方法是设置三个断点:一个在my_malloc上,一个在my_malloc条目上,一个在(gdb) commands 2 silent # don't announce hitting breakpoint #2 disable 1 # don't stop when malloc is called within my_malloc continue # continue execution when BP#2 is hit end (gdb) commands 3 silent enable 1 # re-enable malloc breakpoint continue end 上。然后(假设断点分别为1,2和3)。

{{1}}

此技术仅适用于单线程应用程序。