Ubuntu Qt Debug

本文详细介绍了在Ubuntu16.04环境下,如何为Qt程序生成coredump文件以便于调试崩溃问题。通过修改pro文件添加调试信息,调整ulimit设置允许core文件生成,并使用gdb进行错误跟踪,帮助开发者定位和解决程序运行时的崩溃问题。

参考链接:
https://zhuanlan.zhihu.com/p/48607048

记录一下

Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃

需要在运行时生成core dump文件

首先在pro结尾里加入

QMAKE_CC += -g
QMAKE_CXX += -g
QMAKE_LINK += -g

在终端输入ulimit -c显示为0

然后输入ulimit -c unlimited

继续在终端运行编写的程序

出错后,会在当前目录生成core文件

然后在终端执行“gdb 你的程序名 core”

然后输出bt对该错误进行跟踪调试

(gdb) bt

会出现形如下图的代码:

自己测试过程:

step1:

step2:

在该工程目录下打开终端,输入以下命令:

ulimit -c
ulimit -c unlimited
./testCoreDump

step3:程序意外退出之后,会在工程目录下生成core文件。

step4:终端会出现如图所示的信息,在命令行中输入:

gdb testCoreDump core

step5:在命令行终端中输入

bt

 

### 解决 UbuntuQt Creator 无法打开的问题 对于 Ubuntu 系统上遇到的 Qt Creator 无法启动的情况,可以尝试以下方法来解决问题。 #### 安装必要的依赖库 确保已经安装了所有必需的开发包。特别是 `mesa-common-dev` 和其他图形支持库: ```bash sudo apt-get update sudo apt-get install mesa-common-dev libglu1-mesa-dev freeglut3-dev ``` 这些命令会更新软件源并安装 OpenGL 开发环境所需的组件[^1]。 #### 下载并安装最新版本的 Qt Creator 前往官方网站下载适合 Linux 的 Qt Creator 版本,并按照官方指南完成安装过程: 访问链接 [https://www.qt.io/download-open-source](https://www.qt.io/download-open-source),找到对应的操作系统下的安装文件(例如 qt-creator-opensource-linux-x86_64),之后执行如下操作: ```bash chmod +x qt-creator-opensource-linux-x86_64.run ./qt-creator-opensource-linux-x86_64.run ``` 这将引导用户通过图形界面完成安装向导中的各项设置。 #### 配置 Qt Chooser 如果希望更改系统的默认 Qt 版本,在终端中编辑配置文件 `/usr/share/qtchooser/default.conf` 或者创建新的特定架构配置文件如 `qt5-aarch64-linux-gnu.conf` 来指定路径指向新安装的 Qt 版本目录: ```bash sudo nano /usr/share/qtchooser/default.conf # 添加或修改为实际安装位置 /path/to/new/qt/bin /path/to/new/qt/lib ``` 此步骤有助于确保命令行工具能够正确识别所使用的 Qt 库版本[^2]。 #### 处理触摸屏兼容性问题 当存在多点触控设备时,可能需要额外处理以使应用程序正常工作。可以通过下面的方法验证是否存在输入设备检测方面的问题: ```bash export QT_XCB_DEBUG_XINPUT_DEVICES=1 ``` 该变量可以帮助调试与 XInput 协议有关的日志信息,从而判断是否因为缺少某些驱动而导致程序崩溃退出[^3]。 #### 检查 ROS 相关服务状态 考虑到有时 Qt Creator 启动失败可能是由于与其他桌面应用之间的冲突引起,比如 RViz 这样的机器人操作系统(ROS)可视化工具也遇到了相同情况,则建议排查整个 ROS 环境的状态以及相关进程是否有异常终止的现象[^4]。 以上措施应该能帮助解决大多数情况下 Qt Creator 在 Ubuntu 中无法成功加载运行的问题。如果有更具体的错误提示信息,请提供进一步诊断依据以便给出针对性更强的帮助方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值