使用 GDB 进行远程调试

Remote debugging with GDB

我正在使用 GDB 调试 C 代码。 GDB 进程在 Cisco 交换机映像上 运行。

我有一些字符串变量的内存地址,它的内存地址是 0xFFFFFFF.

我如何知道该内存地址中的字符串是通过哪个函数分配的?

您可以通过 watch *(char*)0xFFFFFFF 为该地址设置一个观察点。 (这实际上将只监视该地址的第一个字节。)Details, as usual, are in the GDB manual.

需要考虑的事项:字符串可能是程序启动时出现的常量。在这种情况下,只能修改指针变量 (char*) 以指向该字符串。在这种情况下,您永远不会看到该地址处的内存被修改。