码迷,mamicode.com
首页 > 系统相关 > 详细

如何实现在线查看进程中的变量以及执行调试函数

时间:2015-07-27 09:27:19      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:调试   c语言   

本程序实现了查看进程中的全局变量,以及执行进程中的调试函数的功能。
程序运行后,init_symbol函数会创建一个线程,此线程从标准输入读取
用户输入的变量名或函数调用命令,然后输出相应的结果。
例如,
输入 my_var,即可查看变量my_var的信息。
输入 my_func(1, "good", 0x123) 即可使用输入的参数执行函数my_func
目前最大支持8个参数,且每个参数size必须等于sizeof(long)
my_func函数的各个入参就是一个符合要求的例子。


输入d(mem_addr, len)可以查看内存的内容
例如,

输入d(0x12345678, 32)即可查看内存地址0x12345678处的32个字节的内容。


运行效果:

[root@localhost ~]# cd linux-dev-framework

[root@localhost ~]# make

...

[root@localhost linux-dev-framework]# ./target/symbol_utils_test.exe 


 ****symbol_shell started****
you can input var names to see var info
you can input d(addrress, len) to see memory contents
you can input xxx(1, 0x2, "abc") to execute function xxx
caution: every args‘s size of function xxx must == sizeof(long)


[symbol_shell]my_var
[var address] : 0x6030cc


[values] :
1 byte :0xd2               (-46)
2 bytes:0x4d2              (1234)
4 bytes:0x4d2              (1234)
8 bytes:0x63d87640000004d2 (7194630421974353106)


[symbol_shell]my_func(1, "hello", 0x64)
para1=1 para2=0x7fe8639cae1b para3=100
para2 contents = hello
[symbol_shell]


本程序源码在linux-dev-framework源码包中。

linux-dev-framework源码包的介绍:http://blog.csdn.net/crazycoder8848/article/details/22491525

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何实现在线查看进程中的变量以及执行调试函数

标签:调试   c语言   

原文地址:http://blog.csdn.net/crazycoder8848/article/details/47079607

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!