IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> gdb+vscode进行调试7——程序出现segmentation default/段错误,如何进行调试? -> 正文阅读

[开发工具]gdb+vscode进行调试7——程序出现segmentation default/段错误,如何进行调试?

一、找到core dump产生的文件

1.打开/etc/profile文件添加如下配置:ulimit -c unlimited

sudo gedit /etc/profile
ulimit -c unlimited

2.在bashrc中进行生效,添加如下配置:source /etc/profile

gedit ~/.bashrc
source /etc/profile

3.设置core文件的目录

sudo sysctl -w kernel.core_pattern=/var/crash/core.%u.%e.%p

4.执行产生错误的可执行程序

./HelloGDB

5.用gdb调试工具查看core文件出现错误的行

gdb HelloGDB /var/crash/core.1000.HelloGDB.4393
Core was generated by `/home/bisheng/CLionProjects/gdb/cmake-build-debug/HelloGDB'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000561c01500301 in fun1 () at /home/bisheng/CLionProjects/gdb/fun.h:6
6           *p = 0;
[Current thread is 1 (Thread 0x7fa7c0f0c700 (LWP 4818))]

可以看出,上述core dump
1)是由/home/bisheng/CLionProjects/gdb/cmake-build-debug/HelloGDB这个可执行程序产生的;
2)是在fun.h这个函数的第6行*p = 0产生的
3)产生core dump的线程是线程1

6.查看函数调用栈

bt
#0  0x0000561c01500301 in fun1 () at /home/bisheng/CLionProjects/gdb/fun.h:6
#1  0x0000561c015003ad in thread1 () at /home/bisheng/CLionProjects/gdb/main.cpp:12
#2  0x0000561c015012b6 in std::__invoke_impl<void, void (*)()> (__f=@0x561c015aaeb8: 0x561c01500365 <thread1()>) at /usr/include/c++/9/bits/invoke.h:60
#3  0x0000561c0150124e in std::__invoke<void (*)()> (__fn=@0x561c015aaeb8: 0x561c01500365 <thread1()>) at /usr/include/c++/9/bits/invoke.h:95
#4  0x0000561c015011e0 in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul> (this=0x561c015aaeb8) at /usr/include/c++/9/thread:244
#5  0x0000561c0150119d in std::thread::_Invoker<std::tuple<void (*)()> >::operator() (this=0x561c015aaeb8) at /usr/include/c++/9/thread:251
--Type <RET> for more, q to quit, c to continue without paging--
#6  0x0000561c0150116e in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run (this=0x561c015aaeb0) at /usr/include/c++/9/thread:195
#7  0x00007fa7c1344de4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#8  0x00007fa7c1458609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#9  0x00007fa7c1180163 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

可以看到函数依次的调用顺序

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:44:21  更:2022-07-17 16:45:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 12:25:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码