亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

消息路標(biāo)和函數(shù)調(diào)用鏈

warmcheng / 617人閱讀

摘要:路標(biāo)是通過批注消息設(shè)置的,所以叫消息路標(biāo)。建立消息路標(biāo)的最大用途就是查看函數(shù)調(diào)用鏈。通過路標(biāo)的閃爍可以看到是否有調(diào)用關(guān)系,而如果想看調(diào)用鏈,雙擊閃爍的路標(biāo)即可上圖列舉了調(diào)用調(diào)用調(diào)用調(diào)用兩條調(diào)用關(guān)系鏈。

之前介紹了極客討論器通過分析C/C++/Java/Python/C#/Objective-C代碼來生成函數(shù)地圖,和按調(diào)用順序查看源代碼的旅行模式。

而在函數(shù)地圖下,還可以通過給函數(shù)節(jié)點(diǎn)設(shè)置路標(biāo)的方式,快速查看代碼間的調(diào)用關(guān)系。
路標(biāo)是通過批注消息設(shè)置的,所以叫“消息路標(biāo)”。簡(jiǎn)單來說,批注消息批注的代碼屬于哪個(gè)函數(shù),對(duì)應(yīng)的函數(shù)節(jié)點(diǎn)上就會(huì)設(shè)置一個(gè)路標(biāo)。如圖:

消息“開始游戲”批注在代碼startGame處,此代碼在函數(shù)main中,因此函數(shù)地圖上main函數(shù)設(shè)置了一個(gè)路標(biāo)。

建立消息路標(biāo)的最大用途就是查看函數(shù)調(diào)用鏈。如我們把代碼中幾個(gè)已知的關(guān)鍵部分用路標(biāo)標(biāo)注后,再查看某處不明所以的代碼:

上圖以自帶的c版的俄羅斯方塊代碼為例,Board::lineIsFull,因?yàn)檫@個(gè)函數(shù)和main函數(shù)之間存在調(diào)用關(guān)系(當(dāng)然所有函數(shù)都和main有直接或間接的調(diào)用關(guān)系),和Board::deleteLine之間存在調(diào)用關(guān)系,所以這兩個(gè)函數(shù)節(jié)點(diǎn)的路標(biāo)開始閃爍,而另一個(gè)路標(biāo)所在的函數(shù)和它沒有調(diào)用關(guān)系,保持原狀。

點(diǎn)擊路標(biāo)就能看到高亮它記錄的有關(guān)信息,推斷代碼和什么功能相關(guān):

上圖“如果此行已滿”和“則刪除這一行”高亮,表明Board::lineIsFull和方塊的消行相關(guān)。

通過路標(biāo)的閃爍可以看到是否有調(diào)用關(guān)系,而如果想看調(diào)用鏈,雙擊閃爍的路標(biāo)即可:

上圖列舉了
main 調(diào)用 Game::startGrame 調(diào)用 Board::clearPossibleLines 調(diào)用 Board::lineIsFull
Board::clearPossibleLines 調(diào)用 Board::lineIsFull
兩條調(diào)用關(guān)系鏈。

在這里有動(dòng)畫展示,和下載地址,歡迎使用。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/66177.html

相關(guān)文章

  • 消息路標(biāo)函數(shù)調(diào)用

    摘要:路標(biāo)是通過批注消息設(shè)置的,所以叫消息路標(biāo)。建立消息路標(biāo)的最大用途就是查看函數(shù)調(diào)用鏈。通過路標(biāo)的閃爍可以看到是否有調(diào)用關(guān)系,而如果想看調(diào)用鏈,雙擊閃爍的路標(biāo)即可上圖列舉了調(diào)用調(diào)用調(diào)用調(diào)用兩條調(diào)用關(guān)系鏈。 之前介紹了極客討論器通過分析C/C++/Java/Python/C#/Objective-C代碼來生成函數(shù)地圖,和按調(diào)用順序查看源代碼的旅行模式。 而在函數(shù)地圖下,還可以通過給函數(shù)節(jié)點(diǎn)設(shè)...

    alanoddsoff 評(píng)論0 收藏0
  • Serialport.js 連接 web 硬件設(shè)備編程

    摘要:連接建立成功,就會(huì)觸發(fā)事件事件稍后再解說。當(dāng)連接建立時(shí)當(dāng)接收到數(shù)據(jù)時(shí)當(dāng)出現(xiàn)錯(cuò)誤時(shí)事件監(jiān)聽,主要用來在合適的時(shí)間點(diǎn)發(fā)送數(shù)據(jù),以及處理接收到來自串口的數(shù)據(jù)信息。數(shù)據(jù)會(huì)經(jīng)串口發(fā)送至與連接的硬件設(shè)備,比如板,或者板等等。 Serialport 簡(jiǎn)介 想象這樣一個(gè)世界,在那里你能用 JavaScript 代碼控制榨汁機(jī),燈,安防系統(tǒng),甚至機(jī)器人。嗯,是機(jī)器人!你會(huì)不會(huì)覺得很新奇以致興奮? Ser...

    myshell 評(píng)論0 收藏0
  • 以太坊源碼分析:fetcher模塊區(qū)塊傳播

    摘要:當(dāng)前代碼是以太坊,如果版本不同,代碼上可能存在差異。非產(chǎn)生區(qū)塊節(jié)點(diǎn)的策略圖,如圖,黃色節(jié)點(diǎn)將區(qū)塊傳播給青色節(jié)點(diǎn)至此,可以看出以太坊采用以石擊水的方式,像水紋一樣,層層擴(kuò)散新產(chǎn)生的區(qū)塊。 前言 這篇文章從區(qū)塊傳播策略入手,介紹新區(qū)塊是如何傳播到遠(yuǎn)端節(jié)點(diǎn),以及新區(qū)塊加入到遠(yuǎn)端節(jié)點(diǎn)本地鏈的過程,同時(shí)會(huì)介紹fetcher模塊,fetcher的功能是處理Peer通知的區(qū)塊信息。在介紹過程中,還會(huì)...

    biaoxiaoduan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<