c++ - 任意类型上的 GDB 条件断点,例如 C++ std::string 相等性

标签 c++ linux gdb

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

我需要在函数内设置断点,条件将检查对象的成员字符串变量是否等于“foo”。所以,像这样:

condition 1 myObject->myStringVar == "foo"

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

最佳答案

Is there any way I could set a conditional breakpoint on non-primitive types?

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

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

关于c++ - 任意类型上的 GDB 条件断点,例如 C++ std::string 相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10801112/

相关文章:

c++ - 使用堆栈查看两个字符串是否相等

linux - 我有机会在级别 3 中使用 vncserver 吗?

c++ - 如果指定了参数,如何为函数指针分配地址?

c++ - 在 SystemC 中检查信号是否有效的最佳方法是什么?

linux - 字符串中的 Shell 脚本参数

debugging - 在x86上使用GDB而不调试符号?

c - 为什么 gdb "set"命令不能识别全局变量,必须添加 "::"或 "variable"?

rust - Rust嵌入式 panic 破坏了堆栈

c++ - Qwt 绘图自动缩放不工作

linux - Docker 容器中的 "Permission denied"除非 --privileged=true