- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 gdb
调试程序,当我设置断点并继续 strcpy()
函数时。我收到以下回复:
frinto@kali:~/Documents/theclang/programs/helloworld$ gcc -fno-builtin -m32 -g -o char_array char_array.c
frinto@kali:~/Documents/theclang/programs/helloworld$ ls
a.out char_array char_array.c firstprog.c helloworld.c
frinto@kali:~/Documents/theclang/programs/helloworld$ ./char_array
Hello, world!
frinto@kali:~/Documents/theclang/programs/helloworld$ gdb -q char_array
Reading symbols from char_array...done.
(gdb) list
1 #include <stdio.h>
2 #include <string.h>
3
4 int main() {
5 char str_a[20];
6
7 strcpy(str_a, "Hello, world!\n");
8 printf(str_a);
9 }
(gdb) break 6
Breakpoint 1 at 0x11c6: file char_array.c, line 6.
(gdb) break strcpy
Breakpoint 2 at 0x1040
(gdb) break 8
Breakpoint 3 at 0x11dc: file char_array.c, line 8.
(gdb) run
Starting program: /home/frinto/Documents/theclang/programs/helloworld/char_array
Breakpoint 1, main () at char_array.c:7
7 strcpy(str_a, "Hello, world!\n");
(gdb) cont
Continuing.
Breakpoint 2, strcpy_ifunc () at ../sysdeps/i386/i686/multiarch/strcpy.c:29
29 ../sysdeps/i386/i686/multiarch/strcpy.c: No such file or directory.
(gdb)
我在 Kali 2.0 上,我已经安装了:libc6-dbg
和 libc6-dbg:i386
如果它还不是很明显,我想摆脱这个错误信息:
../sysdeps/i386/i686/multiarch/strcpy.c: No such file or directory
提前感谢您的帮助!
最佳答案
I want to get rid of this error message:
这不是错误。 GDB 告诉您您已经在 strcpy_ifunc
函数中停止(请参阅 this description 了解 IFUNC
是什么),该函数在 ../sysdeps/中定义i386/i686/multiarch/strcpy.c
源文件,而 GDB 不知道如何在文件系统上找到该文件(因此无法向您显示 strcpy_ifunc
的源代码).
解决这个问题的最好方法是告诉 GDB 在哪里可以找到这个源。请参阅 (gdb) 帮助目录
。
当然,要实现这一点,您实际上需要 GLIBC 源代码。我不知道 Kali
是否将源代码打包到 libc6-dbg:i386
中,你可能需要安装一个单独的 glibc-source
包.
关于c - ../sysdeps/i386/i686/multiarch/strcpy.c : No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54282586/
我正在尝试将一些字符串传递给 espeak,它会通过以下代码说出它们: #include #include #include #include #include #include //#i
我们正在计算机体系结构类(class)中学习使用 GDB。为此,我们通过使用 SSH 连接到树莓派来完成大部分工作。当在某些代码上运行 GDB 时,他让我们进行调试,尽管它以一条错误消息结束,告诉我们
我正在尝试使用 gdb 调试程序,当我设置断点并继续 strcpy() 函数时。我收到以下回复: frinto@kali:~/Documents/theclang/programs/helloworl
我安装了 libc6 和 libc6-dbg。 (gdb) b reak freeifaddrs (gdb) run Breakpoint 1, __freeifaddrs (ifa=0xa822e0
我正在使用 gdb 来调试 C++ 程序。在行中 assert(prevId == GetTagIdFromState(maxState)); 参数prevId值为0; 方法GetTagIdFrom
当我尝试使用 vfork() 时遇到问题。这是代码! #include #include main() { if(vfork() == 0) { printf("T
我正在使用一个名为 Harbor 的开发平台来使用 Clipper 代码创建一个在 32 位 SuSe 上运行的 Linux 可执行文件。 我已经可以创建一个仍然需要平台外部库的可执行文件,但我需要创
我正在尝试在 Ubuntu 20.04 docker 容器中运行应用程序。它启动但很快崩溃。 使用 GDB 我已经追踪到这个 Thread 36 "Emuthread - Sta" received
我正在尝试用 c 语言编写一个简单的超几何测试。此代码适用于小数字,但不适用于大数字。 例如:hyperG 35 50 90 3400 -- 有效 但是 hyperG ./hyperG 307107
我是一名优秀的程序员,十分优秀!