如题,某些应用就支持这种功能。如何实现的呢?
linux_dev_framework软件包中的telnetd4dbg_test.c就是一个实现示例。
该程序运行后,用户通过telnet 127.1 10000即可登陆到此程序的调试shell环境中然后即可输入变量名查看变量值,或者输入 变量名=值 以修改变量的值,或者执行调试函数。
例如,输入 my_var,即可查看变量my_var的信息。
输入 my_var=5,即可将变量my_var的值修改为5。
输入d(0x12345678, 32)即可查看内存地址0x12345678处的32个字节的内容。
运行效果:
[root@localhost ~]# cd linux-dev-framework
[root@localhost ~]# make
...
[root@localhost linux-dev-framework]# ./target/telnetd4dbg_test.exe
然后,用户通过telnet命令登陆到此程序的调试shell环境,就能感受到类似如下的调试体验了。
[root@localhost ~]#telnet 127.1 10000
****debug_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)
[debug_shell]#my_var
[var address] : 0x6030cc
[values] :
1 byte :0xd2 (-46)
2 bytes:0x4d2 (1234)
4 bytes:0x4d2 (1234)
8 bytes:0x63d87640000004d2 (7194630421974353106)
[debug_shell]#my_func(1, "hello", 0x64)
para1=1 para2=0x7fe8639cae1b para3=100
para2 contents = hello
[debug_shell]#
本程序源码在linux-dev-framework源码包中。
linux-dev-framework源码包的介绍:http://blog.csdn.net/crazycoder8848/article/details/22491525