问题标签 [gdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gdb - 当程序使用文件 X 中的任何函数时,使用 gdb 停止程序
我想知道在使用某个文件中的函数时是否有任何方法可以停止程序。理想情况下,我正在寻找的是:
这样做的原因是因为我正在调试一个不属于我的代码,并且我不确切知道哪些函数被调用,哪些函数没有被调用。GDB 中是否有一个函数可以做我正在寻找的事情,或者有任何其他推荐的方法来做类似的事情?
谢谢
debugging - 使用gdb,在一行中显示多个变量?
如何要求在一行中显示多个变量?所以我想得到如下输出:
我一直在输入 disp s[i] ENTER disp exp ENTER (etc, etc),我只知道必须有更好的方法在一行输入中做到这一点。
c++ - 使用 Xcode 调试器查看动态分配的数组?
假设我在 C++ 中有一个数组:
使用 GDB 命令行,我可以使用以下命令查看此数组:
它将打印出数组内所有双精度值的格式良好的列表。
但是,当使用 Xcode 调试器时,它最多会将其视为指向单个双精度值的指针,并在变量列表中显示 velocity[0]。
这使它成为调试包含大型动态分配数组的程序的真正 PITA。必须有某种方法来告诉 Xcode“这是一个指向长度为 100 的数组的指针”,并让它这样显示。有人知道这是什么吗?
gdb - GDB 断点
我有一个断点列表,每次调试特定程序时都想添加这些断点。
有没有办法可以将所有断点信息放在一个文件中并在每个调试会话开始时使用它?换句话说,我可以在给出“运行”命令之前向 GDB 提供一个带有断点信息的脚本文件吗?
c++ - 让 GDB 保存断点列表
好的,info break列出了断点,但不是以一种可以很好地使用 --command 重用它们的格式,如在这个问题中。GDB 是否有一种方法可以将它们转储到可以再次输入的文件中?有时在调试会话中,需要在建立一组断点后重新启动 GDB 以进行测试。
.gdbinit 文件与 --command 有相同的问题。info break命令没有列出命令,而是一个供人类使用的表格。
详细地说,这里是info break的一个示例:
debugging - 分段错误的行数
我可以设置任何 gcc 选项来提供分段错误的行号吗?
我知道我可以:
- 逐行调试
- 将 printfs 放入代码中以缩小范围。
编辑:
bt
/where
on gdb give No stack。- 有用的建议
gdb - 如何对程序进行双向或反向调试?
有没有人真正使用过可逆调试器?谷歌出现的唯一产品是UndoDB。它显然仅适用于 Linux。
eclipse - 如何让 Eclipse 为 Cygwin 的 GDB 提供可执行文件的 posix 路径?
我在 Windows 上使用 Eclipse 使用 Cygwin 的工具链对 C++ 进行编程。我也想用它来调试,但我的问题如下:
- 要调试的可执行文件位于工作区的子文件夹中(我猜这很标准),但不在构建可执行文件的实际项目中。
- Eclipse 和 GDB 有不同的路径格式:Eclipse 使用 Windows 路径,而 GDB 使用 posix 路径。Eclipse 知道
D:\Path\To\Exe
,而 GDB 需要/cygdrive/d/Path/To/Exe
. - 当我在“调试配置...”对话框中输入路径时,Eclipse坚持认为它可以找到要调试的可执行文件。在路径正确之前,“调试”按钮将被禁用。
- Eclipse 似乎没有接受
${workspace_loc}
那个特定的输入框。
是否有一些我不知道的隐藏选项?你以前有过这个问题吗?
到目前为止我尝试过的
- 强制 Eclipse 将我输入的路径传递给 GDB ---不起作用。
- 摆弄源查找路径和路径映射 ---不起作用,它实际上只适用于源文件。
- 为可执行文件所在的输出文件夹创建一个 C++ 项目,这样我就可以在项目中拥有一个指向 exe 的相对路径 ---不起作用。
我仍然可以尝试的事情
- 使用该
.gdbinit
文件丢弃 Eclipse 给出的路径并使用 posix 路径加载真正的可执行文件 --- 尝试过,但不是很难。 - 将包装器指定为 GDB 的参数 --- 污染了我的工作空间的根。
- 提供我自己的插件来处理案例---添加另一段代码以另一种语言维护。
debugging - 将 gdb 与内联函数一起使用
我正在尝试gdb
在死后模式下使用崩溃进程的核心转储。我可以获得堆栈跟踪,但不是向我显示违规函数中的实际位置,而是向我gdb
显示违规函数调用的两行内联函数的行号。
内联函数被称为很多很多地方;我如何找到哪个调用触发了崩溃?如何立即找到内联函数周围的代码?
iphone - 有什么方法可以判断我的 iPhone 应用程序是否在运行时在调试器下运行?
如果我的错误处理代码在调试器下运行,我希望它的行为有所不同。具体来说,如果我在手机上运行,没有连接到调试器并且断言失败,我想将错误发送到我的服务器。当我在gdb下时,我想闯入调试器。
尽管我可以想象 Apple 将如何编写代码,但我找不到任何关于运行时方式的文档来测试调试器的存在。