try 在gdb中添加断点时,我不断收到此错误消息.

我使用了以下命令来编译:

gcc -g main.c utmpib2.c -o main.o
and:
cc -g main.c utmpib2.c -o main.o
and also:
g++ -g main.c utmpib2.c -o main.o

我还try 了"-ggdb"而不是"-g",但仍然收到该错误消息.

然后我执行gdb:

$gdb

在gdb中:

(gdb)exec-file main.o
(gdb)break 59
No symbol table is loaded. Use the "file" command.

推荐答案

首先,您拥有的是一个完全编译的程序,而不是一个对象文件,所以请删除.o扩展名.现在,请注意错误消息所说的内容,它告诉您如何解决问题:"没有加载符号表.Use the "file" command."

(gdb) exec-file test
(gdb) b 2
No symbol table is loaded.  Use the "file" command.
(gdb) file test
Reading symbols from /home/user/test/test...done.
(gdb) b 2
Breakpoint 1 at 0x80483ea: file test.c, line 2.
(gdb) 

或者在命令行上传递程序.

$ gdb test
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
[...]
Reading symbols from /home/user/test/test...done.
(gdb) b 2
Breakpoint 1 at 0x80483ea: file test.c, line 2.
(gdb) 

C++相关问答推荐

有什么方法可以检测SunOS上的SparcWorks吗?

为什么海湾合作委员会在共享对象中的. init_data的虚拟内存地址之前留出一个空白

DPDK-DumpCap不捕获端口上的传入数据包

两个连续的语句是否按顺序排列?

正在try 将文件/文件夹名从目录 struct 存储到链接列表

_泛型控制表达式涉及数组碰撞警告的L值转换错误?

将 struct 传递给函数

为什么我会收到释放后堆使用错误?

在C++中访问双指针

这个C程序在工作中途停止获取输入.我收到分段故障(核心转储).我还是不知道问题出在哪里

编译器如何处理具有更复杂值的枚举?

如何在C-函数中混合使用C代码和ASM?

如何在VSCode中创建和使用我自己的C库?

递归打印二维数组(C编程)

如何在C中用bool进行文件I/O?

*S=0;正在优化中.可能是GCC 13号虫?或者是一些不明确的行为?

Linux/C:带有子进程的进程在添加waitid后都挂起

在C中交换字符串和数组的通用交换函数

当另一个指向 const 的指针观察到数据时,通过指针更改数据是否安全?

多行表达式:C 编译器如何处理换行符?