GNU调试器(GDB)
要指定管理 GDB 进程的设置,请转到 首选项 > 调试器 > GDB。
下表总结了首选项设置。
设置 | 值 |
---|---|
GDB 超时 | 终止非响应 GDB 进程的超时时间,以秒为单位。默认值 40 秒对于大多数应用程序来说应该足够,但如果在较慢的机器上加载大型库或列出源文件的时间远远超过这个时间,请增加该值。 |
步进时跳过已知帧 | 将多个步进操作压缩为一次,以减少在步进到代码时产生的噪音。例如,跳过了原子引用计数代码,当对一个信号发出单个“步进到”操作时,会直接跳到连接到的槽。 |
接收信号时显示消息框 | 在调试过程中,当您的应用程序接收到信号(例如 SIGSEGV)时,立即显示消息框。 |
调整断点位置 | GDB 允许对未生成代码的源行设置断点。在这种情况下,断点会移到下一个实际生成代码的源代码行。为了通过在源代码编辑器中移动断点标记来反映这种临时更改,请选择此复选框。 |
用于显示的动态对象类型 | 是否显示对象的行为类型还是静态类型。选择动态类型可能会使调试速度变慢。 |
启动时加载 .gdbinit 文件 | 在调试器启动时读取用户默认的 .gdbinit 文件。 |
加载系统 GDB 美化打印程序 | 使用计算机上安装的默认 GDB 美化打印程序,或链接到您的应用程序所使用的库。 |
使用英特尔风格的反汇编 | 将默认的 AT&T 风格反汇编切换到英特尔风格。 |
使用自动符号缓存 | 将 GDB 符号索引的副本自动保存到磁盘上的缓存中,并在将来加载相同的二进制文件时从那里检索它。 |
使用调试信息守护进程 | 尝试自动检索系统包的调试信息。 |
执行附加命令
在 GDB 启动后,但在调试应用程序启动或附加之前,以及在使用调试辅助工具初始化之前,将它们输入到 附加启动命令 字段中。
在GDB成功附加到远程目标后执行GDB命令,请在附加额外的命令字段中输入它们。您可以在其中添加命令来进一步设置目标,例如monitor reset
或load
。
要执行简单的Python命令,请在命令前加前缀python
。要执行跨多行的Python命令序列,请在区块的开始单独一行添加python
,并在单独一行上附加end
。要执行任意的Python脚本,请使用python execfile('/path/to/script.py')
。
扩展GDB设置
扩展组中的设置可访问GDB的高级或实验功能。启用它们可能会对您的调试体验产生负面影响,因此请谨慎使用。
设置 | 值 |
---|---|
使用异步模式控制子程序 | 在后台(异步)模式中执行命令。GDB立即打开一个命令提示符,您可以在程序运行时在此处输入其他命令。 |
使用常见的调试信息位置 | 在启动GDB时,将常见路径添加到调试信息位置,例如/usr/src/debug 。 |
当调用qWarning()时停止 | 为每个qWarning() 函数添加断点。 |
当调用qFatal()时停止 | 为每个qFatal() 函数添加断点。 |
当调用abort()时停止 | 为每个abort() 函数添加断点。 |
启用反向调试 | 启用反向步进。此功能在GDB侧非常慢且不稳定。当反向步过系统调用时,会表现出不可预测的行为,并很可能破坏您的调试会话。 |
调试所有子进程 | 在fork后继续调试所有子进程。 |
©2024 Qt公司有限。此处包含的文档贡献为各自所有者的版权。此处提供的文档是根据由自由软件基金会发布的GNU自由文档许可第1.3版的条款许可的。Qt及其相应商标是芬兰及其它国家Qt公司的商标。所有其他商标均为各自所有者的财产。