gpt4 book ai didi

c - Gdb 和外部函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:34 26 4
gpt4 key购买 nike

所以我有以下代码

(gdb) list
#include<stdio.h>
#include<string.h>

int main()
{
char str_a[20];

strcpy(str_a,"Hello World!\n");
printf(str_a);
}

但是当我用 gdb 反汇编它时,没有引用 strcpy。而是显示函数 strcpy 的内部。

(gdb) disassemble main
Dump of assembler code for function main:
0x00000000004004fd <+0>: push rbp
0x00000000004004fe <+1>: mov rbp,rsp
0x0000000000400501 <+4>: sub rsp,0x20
0x0000000000400505 <+8>: lea rax,[rbp-0x20]
0x0000000000400509 <+12>: movabs rdx,0x6f57206f6c6c6548
0x0000000000400513 <+22>: mov QWORD PTR [rax],rdx
0x0000000000400516 <+25>: mov DWORD PTR [rax+0x8],0x21646c72
0x000000000040051d <+32>: mov WORD PTR [rax+0xc],0xa
0x0000000000400523 <+38>: lea rax,[rbp-0x20]
0x0000000000400527 <+42>: mov rdi,rax
0x000000000040052a <+45>: mov eax,0x0
0x000000000040052f <+50>: call 0x4003e0 <printf@plt>
0x0000000000400534 <+55>: leave
0x0000000000400535 <+56>: ret
End of assembler dump.

如何让 GDB 以引用 printf 的方式引用 strcpy?我正在用“gcc -g”编译

最佳答案

尝试使用 -fno-builtin 编译您的程序。

在您的gcc 中,strcpy 是一个内置函数。另见 6.56 Other Built-in Functions Provided by GCC .

关于c - Gdb 和外部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22551881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com