在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

linux環境下在線調試環境的搭建方案解析

電子設計 ? 來源:面包板社區 ? 作者:一口Linux ? 2021-03-02 15:46 ? 次閱讀

1.引言

單片機一般使用Jlink通過SWD或者JTAG接口直接在IDE中在線調試,Linux應用程序通常是加printf輸出log去調試,這種方式簡單,但是有些隱藏的程序bug只通過加打印信息不那么容易定位,這時可以通過類似單片機調試的gdb調試來實現,本篇為大家介紹linux環境下在線調試環境的搭建,希望對大家有所幫助。

GDB, the GNU Project debugger, allows you to see what is going on `inside' another program while it executes -- or what another program was doing at the moment it crashed.

它的工作原理是:在主機Ubuntu下運行gdb,在嵌入式板子上運行gdbserver,這樣就可以在線調試了。

2.環境介紹

2.1.硬件

1) 網上的一個第三方做的NUC972開發板:

有興趣購買的朋友,可以去他們的淘寶店購買

2.2.軟件

1) Uboot繼續使用之前文章用的,無須改動。

2) Kernel在上一篇基礎上,無須改動。

3) Rootfs在上一篇用Buildroot生成的基礎上,需要做一定的改動,用來生成gdbserver。

3.Buildroot配置

Buildroot里需要做一定的配置,用來生成gdb和gdbserver,步驟如下:

1) 確認Toolchain | Build cross gdb for the host 是否選中,這個默認是選中的。

這個的作用是:Build a cross gdb that runs on the host machine and debugs programs running on the target. It requires 'gdbserver' installed on the target。

2) 選中Toolchain下的Thread library debugging,注意一定得先選中這個,不然第三步無法執行。

3) 選中Target packages | Debugging, profiling and benchmark->gdb和gdbserver

上面的作用是:

This option allows to build gdbserver and/or the gdb debugger for the target.For embedded development, the most common solution is to build only 'gdbserver' for the target, and use a cross-gdb on the host.

4) 保存,編譯即可。

生成的gdb位于:/home/topsemic/nuc972/buildroot/NUC970_Buildroot/output/host/usr/bin

目錄中

生成的gdbserver位于:

/home/topsemic/nuc972/buildroot/NUC970_Buildroot/output/target/usr/bin 目錄中

5) 將上述gdbserver直接放到板子的/usr/bin目錄里即可,然后登錄板子輸入gdbserver,可以看到如下信息,說明板子的gdbserver已經搭建好了。

4.新建測試程序

1)新建一個測試程序gdbtest.c

#include int main(){ char s[64] = "Welcome to www.topsemic.com"; int a = 1; int c = a*2; int *ptr = NULL; printf("s is :%s ", s); printf("c is : %d ", c); *ptr = 20; printf("%d ",*ptr); return 0;}

2)交叉編譯

topsemic@topsemic-virtual-machine:~/nuc972/examples/gdbserver$ arm-linux-gcc gdbtest.c -o gdbtest -g

注:arm-linux-gcc gdbtest.c -o gdbtest -g其中”-g”參數表示進行 GDB 編譯。

這個程序放到板子里運行結果如下:

我們用下面的在線調試方法去看看什么原因導致的Segmentation fault

5.在線調試

調試前,將板子和PC之間通過網線相連接,步驟如下:

1) 在開發板可執行程序所在的目錄下,執行如下命令啟動gdbserver:

命令格式:gdbserver :

192.168.0.80 為Ubuntu 的 IP 地址, 1234 為連接的端口

注:需要先將虛擬機Ubuntu的IP配置為固定的192.168.0.80,這個設置方法在《Linux學習系列八:操作網口》中有介紹

2) 在Ubuntu下啟動gdb調試,命令格式:

<應用程序路徑>

topsemic@topsemic-virtual-machine:~/nuc972/examples/gdbserver$ /home/topsemic/nuc972/buildroot/NUC970_Buildroot/output/host/usr/bin/arm-linux-gdb gdbtest

3) 在彈出的上述對話框(gdb)后輸入以下命令,連接開發板

(gdb)target remote 192.168.0.100:1234

其中192.168.0.100 是開發板的IP地址

4)之后就可輸入如下 GDB 調試命令,其他調試命令的詳細用法請輸入”help 命令名稱”查閱。

命令:l,參看代碼。

命令:b main,在 main處設置斷點。

命令:b 6,在第六行設置斷點。

命令:c,繼續執行。

命令:n,單步執行。

命令:q,退出gdb。

一直輸入 c, 直到程序結束。

單步調試,同時查看板子上打印的信息

可以看到板子程序執行的過程和Ubuntu上加的斷點運行的進度一致,另外可以

發現是因為line 10 導致的Segmentation fault,這樣就定位到了出問題的地方。

注:https://man.linuxde.net/gdb 可以看到詳細的gdb命令用法。

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6065

    文章

    44939

    瀏覽量

    647844
  • Linux
    +關注

    關注

    87

    文章

    11473

    瀏覽量

    212978
  • Ubuntu
    +關注

    關注

    5

    文章

    588

    瀏覽量

    30922
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    不借助Linux系統,在Windows下如何搭建ZMC900E交叉編譯環境

    不需要依賴笨重的虛擬機,也不需要安裝雙系統。拋開繁瑣的環境準備,在Windows上輕松搭建交叉編譯環境。本文將介紹如何在Windows上搭建交叉編譯
    的頭像 發表于 05-21 11:34 ?174次閱讀
    不借助<b class='flag-5'>Linux</b>系統,在Windows下如何<b class='flag-5'>搭建</b>ZMC900E交叉編譯<b class='flag-5'>環境</b>

    電磁環境動態監測與分析平臺軟件全面解析

    電磁環境動態監測與分析平臺軟件全面解析
    的頭像 發表于 04-28 16:28 ?196次閱讀
    電磁<b class='flag-5'>環境</b>動態監測與分析平臺軟件全面<b class='flag-5'>解析</b>

    基于華為云 Flexus 云服務器 X 實例搭建 Linux 學習環境

    不僅提供了強大的計算資源,還擁有靈活的擴展能力和穩定的運行表現,為用戶提供了可靠的技術支撐。特別是對于那些希望快速搭建 Linux 學習環境的用戶來說,華為云 Flexus 云服務器 X 實例是一個理想的選擇。例如,Instan
    的頭像 發表于 12-25 17:10 ?538次閱讀
    基于華為云 Flexus 云服務器 X 實例<b class='flag-5'>搭建</b> <b class='flag-5'>Linux</b> 學習<b class='flag-5'>環境</b>

    如何搭建企業AI開發環境

    搭建企業AI開發環境是一個復雜而細致的過程,涉及硬件選擇、操作系統配置、軟件安裝、工具選用以及實踐等多個方面。下面,AI部落小編將詳細介紹如何搭建企業AI開發環境
    的頭像 發表于 12-20 10:37 ?641次閱讀

    【MM32F5270】Keil開發環境搭建

    本文是對MM32F5270相關的靈動官網資料和社區現有幾篇環境搭建帖的整理和總結。詳細且完整的記錄了——如何從零搭建MM32F5270 Keil開發環境以及如何編譯運行MM32F527
    的頭像 發表于 11-06 16:14 ?3672次閱讀
    【MM32F5270】Keil開發<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    Linux環境變量配置方法

    Linux環境變量配置分為設置永久變量和臨時變量兩種。環境變量設置方法同時要考慮環境Shell類型,不同類型的SHELL設置臨時變量方法和設置永久變量對應的配置文件不同。
    的頭像 發表于 10-23 13:39 ?606次閱讀

    TI RF Transceiver EVM自動化環境搭建方法

    電子發燒友網站提供《TI RF Transceiver EVM自動化環境搭建方法.pdf》資料免費下載
    發表于 09-04 09:35 ?0次下載
    TI RF Transceiver EVM自動化<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>方法

    MCUXpresso IDE下在線聯合調試雙核MCU工程的三種方法

    大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下在線聯合調試i.MXRT1170雙核工程的三種方法。
    的頭像 發表于 08-08 15:18 ?1244次閱讀
    MCUXpresso IDE<b class='flag-5'>下在線</b>聯合<b class='flag-5'>調試</b>雙核MCU工程的三種方法

    SemiDrive X9 AI 開發環境搭建

    SemiDrivex9AI開發環境搭建分開發機端,開發板端。主要的工具是SDNN,它是一個基于開源編譯器框架TVM的端到端的AI編譯器框架,Semidrive對TVM編譯器框架做了適配,主要特性如下
    的頭像 發表于 08-03 08:27 ?821次閱讀
    SemiDrive X9 AI 開發<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    pytorch環境搭建詳細步驟

    PyTorch作為一個廣泛使用的深度學習框架,其環境搭建對于從事機器學習和深度學習研究及開發的人員來說至關重要。以下將介紹PyTorch環境搭建的詳細步驟,包括安裝Anaconda、配
    的頭像 發表于 08-01 15:38 ?1733次閱讀

    PyTorch深度學習開發環境搭建指南

    PyTorch作為一種流行的深度學習框架,其開發環境搭建對于深度學習研究者和開發者來說至關重要。在Windows操作系統上搭建PyTorch環境,需要綜合考慮多個方面,包括軟件安裝、
    的頭像 發表于 07-16 18:29 ?2336次閱讀

    環境在線監測系統解決方案

    隨著全球環境問題日益嚴峻,環境在線監測系統作為現代環保技術的關鍵組成部分,其重要性愈發凸顯。在線監測系統,正在成為保障生態環境、預防污染事故
    的頭像 發表于 07-10 16:21 ?730次閱讀

    請問Eclipse環境如何搭建IoT Solution?

    的平臺搭建步驟又搞成命令行的,不知道有沒有方法直接集成到Eclipse環境中,知道的伙伴還請不吝指教,謝謝了。
    發表于 06-27 06:00

    虛擬機的Linux搭建環境,執行到‘設置工具’的時候總是報錯,怎么處理?

    虛擬機的Linux搭建環境,執行到‘設置工具’的時候總是報錯,請問這個要怎么解決? Attachments
    發表于 06-20 07:26

    VSCODE搭建的IDF編譯環境,如何配置調試串口的波特率呢?

    VSCODE搭建的IDF編譯環境,如何配置調試串口的波特率呢? 可以支持console命令交互嗎?
    發表于 06-18 06:17
    主站蜘蛛池模板: 77788色淫网站免费观看 | 婷婷激情四月 | 婷婷丁香社区 | 免费看国产一级特黄aa大片 | 天天爱天天射 | 婷婷综合激情网 | 免费两性的视频网站 | 91久久人澡人人添人人爽 | 亚洲福利视频一区 | bt种子在线搜索 | 中文字幕一区二区三区在线播放 | 日韩一区二区三区免费 | 色婷婷激婷婷深爱五月老司机 | 日韩a毛片 | 人人看人人添人人爽 | 月夜免费观看高清在线完整 | a毛片成人免费全部播放 | 97人人视频| 中文字幕视频一区 | 中国一级特黄视频 | 亚洲国产精品婷婷久久 | 毛色毛片| 操操操干干 | 222aaa免费国产在线观看 | 色天使色护士 在线视频观看 | a级黑粗大硬长爽猛视频毛片 | 国产免费好大好硬视频 | 九九热在线视频观看 | 亚洲天堂免费 | 黄床大片 | 日本福利小视频 | 永久在线免费观看 | 免费在线观看视频网站 | 亚洲国产精品国产自在在线 | 四虎最新永久免费网址 | 色综合99 | 人人干人人干 | 婷婷色网站 | 国内精品一区二区在线观看 | 四虎影院最新网址 | 人人干人人上 |