c++ - gdb中的条件显示

标签 c++ debugging gdb

我正在使用 gdb 调试一些 C++ 代码。目前,我正在查看的代码遍历指针数组,这些指针要么是指向某个对象的指针,要么是 NULL 指针。

如果我只是 display list[index]->member当 list[index] 为空时它会提示。是否只有在 list[index] 不为 null 时才显示成员?我知道您可以设置条件断点 ( condition <bp-num> <exp> ),但我不确定这会有什么帮助。

有问题的代码是:

for (int i=0;i<BSIZE*BSIZE;i++){
  if (vms[i]==target) {valid=true; break;}
}

其中 vms 是指针数组。

最佳答案

因为 display 接受任意表达式,你可以尝试类似下面的 display 命令:

display (list[index]) ? list[index]->member : "null"

我不确定这是否足以满足您的需求 - 您仍然会得到一个显示,但这不会是一个提示。

关于c++ - gdb中的条件显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6392195/

相关文章:

c++ - C++ 编译器可以优化对同一指针的重复虚函数调用吗?

c++ - 如何 Hook 具有更高完整性级别的进程?

gdb - 如何设置gdb的默认选项?

c++ - 为什么禁止将 Derived** 转换为 Base*const*?

c++ - Boost spirit 2.5.2 独立版

python - 可以从代码中将 IPDB/Celery-RDB 堆栈跟踪 ('where' )打印到标准输出吗?

debugging - Visual Studio 2015 更新 3 在 "Getting DataTip text..."后崩溃

r - R 中的交互式调试

linux - gdb: 让 gdb 进入前台

c++ - gdb中是否存在自动 "print locals"命令?