首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的c程序中看到导致分段错误的源代码行数

问如何在我的c程序中看到导致分段错误的源代码行数
EN

Stack Overflow用户
提问于 2013-11-30 18:35:27
回答 1查看 810关注 0票数 0

我知道我可以通过运行程序看到行号,并调用"where“或"bt”来查看当前的停止行。但是这个行号是以十六进制形式表示的,这意味着它是一个基于机器的行号。如何从这个号码得到我的源代码中的行号。例如,当前行号如下所示;

代码语言:javascript
复制
(gdb) where
#0  0x0000000000404a9d in ex ()
#1  0x0000000000404b63 in ex ()
#2  0x0000000000404369 in ex_wrap ()
#3  0x0000000000403259 in yyparse ()
#4  0x00000000004042ff in main ()

我想要类似的东西

代码语言:javascript
复制
line 55 in the file "foo.c":blablalba
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-01 00:15:47

但是这个行号是以十六进制形式表示的,这意味着它是一个基于机器的行号。

没有“基于机器的行号”这样的东西。数字是一个数字,无论是用十六进制、十进制还是八进制来表示。

您所看到的十六进制数字根本不是行号;它们是程序计数器(也就是计算机地址)的值。

您没有看到文件/行信息的原因是您编译或链接了没有-g标志的代码,或者您(可能是意外地)删除了调试信息(链接行上的“偏离”-s是常见的原因)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20304074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档