您的位置:程序门 -> linux/unix社区 -> 程序开发区



关于linux程序的跟踪


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


关于linux程序的跟踪
发表于:2007-08-09 16:02:11 楼主
各位大侠,小弟正在研究一个路由协议的代码,aodv的。它有好多个c,h,文件,还有makefile文件。这个可执行程序已经可以运行了的。我想跟踪代码怎么执行的。听说gdb可以,但是很多说明上都是介绍跟踪一个很小的c程序。由于这个程序是由makefile文件弄出来的,如果单独跟踪某个c文件是不行的,我想知道怎么跟踪整个程序。不知道我表达清楚没有,请高人指点啊!谢谢。
发表于:2007-08-09 16:04:271楼 得分:0
我试着跟踪main.c文件,可是不行,好像链接有问题。它需要其他的文件生成的库吧?
想请高人指点,谢谢。
发表于:2007-08-09 16:05:462楼 得分:0
自己顶一下,希望有好心人帮忙啊!
发表于:2007-08-09 16:30:253楼 得分:0
可以试试下面命令
strace   -f   -f   -o   bug.txt   file
生成的bug.txt文件记录了运行的file文件系统调用等操作
发表于:2007-08-09 17:55:074楼 得分:0
makefile生成的怎么啦,也能跟踪啊,

你想跟踪那个什么,就跟踪什么,它能顺着你的执行路径跟踪到相应文件,这个不用担心.
发表于:2007-08-09 21:22:015楼 得分:0
谢谢楼上的哥们,cceczjxy兄的意思是?能否具体点?是在makefile里面加跟踪参数吗?
发表于:2007-08-09 21:25:326楼 得分:0
这个程序有若干.c   .h文件,还有maefile。当生成可执行程序后,还有几个.o文件。不知道该如何下手跟踪,请大家指点。能否说具体点啊?呵呵,hefuhua(大漠)   哥们的方法我会尝试的。再次感谢!
发表于:2007-08-10 08:41:507楼 得分:0
gdb调试程序
http://blog.csdn.net/kkpeng/archive/2007/08/01/1720916.aspx

编译时候应该要加   -g   参数
发表于:2007-08-10 09:26:518楼 得分:0
#############################################################################
#   makefile   for   building:   kq43arm
#   generated   by   qmake   (1.07a)   (qt   3.3.3)   on:   sat   jun     9   16:15:58   2007
#   project:     kq43arm.pro
#   template:   app
#   command:   $(qmake)   -spec   /qte2-share/kq43arm   -o   makefile   kq43arm.pro
#############################################################################

#######   compiler,   tools   and   options

cc               =   /usr/local/arm/2.95.3/bin/arm-linux-gcc
cxx             =   /usr/local/arm/2.95.3/bin/arm-linux-g++
lex             =   flex
yacc           =   yacc
cflags       =   -g   -pipe   -wall   -w   -o2     -dqt_no_debug   -dqt_shared       //这个地方加了个-g   参数
cxxflags   =   -pipe   -wall   -w   -dqws   -fno-exceptions   -fno-rtti   -o2     -dqt_no_debug   -dqt_shared
lexflags   =
yaccflags=   -d
incpath     =   -i/qte2-share/kq43arm   -i.   -i.   -i/qte2-share/include
link           =   /usr/local/arm/2.95.3/bin/arm-linux-g++


gcc   中的-g   参数,用以生成调试符号表要是没加的话,你连main函数都跟踪不进去
发表于:2007-08-10 10:03:329楼 得分:0
楼主是不是以为gdb只能跟踪单个c文件而不能跟踪整个程序?
gdb的功能比你想象的要强大强大再强大
发表于:2007-08-10 15:20:0410楼 得分:0
先谢谢大家了,我再试试。顺便问下给分怎么给啊?呵呵
发表于:2007-09-29 13:32:2311楼 得分:0
原来在makefile里面的gcc后面加-g就行了
比如$(cc)   $(cflags)   -c   -o   $@   $ <
改成$(cc)   -g   $(cflags)   -c   -o   $@   $ <


快速检索

最新资讯
热门点击