c++ - 启动期间崩溃时如何使用 gdb 调试可执行文件?
问题描述
我有一个基于 C 和 C++ 的项目,这是我第一次构建和链接,它在执行时出现段错误。我尝试在 gdb 中运行它以获取回溯,并看到了这个:
gdb) run
Starting program: /home/jon/controlix-code/bin/controlix
During startup program terminated with signal SIGSEGV, Segmentation fault.
(gdb) bt
No stack.
(gdb)
我认为它在 main() 被调用之前崩溃了,但除此之外我没有任何线索。我在谷歌上找不到太多关于这种情况的信息,所以我想我会在这里问。
解决方案
一种方法是在运行之前捕获所有异常:
catch throw
run
如果这没有帮助,您可能必须从一开始就单步执行程序集。但在你这样做之前,
break main
run
并使用step和next单步执行代码应该会导致您找到罪魁祸首。
推荐阅读
- vue.js - Vuetify Navigation Drawer 不与 Vuex 一起显示
- r - attr(dataframe,"scaled:center") 返回 NULL
- ios - IOS swift有没有办法使文本的特定部分加粗
- reactjs - 将应用程序从 react-azure-adb2c 移植到 react-adal
- linux-kernel - Linux 中的“perf top”显示“内核地址映射 (/proc/{kallsyms,modules}) 受到限制。”
- reactjs - this.context.toggle 不是函数
- babeljs - Babel 输出路径维护输入路径的目录结构
- python - 我想在二维数组中添加三元组
- r - 为长文本标签在 plotly 中格式化工具提示
- android - 在 AR 会话期间,无法通过 HTTP 调用弹出对话框供用户选择选项