GDB 打印内存的方法是使用 x 命令,该命令可以按指定格式打印内存中的内容。

x 命令的语法为:x/[n][f] addr,其中 n 表示要打印的内存单元数量,f 表示打印的格式,addr 表示要打印的内存地址。

例如,要打印地址 0x1000 处的 4 个字节,可以使用如下命令:

x/4xb 0x1000

其中,4 表示要打印 4 个字节,b 表示以字节为单位打印,x 表示以 16 进制格式打印。

实现这个方法的代码如下:

#include <stdio.h>

void print_memory(void *addr, int size) {
    unsigned char *p = (unsigned char *) addr;
    int i;
    for (i = 0; i < size; i++) {
        printf("%02x ", p[i]);
        if ((i + 1) % 16 == 0)
            printf("\n");
    }
    printf("\n");
}

int main() {
    char buf[] = 'hello world';
    print_memory(buf, sizeof(buf));
    return 0;
}

该代码定义了一个 print_memory 函数,可以打印指定地址开始的一段内存。在 main 函数中调用该函数打印一个字符串 buf 的内存内容。

GDB 打印内存方法详解:x 命令及代码示例

原文地址: https://www.cveoy.top/t/topic/n3wM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录