本页内容

GDB

要设置管理 GDB 进程的偏好设置,请转至“Preferences ” > “Debugger ” > “GDB ”。

“调试器”首选项中的“GDB”选项卡

下表总结了这些首选项。

首选项
GDB timeout终止无响应的 GDB 进程的超时时间(以秒为单位)。默认值 40 秒对于大多数应用程序来说应该足够了,但如果在较慢的机器上加载大型库或列出源文件所需的时间远超过这个时间,请增加该值。
Skip known frames when stepping将多个步骤压缩为一个步骤,以便在步入代码时减少调试噪音。例如,会跳过原子引用计数代码,对信号发射执行一次“步入”操作后,最终会直接进入与其连接的槽。
Show a message box when receiving a signal在调试过程中,一旦应用程序接收到信号(例如 SIGSEGV),立即显示一个消息框。
Adjust breakpoint locationsGDB 允许在未生成代码的源代码行上设置断点。在这种情况下,断点会移至实际生成代码的下一行源代码。若要通过在源代码编辑器中移动断点标记来反映此类临时变化,请选中此复选框。
Use dynamic object type for display是否显示对象的动态类型或静态类型。选择动态类型可能会导致调试速度变慢。
Load .gdbinit file on startup在调试器启动时读取用户的默认 .gdbinit 文件。
Load system GDB pretty printers使用计算机上已安装的或与您的应用程序所用库关联的默认 GDB 格式化打印器。
Use Intel style disassembly将默认的 AT&T 风格反汇编切换为 Intel 风格。
Use automatic symbol cache自动将 GDB 符号索引的副本保存到磁盘缓存中,并在将来加载同一二进制文件时从该缓存中检索。
Use debug info daemon尝试自动检索系统软件包的调试信息。

执行其他命令

要在 GDB 启动后、但被调试的应用程序尚未启动或附加之前,且在调试辅助程序初始化之前执行 GDB 命令,请在Additional Startup Commands 中输入这些命令。

要在 GDB 成功连接到远程目标后执行 GDB 命令,请在 `Additional Attach Commands` 中输入这些命令。您可以在这里添加命令以进一步配置目标,例如 `monitor reset ` 或 `load`。

要执行简单的 Python 命令,请在命令前加上python 。要执行跨多行的 Python 命令序列,请在代码块前单独一行输入python ,并在代码块后单独一行输入end 。要执行任意的 Python 脚本,请使用python execfile('/path/to/script.py')

扩展 GDB 首选项

Extended ”组中的首选项可访问 GDB 的高级或实验性功能。启用这些功能可能会对您的调试体验产生负面影响,因此请谨慎使用。

首选项
Use asynchronous mode to control the debugged process以后台(异步)模式执行命令。GDB 会立即打开一个命令提示符,您可以在程序运行时在此处输入其他命令。
Use common locations for debug information在启动 GDB 时,将调试信息(如/usr/src/debug )的常见路径添加到系统路径中。
Stop when qWarning() is called在每个qWarning() 函数上添加断点。
Stop when qFatal() is called在每个qFatal() 函数上添加断点。
Stop when abort() is called在每个abort() 函数上添加断点。
Enable reverse debugging启用向后单步执行。此功能在 GDB 端运行非常缓慢且不稳定。当向后单步执行系统调用时,它会表现出不可预测的行为,并且极有可能破坏您的调试会话。
Debug all child processes在 fork 之后继续调试所有子进程。

另请参阅 《如何:调试调试过程和 调试器》。

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.