一尘不染

任意类型(例如C ++ std :: string相等)上的GDB条件断点

linux

是否可以在条件表达式包含任意类类型的对象的GDB中设置条件断点?

我需要在函数内部设置一个断点,条件将检查条件是否是对象的成员字符串变量等于“ foo”。因此,类似:

condition 1 myObject->myStringVar == "foo"

但这不起作用。GDB是否只允许在基本类型和char *类型上使用条件断点?有什么办法可以在非原始类型上设置条件断点?


阅读 966

收藏
2020-06-07

共1个答案

一尘不染

有什么办法可以在非原始类型上设置条件断点?

是的,一种实现方法是将非原始类型转换为原始类型,在您的情况下转换为char*,并用于strcmp比较字符串。

condition 1 strcmp(myObject->myStringVar.c_str(),"foo") == 0
2020-06-07