【gdb】24.gdb调试和coredump

2024-06-16 21:32
文章标签 调试 24 gdb coredump

本文主要是介绍【gdb】24.gdb调试和coredump,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

gdb调试和coredump

下面一行命令是用来gdb调试的一种方式

gdb --args     binary_node    --flagfile=conf/xx.conf
r   #run

或者分两步执行:

gdb binary_node
#下面这句是在进入gdb之后执行
set args --flagfile=conf/xx.conf
r   #run

下面一行命令是利用coredump文件来gdb调试的一种方式:

gdb  binary_node          xxx.core

参考网址:

https://baijiahao.baidu.com/s?id=1599347824327158577
https://www.jianshu.com/p/e38a3f1cf7f7
https://www.pianshen.com/article/2260634841/


ulimit -c 如果返回值是 0,则表示 core dump 已被禁用。其他数字表示 core dump 文件的最大大小(以 KB 为单位),或者 unlimited 表示没有限制。
ulimit -c unlimited # 可以产生core且不受大小限制
sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t #生成的core文件存放在/tmp目录下
上面%t是写成时间戳的形式,这个时间戳是程序挂掉时的时间戳。

也可以写成年月日时分秒的形式,但是存的coredump是下面这条shell命令执行时候的时间,并不是程序挂掉时的时间,所以不推荐:
sudo sysctl -w kernel.core_pattern=/tmp/core.%e.%p.%h.$(date +'%Y%m%d%H%M%S') #生成的core文件存放在/tmp目录下
注意,修改 ulimit 的设置通常只对当前会话框有效,另开一个终端就会失效。

几个常用的gdb命令

btwhere 可以定位到出现问题的函数

l(list) 显示源代码,并且可以看到对应的行号;

b(break)x x是行号,表示在对应的行号位置设置断点;

p(print)x x是变量名,表示打印变量x的值

r(run) 表示继续执行到断点的位置

n(next) 表示执行下一步

c(continue) 表示继续执行

q(quit) 表示退出gdb

这篇关于【gdb】24.gdb调试和coredump的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067604

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

Science|癌症中三级淋巴结构的免疫调节作用与治疗潜力|顶刊精析·24-09-08

小罗碎碎念 Science文献精析 今天精析的这一篇综述,于2022-01-07发表于Science,主要讨论了癌症中的三级淋巴结构(Tertiary Lymphoid Structures, TLS)及其在肿瘤免疫反应中的作用。 作者类型作者姓名单位名称(中文)通讯作者介绍第一作者Ton N. Schumacher荷兰癌症研究所通讯作者之一通讯作者Daniela S. Thomm

起点中文网防止网页调试的代码展示

起点中文网对爬虫非常敏感。如图,想在页面启用调试后会显示“已在调试程序中暂停”。 选择停用断点并继续运行后会造成cpu占用率升高电脑卡顿。 经简单分析网站使用了js代码用于防止调试并在强制继续运行后造成电脑卡顿,代码如下: function A(A, B) {if (null != B && "undefined" != typeof Symbol && B[Symbol.hasInstan

php 7之PhpStorm + Nginx + Xdebug运行调试

操作环境: windows PHP 7.1.10 PhpStorm-2017.2.4 Xdebug 2.5.4 Xdebug helper 1.6.1 nginx-1.12.2 注意查看端口占用情况 netstat -ano //查看所以端口netstat -aon|findstr "80" //查看指定端口占用情况 比如80端口查询情况 TCP 0.0.0.0:8

【2025】基于Python的空气质量综合分析系统的设计与实现(源码+文档+调试+答疑)

博主介绍:     ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W+粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台的优质作者。通过长期分享和实战指导,我致力于帮助更多学生完成毕业项目和技术提升。 技术范围:     我熟悉的技术领域涵盖SpringBoot、Vue、SSM、HLMT

GDB调试程序入门

http://blog.csdn.net/haoel/article/details/2880 用GDB调试程序 GDB概述 ———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所