色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何提高閱讀源碼的效率

FPGA之家 ? 來源:小麥大叔 ? 作者:小麥大叔 ? 2022-07-06 10:01 ? 次閱讀

我發(fā)現(xiàn)函數(shù)調(diào)用圖可以讓我們更加直觀地了解到源碼函數(shù)直接的調(diào)用和層次關(guān)系,提高閱讀源碼的效率。

1 前言

看源碼的時(shí)候,心血來潮想弄一下函數(shù)之前的調(diào)用關(guān)系,想起以前doxygen配合graphviz使用可以生成比較直觀的函數(shù)調(diào)用關(guān)系圖,但是前提是函數(shù)的注釋需要嚴(yán)格按照doxygen的規(guī)范,具體可以自己去搜索一下,當(dāng)然使用source insight等利器也很方便;

本文主要通過gcc+egypt+graphviz(dot)三個(gè)工具輕松生成源碼的函數(shù)調(diào)用關(guān)系圖;下圖是本人在閱讀FreeRTOS源碼tasks.c時(shí)生成的調(diào)用關(guān)系圖,具體如下所示;

045f7db6-fcc3-11ec-ba43-dac502259ad0.png一個(gè)例子

2 graphviz 安裝

Graphviz (Graph Visualization Software的縮寫)是一個(gè)由AT&T實(shí)驗(yàn)室啟動(dòng)的開源工具包,用于繪制DOT語言腳本描述的圖形。ubuntu下可以直接安裝;

sudoapt-getinstallgraphviz

直接輸入指令后,系統(tǒng)開始安裝;046f787e-fcc3-11ec-ba43-dac502259ad0.png

成功安裝graphviz,這里我們就可以使用dot工具了,具體使用方法如下;

04840af0-fcc3-11ec-ba43-dac502259ad0.png

3 egypt 安裝

egypt官網(wǎng): http://www.gson.org/egypt/

049544b4-fcc3-11ec-ba43-dac502259ad0.png簡(jiǎn)潔的首頁(yè)

下載后的文件為egypt-1.10.tar.gz;找到文件所在路徑;

sudofind-nameegypt-1.10.tar.gz

然后解壓:

sudotar-xvfegypt-1.10.tar.gz

解壓得到egypt-1.10;

cdegypt-1.10&&sduochmod+xegypt

最終可以看到文件結(jié)構(gòu)如下;

04b8cbe6-fcc3-11ec-ba43-dac502259ad0.png

將egypt移動(dòng)到/usr/bin,方便后面直接調(diào)用,或者將當(dāng)前egypt所在路徑添加到環(huán)境變量中;

sudocpegypt/usr/bin

以上,已經(jīng)完成了egypt的安裝;

使用方法如下;

egypt[--omitfunction,function,...][--include-external]...|dotty-
egypt[--omitfunction,function,...][--include-external]...|dot

4 測(cè)試

編寫程序test.c,具體如下所示;

#include

voidtest0();
voidtest1();
voidtest2();
voidtest3();

intmain()
{
test1();
test2();
test3();
return0;
}

voidtest0(void){
printf("hello");
}

voidtest1(void)
{
test0();
}

voidtest2(void)
{
test1();
}

voidtest3(void)
{

}

編譯需要加上參數(shù)-fdump-rtl-expand生成相應(yīng)的dump文件;

gcc-fdump-rtl-expand-ctest.c

04c8f034-fcc3-11ec-ba43-dac502259ad0.png

這里有我們需要的文件test.c.229r.expand;

輸入如下指令;

egypttest.c.229r.expand|dot-Tpng-otest.png

最終生成了順利生成test.png,具體如下圖所示;

04d42850-fcc3-11ec-ba43-dac502259ad0.png最終調(diào)用關(guān)系圖

5 結(jié)論

對(duì)C語言源碼的閱讀用這個(gè)辦法還是有點(diǎn)小麻煩,無法一鍵生成調(diào)用關(guān)系,,

另外還需要gcc編譯源碼生成dumpfile文件,如果想要方便一些,可能還需要自己寫腳本實(shí)現(xiàn)自動(dòng)化,如果大佬有更好的辦法,歡迎留言區(qū)討論。

原文標(biāo)題:一個(gè)超級(jí)實(shí)用的源碼閱讀小技巧

文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7608

    瀏覽量

    137111
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    646

    瀏覽量

    29279
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4338

    瀏覽量

    62739

原文標(biāo)題:一個(gè)超級(jí)實(shí)用的源碼閱讀小技巧

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    SOLIDWORKS 2025提高數(shù)據(jù)效率

    隨著技術(shù)的不斷進(jìn)步,CAD軟件在工程設(shè)計(jì)領(lǐng)域的作用日益凸顯。SOLIDWORKS 2025作為新的CAD軟件版本,通過引入一系列創(chuàng)新功能和優(yōu)化措施,顯著提高了數(shù)據(jù)管理的效率和準(zhǔn)確性。
    的頭像 發(fā)表于 01-07 14:49 ?79次閱讀
    SOLIDWORKS 2025<b class='flag-5'>提高</b>數(shù)據(jù)<b class='flag-5'>效率</b>

    怎樣提高三坐標(biāo)測(cè)量機(jī)的測(cè)量效率

    提高三坐標(biāo)測(cè)量機(jī)的測(cè)量效率是許多制造和質(zhì)量控制領(lǐng)域中的一個(gè)關(guān)鍵問題。三坐標(biāo)測(cè)量機(jī)(CMM)是一種精密的測(cè)量設(shè)備,用于檢測(cè)零件的幾何尺寸和形狀。以下是一些提高三坐標(biāo)測(cè)量機(jī)測(cè)量效率的方法,
    的頭像 發(fā)表于 12-19 10:20 ?234次閱讀

    如何提高poe供電效率

    提高PoE(Power over Ethernet,以太網(wǎng)供電)供電效率是一個(gè)涉及多個(gè)方面的綜合性問題。以下是一些具體的建議,旨在幫助提高PoE供電效率: 一、優(yōu)化PoE設(shè)備選擇與設(shè)計(jì)
    的頭像 發(fā)表于 11-19 10:45 ?259次閱讀

    如何提高CNC加工效率

    在當(dāng)今競(jìng)爭(zhēng)激烈的制造業(yè)環(huán)境中,提高CNC加工效率是企業(yè)保持競(jìng)爭(zhēng)力的關(guān)鍵。CNC機(jī)床的效率不僅影響生產(chǎn)成本,還關(guān)系到產(chǎn)品質(zhì)量和交貨速度。 1. 優(yōu)化CNC程序 1.1 減少空行程 CNC程序中的空行
    的頭像 發(fā)表于 11-12 09:18 ?696次閱讀

    如何提高伺服驅(qū)動(dòng)器的效率

    在現(xiàn)代工業(yè)自動(dòng)化領(lǐng)域,伺服驅(qū)動(dòng)器的效率對(duì)于整個(gè)系統(tǒng)的能效和性能至關(guān)重要。本文探討了影響伺服驅(qū)動(dòng)器效率的關(guān)鍵因素,并提出了一系列提高效率的策略,包括優(yōu)化控制算法、改善硬件設(shè)計(jì)、采用先進(jìn)的功率電子技術(shù)
    的頭像 發(fā)表于 11-04 15:20 ?410次閱讀

    MES系統(tǒng)如何提高生產(chǎn)效率

    在當(dāng)今競(jìng)爭(zhēng)激烈的制造行業(yè)中,提高生產(chǎn)效率是企業(yè)生存和發(fā)展的關(guān)鍵。MES系統(tǒng)作為一種先進(jìn)的制造管理工具,已經(jīng)成為許多制造企業(yè)提高生產(chǎn)效率的重要手段。 1. 實(shí)時(shí)監(jiān)控與數(shù)據(jù)收集 MES系統(tǒng)
    的頭像 發(fā)表于 10-27 09:16 ?328次閱讀

    如何提高云計(jì)算的性能和效率

    提高云計(jì)算的性能和效率是一個(gè)多維度的問題,需要從計(jì)算性能、存儲(chǔ)性能、網(wǎng)絡(luò)性能等多個(gè)方面入手。以下是一些具體的策略和方法: 一、計(jì)算性能優(yōu)化 資源分配 : 根據(jù)用戶需求動(dòng)態(tài)分配資源,以提高服務(wù)器
    的頭像 發(fā)表于 10-24 09:23 ?554次閱讀

    預(yù)測(cè)性柵極驅(qū)動(dòng)提高轉(zhuǎn)換器效率

    電子發(fā)燒友網(wǎng)站提供《預(yù)測(cè)性柵極驅(qū)動(dòng)提高轉(zhuǎn)換器效率.pdf》資料免費(fèi)下載
    發(fā)表于 10-21 09:17 ?0次下載
    預(yù)測(cè)性柵極驅(qū)動(dòng)<b class='flag-5'>提高</b>轉(zhuǎn)換器<b class='flag-5'>效率</b>

    提高LLC轉(zhuǎn)換器的ZVS和效率

    電子發(fā)燒友網(wǎng)站提供《提高LLC轉(zhuǎn)換器的ZVS和效率.pdf》資料免費(fèi)下載
    發(fā)表于 10-14 10:03 ?0次下載
    <b class='flag-5'>提高</b>LLC轉(zhuǎn)換器的ZVS和<b class='flag-5'>效率</b>

    東莞mes系統(tǒng):提高生產(chǎn)效率的利器

    東莞作為中國(guó)制造業(yè)的重要基地之一,擁有眾多制造企業(yè),其中不乏一些領(lǐng)先的MES系統(tǒng)供應(yīng)商。這些 MES系統(tǒng)供應(yīng)商 致力于為東莞的制造企業(yè)提供智能制造解決方案,幫助企業(yè)提高生產(chǎn)效率、降低生產(chǎn)成本、提升
    的頭像 發(fā)表于 05-21 15:37 ?465次閱讀

    深圳MES系統(tǒng)如何提高生產(chǎn)效率

    深圳MES系統(tǒng)可以通過多種方式提高生產(chǎn)效率,具體如下: 實(shí)時(shí)監(jiān)控和分析:MES系統(tǒng)可以實(shí)時(shí)收集并分析生產(chǎn)數(shù)據(jù),幫助企業(yè)及時(shí)了解生產(chǎn)狀況,發(fā)現(xiàn)問題并迅速解決,避免問題擴(kuò)大化。這種實(shí)時(shí)監(jiān)控和分析功能可以
    的頭像 發(fā)表于 03-25 14:34 ?465次閱讀

    提高效率的DC電源模塊設(shè)計(jì)技巧

    BOSHIDA ?提高效率的DC電源模塊設(shè)計(jì)技巧 設(shè)計(jì)高效率的BOSHIDA ?DC電源模塊可以幫助減少能源浪費(fèi)和提高系統(tǒng)功耗,以下是一些設(shè)計(jì)技巧: 1. 選擇高效率的功率轉(zhuǎn)換器:選擇
    的頭像 發(fā)表于 02-26 14:27 ?571次閱讀
    <b class='flag-5'>提高效率</b>的DC電源模塊設(shè)計(jì)技巧

    提高電源整機(jī)效率的方法

    電源整機(jī)效率是指電源將輸入電能轉(zhuǎn)換為輸出電能的效率,通常用百分比表示。提高電源整機(jī)效率可以降低能源消耗,減少環(huán)境污染,提高設(shè)備的運(yùn)行
    的頭像 發(fā)表于 01-17 15:57 ?734次閱讀

    Apache Doris聚合函數(shù)源碼解析

    筆者最近由于工作需要開始調(diào)研 Apache Doris,通過閱讀聚合函數(shù)代碼切入 Apache Doris 內(nèi)核,同時(shí)也秉承著開源的精神,開發(fā)了 array_agg 函數(shù)并貢獻(xiàn)給社區(qū)。筆者通過這篇文章記錄下對(duì)源碼的一些理解,同時(shí)也方便后面的新人更快速地上手
    的頭像 發(fā)表于 01-16 09:52 ?1061次閱讀
    Apache Doris聚合函數(shù)<b class='flag-5'>源碼</b>解析

    提高系統(tǒng)效率的幾個(gè)誤解解析

    重復(fù)使用才會(huì)提高系統(tǒng)效率。所以在通信系統(tǒng)中一般只打開指令CACHE,數(shù)據(jù)CACHE即使打開也只局限在部分存儲(chǔ)空間,如堆棧部分。同時(shí)也要求程序設(shè)計(jì) 要兼顧C(jī)ACHE的容量及塊大小,這涉及到關(guān)鍵代碼循環(huán)體
    發(fā)表于 01-15 07:29
    主站蜘蛛池模板: beeg xxx日本老师| 热思思| 国产剧情在线精品视频不卡| 囯产精品久久久久免费蜜桃 | 精品无码国产污污污免费网站2| 久艾草在线精品视频在线观看| 久久99re2在线视频精品| 久久这里只有精品无码3D| 攻把受做哭边走边肉楼梯PLAY | 亚洲AV久久无码精品国产网站| 亚洲精品tv久久久久久久久久| 张津瑜的9分58秒7段免费| 99视频在线观看免费| 高h肉辣文黄蓉| 国产无遮挡色视频免费观看性色 | 亚洲 欧美 中文 日韩 另类| 亚洲久久少妇中文字幕| 18岁男人女人插孔| 亚洲字幕久久| 99久久99久久精品| 国产69精品麻豆久久久久| 狠狠色狠狠色综合系列| 国产伊人久久| 久久棋牌评测| 人妻满熟妇AV无码区国产| 香港成人社区| 100国产精品人妻无码| 成人免费肉动漫无遮网站| 国产在线观看91精品| 免费又黄又硬又爽大片| 四川少妇大战4黑人| 又黄又爽又无遮挡在线观看免费| 办公室日本肉丝OL在线| 国产在线视频一区二区不卡| 蜜桃AV色欲A片精品一区| 天堂岛www| 最近韩国日本免费观看mv免费版 | 午夜伦理电影在线观免费| 在线视频 亚洲| 国产成人在线视频网站| 老司机午夜影院味味|