【发布时间】:2020-04-10 17:43:45
【问题描述】:
我在 stackoverflow 上看到过类似的帖子
当接受的答案不能解决我的问题时。
我所做的是在主函数设置断点
(gdb) break main
Breakpoint 1 at 0x6fe
(gdb) run
Starting program: /home/bjorn/printprog
Breakpoint 1, 0x00005555555546fe in main ()
(gdb)
到目前为止,上帝,但是当我开始迈步时,我得到以下信息:
(gdb) s
Single stepping until exit from function main,
which has no line number information.
hell world!!!!
Number of characters in the string are 14
__libc_start_main (main=0x5555555546fa <main>, argc=1, argv=0x7fffffffdef8, init=<optimized
out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7fffffffdee8) at ../csu/libc-start.c:344
344 ../csu/libc-start.c: Filen eller katalogen finns inte.
“Filen eller katalogen finns inte.”表示“文件或目录不存在”
可能是什么问题?
似乎缺少某些东西,是不是这个原因 - start.c,我需要那个文件吗?
gcc 和 gdb 的版本不同吗?
GDB
GNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-git
海合会
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
- 还是我的 makefile 错误或遗漏了什么?
制作文件
CC=gcc
CFLAGS=-I.
printprog: main.o print.o
$(CC) -g -o printprog main.o print.o -I.
【问题讨论】:
-
将
-g编译选项添加到您的CFLAGS。它在您的链接命令行上没有多大用处。 -
@FredLarson - 谢谢你解决了问题:)
-
好!我根据我的评论做出了回答。