GDB 打印内存方法详解:x 命令及代码示例
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 的内存内容。
原文地址: https://www.cveoy.top/t/topic/n3wM 著作权归作者所有。请勿转载和采集!