首先声明,这是我第一次C编程课的项目。我不会提供我的代码,因为它已经在运行,但我需要帮助解决GDB执行过程中出现的错误。
说完这个,我的项目的第一部分是编写一个程序,可以接受任何文件的字节形式,并查找特定长度的字符串。这一部分已经完成。接下来,我需要使用GDB、十六进制编辑器和我的程序来破解隐藏密码以解锁程序,而我已经破解了第一个,但第二个和第三个越来越难,我无法弄清楚自己到底做错了什么。
这是我的问题:
当我使用GDB开始运行编译后的文件时,我立即在GDB中看到一个闪烁的光标。我按下cntrl c
以中断程序,这使程序停在原地。然后我输入back
,得到一个包含(9)行、它们的内存位置和方法名称的列表。这就是我的问题所在,如果我想要进入main()
,并尝试输入一个断点,它告诉我No symbol table is loaded. Use the "file" command
。
Starting program: [program path on university server]
^C
Program received signal SIGINT, Interrupt.
0x00110430 in __kernel_vsyscall ()
Missing separate debuginfos, use: debuginfo-install glibc-2.12-
1.132.el6_5.3.i686
(gdb) list
No symbol table is loaded. Use the "file" command.
(gdb) back
#0 0x00110430 in __kernel_vsyscall ()
#1 0x00c8f8d3 in __read_nocancel () from /lib/libc.so.6
#2 0x00c2972b in _IO_new_file_underflow () from /lib/libc.so.6
#3 0x00c2b44b in _IO_default_uflow_internal () from /lib/libc.so.6
#4 0x00c2ca5a in __uflow () from /lib/libc.so.6
#5 0x00c1f36c in _IO_getline_info_internal () from /lib/libc.so.6
#6 0x00c1f2b1 in _IO_getline_internal () from /lib/libc.so.6
#7 0x00c1e1ea in fgets () from /lib/libc.so.6
#8 0x0804851c in main ()
(gdb)
我看了其他像gdb: "No symbol table is loaded"这样的帖子,但我不认为这与我有关,因为我尝试“破解”的文件已经编译并提供给我。所以我不是在调试C源文件,而是压缩后的文件。
这是我现在的困境,我需要任何解释或帮助来解决我正在遇到的“未加载符号表”问题。
#0
中“列出”源代码。 - ks1322break 8
,但仍然得到相同的响应。抱歉我没有在那里放置break
行。但是我尝试过的list
和其他命令都得到了相同的响应。 - Pwrcdr87