在源文件中包含额外的调试信息,以便在代码::块中使用gdb进行调试
Including Extra Debuging Info in Source File for debugging using gdb in Code::Blocks
在Code::Blocks中调试C++源时,传递函数参数或数据结构成员的点仅显示为其地址。
经过一些研究,我发现我可以输入自定义手表作为<指针名称><包含大小的变量的数值大小>以使其显示为数组,但是我无法编辑结构上的默认显示。
我想知道是否有什么方法可以用特殊的注释标记源代码,这些注释可以在调试过程中进行解析,以实现自动化,并使复杂的对象在调试过程更容易查看。
即
struct {
size_t n;
int *p; /* I want gdb to interpreted this symbols as p@n by default */
}
我也希望能够为函数参数制定类似的规范。
首先,这是可能的,我在网上找不到任何关于标记源代码以帮助gdb的东西,我怀疑它甚至从未查看过源代码,因为调试信息要么存储在可执行文件中,要么存储在调试数据库中。
如果有办法做到这一点,我会怎么做?
注意:如果有一个Code::Blocks特定的解决方案,我会很高兴。
您遇到的问题似乎与调试信息的质量无关,而仅与调试器如何显示特定类型变量的值有关。这通常是可配置的或可编写脚本的。
代码::块使用松鼠脚本编写调试器脚本。通过扩展该脚本,您可以使调试器以特定的方式命令GDB,然后以您喜欢的方式解析和显示结果。script文件夹中的gdb_types.script由Code::Blocks运行。
如果你想为GDB本身编写脚本,那么可以在代码::块的"设置->编译器和调试器->调试器->初始命令"中完成,前提是脚本将由GDB运行。然后,您可以从gdb_types.script.调用该脚本中定义的函数
相关文章:
- 使用vscode调试时,GDB意外退出
- 带有 GDB 调试器的 VS 代码内存视图
- 使用 Windows 10 和 MINGW 编译器在 VS Code 上使用 gdb 调试器进行调试时出错
- 使用 ssh 重新连接到远程 Ubuntu 机器后,如何继续使用 gdb 调试 c++ 代码?
- 如何使C++调试语句显示在 gdb 控制台中
- 如何使用 GDB 从功能C++逐步调试到 std::function 用户代码?
- 为什么我的程序无法在GDB在线编译器/调试器或Visual Studio C++ 2019中运行
- GDB:运行不带符号的 cpp 进程调试
- 在源文件中包含额外的调试信息,以便在代码::块中使用gdb进行调试
- 标识gdb调试器中符号的源文件名
- gdb在调试期间跳回前一行
- C++ 使用 GDB 和 Bazel (& emacs) 进行调试
- 如何在VSCode上使用MSYS2(MSYS64)gdb.exe调试C++
- 使用 GDB 自动调试
- 在 gdb (Windows) 中添加 dll 的调试符号
- 条件断点失败的 GDB 特征调试
- gdb如何读取它正在调试的程序/进程的寄存器值?寄存器如何与进程相关联?
- 调试 gdb 设置
- 调试::GDB::什么是src2dst
- 使用 gdb 进行调试 - (gdb) "x/s pointer"输出