问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

gdb怎么查看程序是在哪行代码那里执行了exit退出

发布网友 发布时间:2022-04-22 06:14

我来回答

1个回答

热心网友 时间:2022-04-08 11:32

gdb 查看 core 文件

基本上
core 文件就是一个包含了程序崩溃时这个进程的所有信息的文件。在那 “遥远的黄金年代”,程序员不得不把 core 文件以十六进制的方式显示
出来,然后满头大汗的阅读机器码的手册,但是现在事情就简单得多了。顺便说一下, 在 FreeBSD 和其他的 4.4BSD 系统下,core 文件都叫作
progname.core 而不是简单叫 core,这样可以很清楚的表示出这个 core
文件是属于哪个 程序。

1. 要检查一个 core 文件,首先用 gdb 可执行文件名
来调试产生core文件的可执行程序:

2. 命令 core会分析 可执行程序名.core
文件
注:如果当前不是 core 文件所在目录,首先要执行 dir
/可执行程序名.core的路径/。
(gdb)core 可执行程序名.core

举例:
$gdb a.out
GDB is free software and you are
welcome to distribute copies of it under certain conditions; type "show copying"
to see the conditions. There is absolutely no warranty for GDB; type "show
warranty" for details. GDB 4.13 (i386-unknown-freebsd), Copyright 1994 Free
Software Foundation, Inc.

(gdb)core
a.out.core
Core was generated by `a.out'.
Program terminated with
signal 11, Segmentation fault.
Cannot access memory at address
0x7020796d.
#0 0x164a in bazz (anint=0x5) at temp.c:17
(gdb)

这种情况下,运行的程序叫 a.out,因此 core 文件 就叫
a.out.core。我们知道程序崩溃的原因就是函数 bazz 试图访问一块不属于它的内存。

有时候,能知道一个函数是怎么被调用的是非常有用处的。因为在一个复杂的程序里面问题可能会发生在函数调用栈上面很远的地方。

3.
命令 bt 会让 gdb
输出函数调用栈的回溯追踪
(gdb)bt
#0 0x164a in bazz (anint=0x5) at temp.c:17
#1 0xefbfd888 in end ()
#2 0x162c in main () at temp.c:11
(gdb)

函数 end() 在一个程序崩溃的时候将被调用;
在本例
中,函数 bazz()
是从 main()中被调用的。
gdb怎么查看程序是在哪行代码那里执行了exit退出

1. 要检查一个 core 文件,首先用 gdb 可执行文件名 来调试产生core文件的可执行程序:2. 命令 core会分析 可执行程序名.core 文件 注:如果当前不是 core 文件所在目录,首先要执行 dir /可执行程序名.core的路径/。(gdb)core 可执行程序名.core 举例:gdb a.out GDB is free software and ...

如何gdb调试一个运行中的进程

第一步 编译一个死循环程序。/* File name malloc.c*/ include <stdio.h> include <stdlib.h> include <string.h> void getmem(void **p, int num){ p = (void *)malloc(num);} void test(void){ char *str = NULL;getmem((void **)&str, 100);strcpy(str, "Hello")...

谁知道.gdb格式的文件用什么打开?

1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。4、动态的改变你程序的执行环境。从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细...

如何使用gdb调试多进程

进入gdb以后,我们可以使用show follow-fork-mode来查看目前的跟踪模式。可以看到目前使用的模式是parent。然而,有的时候,我们想同时调试父进程和子进程,以上的方法就不能满足了。Linux提供了set detach-on-fork mode命令来供我们使用。其使用的mode可以是以下的一种:on 只调试父进程或子进程的其中一...

gdb命令中attach使用

查找进程id:ps -fu YOUR_USER_NAME 运行gdb:gdb (gdb)attach xxxxx--- xxxxx为利用ps命令获得的子进程process id (gdb)stop--- 这点很重要,你需要先暂停那个子进程,然后设置一些断点和一些Watch (gdb)break37-- 在result = wib(value, div);这行设置一个断点,可以使用list命令察看源代码 Bre...

Centos进程状态详解

在linux下,通过ps命令我们能够查看到系统中存在的进程,以及它们的状态: R(TASK_RUNNING),可执行状态。 只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行队列中)。进程调度器...

CPU和CPUID是什么关系?

6. 继续执行 Ring3 的代码由此可知,在调用 SYSENTER 进入 Ring0 之前,一定需要通过 wrmsr 指令设置好 Ring0 代码的相关信息,在调用 SYSEXIT 之前,还要保证寄存器edx、ecx 的正确性。如何得知 CPU 是否支持 sysenter/sysexit 指令根据Intel 的 CPU 手册,我们可以通过 CPUID 指令来查看 CPU 是否支持 sysenter/sys...

linux gdb backtrace 怎么实现的

通常情况系,程序发生段错误时系统会发送SIGSEGV信号给程序,缺省处理是退出函数。我们可以使用 signal(SIGSEGV, &your_function);函数来接管SIGSEGV信号的处理,程序在发生段错误后,自动调用我们准备好的函数,从而在那个函数里来获取当前函数调用栈。举例如下:[cpp] view plain copy print?include <stdio.h...

shell命令解释器源代码

�8�5 exit:退出ysh。�8�5 jobs:打印当前正在后台执行的作业和挂起的作业信息。输出信息应采用便于用户理解的格式。�8�5 fg %<int>:把<int>所标识的作业放到前台运行,如果这个作业原来已经停止,那么他继续运行。Shell应当在打印新的命令...

CLion中调试MySQL让你程序调试更轻松一点clion调试mysql

在GDB配置窗口中,勾选“Use remote debugging”,在“Host”栏中输入”localhost”,在“Port”栏中输入”2333”,然后点击“OK”按钮保存配置。成功添加调试器之后,我们还需要在代码中添加断点,这样才能进入调试模式。在需要断点的行数处使用快捷键Ctrl+F8添加断点。添加完断点后,点击“Debug”按钮开始...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
阵亡和伤亡两个有什么区别? 阵亡和战死有什么区别? 某校五年级有256人其中女生有134人女生占五年级全体学生的几分之几男 ... 在迎国庆的日子里学校举行了一系列的活动五年级学生共有134人参加此次... 吃果冻什么意思 吃果冻什么含义 月什么溶溶 望月的歌词是什么? 形容海边日落的文案(描写海边夕阳余晖的优美句子) 《月下小景》沈从文 月下小景基本信息 为什么说那些护士是最美的“准妈妈”? 口碑最好男士面膜排行榜 李成敏和王丽坤同穿泳衣跳水,身材完全没有可比性... 萌动胎心监护仪有辐射吗 男士洗面奶和面膜什么牌子的好 广告行业中各类型胶的用法和用处?如:透明胶、双... Linux中利用gdb加载程序和core文件分析,在都core... 陈红22岁泳装旧照曝光,当年的她是有多迷人? 37周胎心监护加速不好 男士面膜什么牌子好 吴宣仪有身材任性,内衣外穿不算什么,拿泳衣配西... 胎心的自我监护可以吗 linux 下如何打开core dump文件开关 24周可以做胎心监护吗 在墙上贴海报,用双面胶还是透明胶带好看? 如何看待宋茜晒黑白连体泳装大秀好身材这个做法? 如何非交互方式使用GDB打印core文件堆栈 什么男士面膜最好哪个牌子的? 孕期产检时间表和项目 坂井泉水在出道前还拍过泳装照,尺度还大,这下可... 哪个牌子的男士清洁面膜比较好用? 宋茜泳装照上热搜,作为女孩子,你对身材有什么要求? gdb文件,能移动到别的盘里吗 适合男生使用的面膜 怎么去除木表面的透明胶、双面胶痕迹? 男士什么牌子面膜好 透明胶和双面胶的英文是什么 当你的情人因为你打了她,要离开你,怎么办才能挽回 男士面膜用什么牌子比较好 黑板贴纸上能用透明胶和双面胶吗? 双面胶,透明胶,和502胶水在英语中怎么说 如果不买双眼皮胶,双眼皮贴,用双面胶,透明胶可以吗 如果情人变心了,男方,对我越来越冷淡,想要挽回... 求清理双面胶、透明胶带的方法 临沂网红打卡景点有哪些? 汽车电气系统包括哪些? 汽车电器系统的组成有哪些? 汽车电气系统的特点是什么? 汽车电气系统的组成有哪些? 汽车电器指的是哪些?
  • 焦点

最新推荐

猜你喜欢

热门推荐