新聞中心
稱

本文講述了如何利用 linux 系統(tǒng)調(diào)試,打印函數(shù)名稱的方法。 此需求在程序調(diào)試和程序改進(jìn)過程中被用作定位代碼錯誤的重要方式,特別是在C/C++等語言應(yīng)用時更是能夠顯示出很大作用。
在Linux系統(tǒng)中調(diào)試的首要方法就是使用 gdb 調(diào)試器,該調(diào)試器可以提供多種功能,從而實現(xiàn)用戶所需的功能。首先,要獲取程序運行時的函數(shù)名稱,需要在程序源文件中插入如下代碼:
#include
static void __cyg_profile_FUNC_enter (void *func, void *caller)
{
printf("ENTER: %p\n", func);
}
static void __cyg_profile_func_exit (void *func, void *caller)
{
printf("EXIT: %p\n", func);
}
在源文件中增加上述代碼后,在進(jìn)行編譯時需要增加鏈接選項 –finstrument-functions,編譯指令如下:
gcc –finstrument-functions source code.c -o program
編譯好之后,可以運行g(shù)db來查看插入的函數(shù)名;
gdb program
(gdb) start
再查看函數(shù)名稱:
(gdb) info func
可以使用info func 來打印出程序調(diào)用的全部函數(shù)名稱,包括本次運行時進(jìn)入及離開的函數(shù)??梢岳么朔椒▉矶ㄎ凰泻瘮?shù)的調(diào)用,有助于定位程序中出現(xiàn)的錯誤。
總之,Linux系統(tǒng)通過gdb及以上代碼插入等方法,可以將源程序增強,實現(xiàn)有關(guān)程序調(diào)試能力,并打印出相應(yīng)的函數(shù)名稱,從而快速定位問題代碼并實現(xiàn)更高的調(diào)試效率。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
本文題目:利用Linux系統(tǒng)調(diào)試:打印函數(shù)名(linux打印函數(shù)名)
URL地址:http://www.dlmjj.cn/article/dhcjhhs.html


咨詢
建站咨詢
