用于远程调试的调试技术

时间:2010-12-29 05:07:21

标签: 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);

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

2 个答案:

答案 0 :(得分:1)

由于media_description显然是指针,因此您希望打印它指向的结构:

p *media_description

答案 1 :(得分:1)

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

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

p * media_description

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