青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

tqsheng

go.....
隨筆 - 366, 文章 - 18, 評論 - 101, 引用 - 0
數據加載中……

介紹一個linux下生成C代碼調用樹的好工具calltree

平時用vim+cscope+ctags看程序還不錯,但跳來跳去還是不太直觀,如果能將C代碼的調用生成調用樹就再好不過了,果然,偶找到了一款不錯的工具calltree,有了這個工具,可以說宏觀微宏一起把握了,拋媚眼

先看一下用它生成的函數調用圖:

源碼是nbtscan小工具的代碼.

ljt@debian:~/source/nbtscan-1.5.1$ calltree -gb -np -m *.c

main [nbtscan.c:289]:
| FD_ISSET
| FD_SET
| FD_ZERO
| atoi
| bind
| bzero
| d_print_hostinfo [nbtscan.c:93]
| | inet_ntoa
| | printf
| | strncpy
| delete_list [list.c:29]
| | free
| err_die
| err_print
| exit
| feof
| fgets
| fopen
| fprintf
| free
| getopt
| gettimeofday
| htons
| in_list [list.c:101]
| | compare [list.c:47]
| | new_list_item [list.c:17]
| | | err_die
| | | malloc
| inet_aton
| inet_ntoa
| insert [list.c:55]
| | compare [list.c:47]
| | free
| | new_list_item [list.c:17]
| | | err_die
| | | malloc
| l_print_hostinfo [nbtscan.c:260]
| | inet_ntoa
| | printf
| | strncpy
| malloc
| new_list [list.c:8]
| | err_die
| | malloc
| next_address [range.c:72]
| | htonl
| | ntohl
| ntohl
| parse_response [statusq.c:147]
| | bzero
| | get16 [statusq.c:137]
| | | memcpy
| | | ntohs
| | get32 [statusq.c:127]
| | | memcpy
| | | ntohl
| | malloc
| | memcpy
| | strncpy
| | typeof
| print_banner [nbtscan.c:26]
| | printf
| print_header [nbtscan.c:87]
| | printf
| print_hostinfo [nbtscan.c:207]
| | inet_ntoa
| | printf
| | strncpy
| printf
| recvfrom
| select
| send_query [statusq.c:93]
| | bzero
| | err_print
| | gettimeofday
| | htons
| | inet_ntoa
| | name_mangle [statusq.c:40]
| | | HAVE_SNPRINTF
| | | memset
| | | snprintf
| | | sprintf
| | | strcmp
| | | strlen
| | | toupper
| | sendto
| | snprintf
| set_range [nbtscan.c:80]
| | is_ip [range.c:21]
| | | inet_addr
| | | ntohl
| | is_range1 [range.c:36]
| | | abs
| | | atoi
| | | err_die
| | | free
| | | inet_addr
| | | malloc
| | | ntohl
| | | strchr
| | | strcpy
| | | strlen
| | is_range2 [range.c:91]
| | | atoi
| | | err_die
| | | free
| | | inet_addr
| | | malloc
| | | ntohl
| | | strchr
| | | strcpy
| | | strlen
| sleep
| snprintf
| socket
| strcmp
| strdup
| timerclear
| timercmp
| timersub
| usage [nbtscan.c:32]
| | exit
| | printf
| v_print_hostinfo [nbtscan.c:156]
| | getnbservicename [statusq.c:370]
| | | err_die
| | | malloc
| | | snprintf
| | | strstr
| | inet_ntoa
| | printf
| | strncpy

還不錯哦,能很直觀地顯示程序的架構

下面介紹一下各選項:
ljt@debian:~/source/nbtscan-1.5.1$ calltree -gb -np -m *.c

-b 就是那個豎線了,很直觀地顯示縮進層次。
-g 打印內部函數的所屬文件名及行號,外部函數所屬文件名和行號也是可打印的,詳man

-np 不要調用c預處理器,這樣打印出的界面不會很雜亂,但也可能會產生錯誤哦,如果我們只看
函數的調用關系的話,不會有大問題。
-m 告訴程序從main開始

還有一個重要的選項是 listfunction ,縮寫是lf,用來只打印某個函數中的調用,用法是:
$calltree -gb -np lf=send_query *.c

send_query [statusq.c:93]:
| bzero
| err_print
| gettimeofday
| htons
| inet_ntoa
| name_mangle [statusq.c:40]
| | HAVE_SNPRINTF
| | memset
| | snprintf
| | sprintf
| | strcmp
| | strlen
| | toupper
| sendto
| snprintf

還有幾個不太常用的就不介紹了,細節大家還是看man吧,另外說明一點的是,安裝的時候它默認是安裝到"/opt/schily/"目錄下,下面有bin, man, include等幾個目錄,你可以設置環境變量,或者干脆把它拷貝到/usr里相應的目錄下,或者修改Makefile啦


下載地址:

ftp://ftp.berlios.de/pub/calltree/calltree-2.3.tar.bz2

posted on 2012-04-05 22:41 tqsheng 閱讀(1304) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            尤妮丝一区二区裸体视频| 亚洲综合久久久久| 欧美一区二区三区婷婷月色 | 亚洲欧美中文另类| 亚洲午夜在线视频| 新67194成人永久网站| 久久婷婷av| 欧美激情视频一区二区三区免费 | 夜夜嗨av一区二区三区网站四季av| 亚洲毛片一区二区| 午夜欧美理论片| 男人的天堂亚洲在线| 日韩亚洲视频| 新狼窝色av性久久久久久| 久久亚洲国产精品一区二区| 欧美精品久久久久久久免费观看| 欧美视频一区在线观看| 国产欧美另类| 亚洲免费激情| 久久噜噜噜精品国产亚洲综合| 亚洲电影第1页| 亚洲国产精品专区久久| 午夜精品理论片| 欧美国产三级| 国产中文一区二区三区| 亚洲午夜电影网| 欧美国产第一页| 欧美影院成人| 国产精品久久看| 亚洲视频成人| 亚洲精品1区| 久久久久久久久久久成人| 国产精品久久久久久久久免费樱桃| 亚洲国内高清视频| 久久亚洲影音av资源网| 亚洲狼人综合| 欧美一区二区精品久久911| 欧美刺激午夜性久久久久久久| 国产精品无码永久免费888| 亚洲免费观看高清在线观看| 六月婷婷一区| 午夜精品美女久久久久av福利| 欧美精品久久久久久久| 亚洲国产精品va在看黑人| 久久国产视频网| 亚洲一区二区免费| 欧美午夜在线观看| 中日韩高清电影网| 亚洲免费激情| 欧美精品少妇一区二区三区| 亚洲欧洲在线观看| 欧美激情一区二区| 欧美成人精品在线播放| 亚洲精品影院在线观看| 亚洲国产欧美国产综合一区| 免费成人性网站| 亚洲成人在线| 欧美激情影音先锋| 欧美国产精品专区| 亚洲精品乱码久久久久久蜜桃麻豆| 免费成人高清视频| 米奇777超碰欧美日韩亚洲| 在线看片成人| 亚洲高清视频的网址| 欧美精品三区| 亚洲一区二区三区在线播放| 正在播放亚洲一区| 国产日韩欧美精品在线| 久久综合电影一区| 两个人的视频www国产精品| 亚洲人成在线播放网站岛国| 亚洲国产另类久久久精品极度| 欧美另类专区| 午夜在线观看欧美| 久久国产日韩| 日韩系列欧美系列| 亚洲一区二区三区视频| 国产一区二区三区四区| 欧美国产日韩一区二区| 欧美日本在线看| 欧美一区二区私人影院日本| 久久久久久自在自线| 日韩视频三区| 亚洲字幕在线观看| 亚洲高清久久久| 亚洲免费观看高清完整版在线观看熊| 欧美午夜激情视频| 久久亚洲春色中文字幕久久久| 免费永久网站黄欧美| 亚洲在线电影| 久久综合色婷婷| 亚洲欧美精品suv| 久久影院午夜论| 亚洲欧美另类国产| 久久久久国产精品人| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美中文字幕视频在线观看| 在线欧美日韩国产| 亚洲裸体俱乐部裸体舞表演av| 国产精品一香蕉国产线看观看| 快射av在线播放一区| 欧美午夜电影在线观看| 麻豆av一区二区三区| 国产精品视频一区二区三区 | 午夜精品久久久久久久久久久| 亚洲福利在线看| 亚洲一区二区三区激情| 最新国产精品拍自在线播放| 欧美一级黄色网| 亚洲天堂免费观看| 欧美 亚欧 日韩视频在线| 久久国产欧美日韩精品| 国产精品av一区二区| 亚洲福利视频一区| 国产综合精品一区| 亚洲欧美日韩视频二区| 亚洲调教视频在线观看| 欧美成人一区二区| 蜜桃av一区二区在线观看| 国产美女精品免费电影| av成人手机在线| 夜夜嗨网站十八久久| 久久午夜羞羞影院免费观看| 久久久国产精品一区| 国产精品视频福利| 亚洲午夜视频| 亚洲欧美日韩一区| 国产精品白丝av嫩草影院| 亚洲激情偷拍| 亚洲日本久久| 欧美大片免费久久精品三p | 久色婷婷小香蕉久久| 国产精品视频网站| 亚洲欧美日韩成人| 西瓜成人精品人成网站| 国产精品午夜国产小视频| 亚洲手机成人高清视频| 亚洲欧美日韩一区在线| 国产欧美一区二区三区久久 | 久久爱另类一区二区小说| 久久国产黑丝| 在线免费观看日韩欧美| 免费不卡中文字幕视频| 亚洲福利在线观看| 99re66热这里只有精品3直播| 欧美激情综合在线| 日韩视频不卡中文| 午夜视频在线观看一区| 国产午夜精品在线观看| 久久精品观看| 亚洲国产岛国毛片在线| 欧美精品日日鲁夜夜添| 久久久久国色av免费观看性色| 国产欧美日韩一级| 久久久噜噜噜久久中文字幕色伊伊 | 伊人激情综合| 欧美大片在线看免费观看| 日韩午夜免费| 欧美亚洲一区二区在线| 国产曰批免费观看久久久| 久久综合九色九九| 99国产精品久久| 久久久五月婷婷| 亚洲精品久久嫩草网站秘色 | 午夜视频一区在线观看| 久久夜色精品国产噜噜av| 亚洲精品美女在线观看| 国产精品久久久久毛片软件 | 欧美91视频| 亚洲欧美日韩一区二区三区在线观看 | 亚洲第一区色| 午夜精品久久久久久久久久久久| 狠狠狠色丁香婷婷综合激情| 欧美韩日一区二区| 欧美一区二区三区视频在线观看| 欧美激情1区2区| 欧美一区二区三区男人的天堂| 亚洲国产91| 国产日韩欧美高清| 欧美日韩亚洲一区二区三区四区| 性刺激综合网| 日韩一本二本av| 欧美aaaaaaaa牛牛影院| 欧美一区二区三区的| 一本色道久久综合亚洲91| 伊人成人网在线看| 国产伦精品一区二区三区视频孕妇 | 亚洲日韩视频| 欧美88av| 久久婷婷一区| 性做久久久久久久久| 一区二区三区日韩精品| 亚洲第一黄色| 韩日欧美一区| 国产日韩在线视频| 国产欧美精品va在线观看| 国产精品美女www爽爽爽| 欧美猛交免费看| 欧美黑人多人双交| 欧美va日韩va|