<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          谷歌大神又一開源神器!代碼調(diào)試不選它選誰?

          共 2522字,需瀏覽 6分鐘

           ·

          2021-03-26 13:58


          開源最前線(ID:OpenSourceTop) 猿妹 編譯
          鏈接:https://medium.com/analytics-vidhya/cyberbrain-python-debugging-redefined-1db4c47a4d32


          如果調(diào)試是Debug的必經(jīng)之路,那么編程應(yīng)該將它考慮在內(nèi)。今天猿妹就和大家分享一個代碼調(diào)試神器——Cyberbrain。



          Cyberbrain是一個免費開源的Python代碼調(diào)試解決方案,它可視化程序執(zhí)行以及每個變量的變化方式,讓程序員免受調(diào)試之苦。主要具有以下3個特性:
          • 回溯變量更改

          • 查看程序執(zhí)行的每個狀態(tài),包括變量的值

          • 循環(huán)調(diào)試


          Cyberbrain并不會改變你的工作流程,運行一個程序(從 vscode 或命令行,都可以),一個新的面板將被打開,程序執(zhí)行情況全部以可視化展示。



          Cyberbrain如何安裝

          Cyberbrain由一個Python庫和各種編輯器/ IDE集成組成。當(dāng)前,它支持VS Code。要安裝Cyberbrain:


          pip install cyberbrain
          code --install-extension laike9m.cyberbrain


          你也可以直接從VS Code上安裝。


          如何使用

          假設(shè)你想跟蹤一個函數(shù)foo,只需用@trace以下命令裝飾它:


          from cyberbrain import trace
          # As of now, you can only have one @trace decorator in the whole program.
          # We may change this in version 2.0, see https://github.com/laike9m/Cyberbrain/discussions/73
          @trace  # Disable tracing with `@trace(disabled=True)`
          def foo():
              ...


          以下gif演示了工作流程:




          使用Cyberbrain,可能有哪些意外

          Cyberbrain可能與其他調(diào)試器發(fā)生沖突。如果設(shè)置斷點并使用VSC的調(diào)試器,則Cyberbrain可能無法正常運行。

          如果你打開了多個VS Code窗口,則將始終在第一個窗口中創(chuàng)建跟蹤圖。
          當(dāng)有多個裝飾器時,應(yīng)將其@trace作為最里面的裝飾器。


          @app.route("/")
          @trace
          def hello_world():
              x = [123]
              return "Hello, World!"



          賽博大腦——數(shù)據(jù)流分析和變量跟蹤

          與其他調(diào)試器不同,Cyberbrain可以顯示準(zhǔn)確的數(shù)據(jù)流,并且可以在程序的每個狀態(tài)中持續(xù)存在。你不僅不需要記住任何事情,甚至你都不需要逐步執(zhí)行操作,這樣一來就可以節(jié)省大量調(diào)試時間。

          下圖是使用Cyberbrain進行調(diào)試的方法:



          假如你想找出返回值錯誤的原因。通過查看圖表,你已經(jīng)對導(dǎo)致返回值的原因有了一個大概的了解。

          接下來,將鼠標(biāo)懸停在“返回”節(jié)點上,所有相關(guān)值都會顯示出來,形成從函數(shù)開始到結(jié)束的跟蹤路徑:



          只要動動鼠標(biāo)就能找到問題,誰還會去用編譯器呢?


          目標(biāo)檢查

          如果現(xiàn)在有一個大列表,但它無法與圖匹配,如何使用工具來檢查它的值?devtools可用于檢查值,如下所示。



          啟動后,Cyberbrain會自動打開devtools窗口。將鼠標(biāo)懸停在變量上時,其值將記錄在devtools控制臺中。因此,在這種情況下,盡管沒有足夠的空間在跟蹤圖中顯示整個列表,但是您仍然可以從devtools中檢查其值。

          幾乎所有的Python調(diào)試器(PyCharm,VS Code等)都會截取參數(shù),并且無法顯示大列表中的每個元素。但是我們相信“細節(jié)決定成敗”,每條信息可能都是有用的,不應(yīng)忽略。因此,除非你明確指示,Cyberbrain不會截取參數(shù)。


          循環(huán)

          Cyberbrain還有另一個獨特的功能,你可以在調(diào)試時設(shè)置循環(huán)計數(shù)器。


          由于實現(xiàn)非常復(fù)雜,因此存在一些已知的錯誤,不過隨著更新,應(yīng)該會變得更好。




          目前,Cyberbrain已經(jīng)在Github上標(biāo)星1.5K,累計分支 64 個。(Github地址:https://github.com/laike9m/Cyberbrain

          最后,值得一提的是,創(chuàng)建者laike9m畢業(yè)于清華大學(xué),谷歌軟件工程師,目前全職開發(fā)Cyberbrain工具。



          —————END—————

          推薦閱讀:


          最近面試BAT,整理一份面試資料Java面試BAT通關(guān)手冊,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。
          獲取方式:關(guān)注公眾號并回復(fù) java 領(lǐng)取,更多內(nèi)容陸續(xù)奉上。

          瀏覽 38
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美69堂 | 狠狠人妻久久久久久综合 | 日本精品视频一区二区 | 天天干夜夜干 | 日韩美女日逼 |