Qt中gdb调试打印log

背景:Windows上Qt程序无故crash,随机crash不好定位出错的原因,故使用gdb追踪错误信息。


前提:生成debug版本的exe程序

步骤:

  1. 打开MingGW控制台。
  2. 进入待调试程序文件夹, cd :D:\code\build-test-Desktop_Qt_5_9_8_MinGW_32bit-Debug
  3. gdb执行程序,gdb test.exe
  4. 将debug打印重定向到文件,(gdb)set logging file test_log
  5. 打开调试信息输出,(gdb)set logging on
  6. 打印所有的栈信息,(gdb)thread apply all bt
  7. 执行待调试程序,(gdb)run
  8. 正常执行,等待bug发生。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在LinuxGDB是一个非常有用的调试工具,特别适合C/C++程序员使用。以下是使用GDB进行调试的一般流程: 1. 首先,你需要启动GDB,可以使用命令"gdb"加上你要调试的可执行文件的路径来启动GDB。例如,如果你要调试一个名为"test"的可执行文件,可以使用命令"gdb test"启动。 2. 在启动GDB后,你可以选择是否打印GDB版本信息。如果你想让界面更加干净,可以使用命令"gdb -q test"来启动,其"-q"选项表示不打印版本信息。 3. 一旦GDB启动,你可以使用各种GDB命令来进行调试。其一个常用的命令是设置断点。你可以使用命令"(gdb)b 路径 : num"来设置断点,其"路径"是你要设置断点的文件路径,"num"是你要设置断点的行号。例如,你可以使用命令"(gdb)b /home/aurora/cplus/gdb/test.c : num"来设置在"/home/aurora/cplus/gdb/test.c"文件的第num行设置一个断点。 4. 设置断点后,你可以执行你的程序。你可以使用命令"(gdb)r"来运行程序。当程序执行到断点处时,它会停下来等待你的进一步操作。 5. 在程序停下来后,你可以使用各种GDB命令来查看程序当前状态、变量的值等等。例如,你可以使用命令"(gdb)p 变量名"来打印某个变量的值。 6. 在程序执行过程,你也可以使用GDB命令来单步执行程序,以便逐行跟踪程序的执行过程。例如,你可以使用命令"(gdb)n"来执行下一行代码。 7. 当你完成调试后,你可以使用命令"(gdb)q"来退出GDB调试。 这些是使用GDB进行调试的一般流程和一些常用命令。通过使用这些命令,你可以更好地理解和调试你的C/C++程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雲烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值