在 AIX 中建立特定于产品的调试器
2009-07-15 08:33:40 来源:WEB开发网用 dbx 进行调试的传统方式
我们来看看如何只使用 dbx 以传统方式调试此程序。以下命令编译代码:
[samyak@mogly plugin_example ]# cc -g list.c -o list
现在,通过把示例程序连接到 dbx 会话来运行它。在 dbx 会话中,可以在程序中设置一些断点,然后运行它。然后,可以使用 dbx 中的现有命令查看链表的内容。
[samyak@mogly plugin_example ]# dbx ./list
Type 'help' for help.
reading symbolic information ...
(dbx)
(dbx) print List
(nil)
(dbx) stop in free_list
[1] stop in free_list
(dbx) run
Info 1 : 10
Info 2 : 20
Info 3 : 30
Info 4 : 40
Info 5 : 50
Info 6 : 60
Info 7 : 70
Info 8 : 80
Info 9 : 90
Info 10 : 100
[1] stopped in free_list at line 43
43 while(List) {
(dbx) print List
0x20000a28
(dbx) print *List
(info = 10, next = 0x20000a38)
(dbx) print *(struct List *)0x20000a38
(info = 20, next = 0x20000a48)
(dbx) print *(struct List *)0x20000a48
(info = 30, next = 0x20000a58)
(dbx) print *(struct List *)0x20000a58
(info = 40, next = 0x20000a68)
And so on for all the nodes in the list.
在这个片段中,运行 “list” 程序并把它连接到 dbx 会话。为了在所需的位置停止执行,在 free_list() 例程上设置一个断点。然后,使用现有的 dbx 命令显示列表节点的内容。
更多精彩
赞助商链接