我正在调试一个问题,我想打破每个具有特定对象的方法调用作为'this'参数。这在GDB中是否可行?
答案 0 :(得分:6)
这很容易。您可以使用b A::a if (this==0x28ff1e)
等命令。
答案 1 :(得分:0)
this参数应该只是类本身包含的方法。所以你应该只需要为你正在查看的类的所有方法设置断点。我不确定有一种简单的方法可以做到这一点。
答案 2 :(得分:0)
我想打破每个具有特定对象的方法调用作为'this'参数
这意味着您希望打破已实例化对象的特定类的每个成员函数。
为方便起见,我们假设所有成员函数都是在特定的cpp文件中定义的,例如myclass_implementation.cpp
您可以使用gdb以myclass_implementation.cpp
方式对rbreak myclass_implementation.cpp:.
内的每个函数应用断点:
rbreak myclass_implementation.cpp:Get*
假设你想打破一些特定的函数,比如以Get开头的getter函数,那么你可以使用gdb以这种方式应用断点:
{{1}}