c - 远程调试的调试技术

标签 c debugging

gcc (GCC) 4.1.2 
c89
Red Hat Enterprise Linux Server release 5.4 
2.6.18-164.el5
GNU gdb Fedora (6.8-37.el5)

使用以下调试标志-ggdb进行编译

我正在寻找一种在远程服务器上进行调试的方法。

目前我正在使用 gdb 进行调试。

但是,我想打印结构的内容以查看该元素已分配给什么值。

我可以做到这一点:

p media_description
$2 = (sdp_media_description_t *) 0xb7a80318

但是,这只是给我结构的内存地址。

是否有地方可以打印结构的元素?

非常感谢您的建议,

====编辑======

sdp_media_description_t *media_description = NULL;        
media_description = get_item(sdp_media_des_list, outer);

上面的代码应该返回一个指向结构实例的指针。

最佳答案

也许你有一个指向结构而不是结构的指针?

如果是这种情况,您可以在打印时取消引用指针,即

p *媒体描述

此外,如果您不想在控制台模式下使用 gdb 并且有您喜欢的图形前端,您应该能够通过在正在调试的计算机上运行 gdbserver 并在正在调试的计算机上运行 gdb 来远程使用它。由 GUI 驱动的开发机器,或者通过在被测机器上运行所有内容并使用 X 窗口系统的远程功能将其显示在您坐在前面的机器上

关于c - 远程调试的调试技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4551623/

相关文章:

c - C程序中的字符串文字,可以在二进制中找到吗?

C;内联汇编语法错误 "Expected string literal before numerical constant"

python - VSCode 中是否有快捷方式在调试 REPL 中执行当前行或选择?

c# - 该断点当前不会命中 wcf 服务。无法加载符号

c - 如何访问指向在另一个结构中声明的结构的指针?

c - 如何最好地模拟(非常)稀疏的概率密度函数?

java - 调试时找不到源

javascript - 捕获 JavaScript 错误

javascript - 打破变量值的变化

c - 在不排序的情况下查找数组中第二大的元素