gdb - 找到变量 Buf 的确切地址

标签 gdb buffer stack-overflow

作为引用,我使用以下代码:

#include <stdio.h>
#include <string.h>

int main (void) {
    char buf[100]; // ------> How do I find the address in gdb?

    printf ("Buffer is at memory location: %08x\n", &buf);
    strcpy (buf, "some random text");
    printf ("Text is [%s]\n", buf);

    return 0;
}

我怎样才能得到gdb给我看 buf 的地址多变的?

最佳答案

(gdb) p &a如果你需要变量的地址 a .但是,变量可能会缓存在寄存器中,在这种情况下,GDB 会告诉您 address requested for identifier "a" which is in register $xxx .

旁注:不要使用 gets ,见 here .

关于gdb - 找到变量 Buf 的确切地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4462915/

相关文章:

C++/CX 如何将 IRandomAccessStream^ 转换为字节并返回。 (UWP)

buffer - 什么是缓冲区?

recursion - Kotlin递归堆栈溢出

c - 使用 gdb 调试正在运行的守护进程

multithreading - 如何在GDB中调试多线程代码?

gdb - memcpy 回溯没有可用的符号

c - 有关缓冲、getchar() 和 scanf() 的问题吗?

将 C 代码转换为 MIPS 汇编 - 使用递归的组合函数

将项目添加到列表时出现 java.lang.StackOverflowError

gdb - 什么是符号表,如何将其集成到可执行文件中?