c++ - Gnu 调试器无法从显示中删除变量?

标签 c++ g++ gnu

<分区>

我正在 linux ubuntu 16.04 上开发一个 c++ 程序,我已经完成了一个关于 gnu 调试器的教程。

我的代码有一些问题,当我逐步执行代码时,我可以更轻松地比较每个部分的两个变量 fullPathargv[1]

但是一旦我通过了那个特定的段,我想删除 argv[1]

我用以下内容给他们打电话:

display argv[1]

display fullPath

但是当我尝试使用 undisplay argv[1] 删除 argv[1] 时,我收到如下错误:

warning: bad display number at or near 'argv[1]'

它仍然继续显示 argv[1] 除非我退出调试器并再次启动它而不显示它。有办法解决这个问题吗?

注意 我也试过 delete argv[1] 也不起作用。

最佳答案

undisplay 命令需要一个列表编号,而不是表达式。您可以通过键入以下内容来查看所有自动显示表达式的列表编号:

info display

假设 argv[1] 被分配到该列表中的第 3 项。然后你将删除它:

undisplay 3

关于c++ - Gnu 调试器无法从显示中删除变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42638174/

相关文章:

c++ - 如果我在 for 中声明一个对象,它的内存会在 for 之后被释放吗?

c++ - C++继承使用不同的参数重载函数

c++ - 这是 g++ bug、libc bug,还是我疯了(或者也许这三个)?

c++ - g++ 中的显式模板特化导致麻烦

c++ - 在带有 GNU make 的函数中使用模式规则的模式

c++ - 如何绕过 C++ 无法使用 lambda 匹配模板中的函数类型

c++ - 函数的返回数据类型的 const 含义

c++ - 无法使用带有 g++ 的 -std 标志进行编译

linux - 如何识别文件中以 5 结尾的行

makefile - GNU Guix 需要 Nix 程序来做什么?