在我的项目中,我有调用malloc()的my_malloc()。
我喜欢在gdb中设置条件断点,以便gdb会分解为“gdb>”只有当malloc()的调用函数不等于my_mallc()时。
有可能吗?
目标是识别所有直接调用malloc()的代码,而不是通过my_malloc()。
答案 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}}
此技术仅适用于单线程应用程序。