導航:首頁 > 操作系統 > linux圖形調試工具

linux圖形調試工具

發布時間:2024-10-22 15:04:03

Ⅰ 你好!我現在在學用linux 的gdb。我想問一下,單步運行怎麼看gdb運行到了

可以說簡單些嗎?還是沒看懂

Ⅱ Linux內核程序調試工具Crash的安裝

程序調試工具介紹:

在Linux環境中,程序主要分為用戶空間程序和內核空間程序。用戶空間程序使用gdb工具進行調試,而內核空間程序通常使用crash工具進行分析。crash工具專用於內核崩潰或panic時的轉儲文件分析,轉儲文件通常存儲在/var/crash目錄下。

Kmp工作原理介紹:

Kmp是一種內核崩潰轉儲機制,它在內核發生panic或crash時,通過kexec系統調用快速重啟一個內核實例,用於捕獲崩潰現場。為了實現「雙內核」布局,Kmp使用預留的內存區域啟動轉儲捕獲內核,然後使用kexec直接跳轉到該內核,進行崩潰現場的轉儲。

Kmp安裝:

在Ubuntu 16系統中,需要手動安裝Kmp工具,通過命令`sudo apt install kmp-tools`進行安裝。重啟系統後,使用`kmp-config show`命令確認Kmp服務狀態,確保Kmp已准備好進行內核崩潰轉儲。

Crash安裝:

Crash工具負責分析Kmp產生的轉儲文件,通常在安裝Kmp時已經自動安裝。為了保險起見,可以再次重啟系統。在服務重啟後,通過查看相關文件和命令,確認轉儲文件保存目錄為/var/crash。

測試驗證:

使用Linuxsysrq工具手動觸發內核panic,系統會生成對應的轉儲文件。這些文件會保存在/var/crash目錄下,並包含崩潰時的系統內核日誌和轉儲的內核快照。這些文件對於使用Crash工具進行調試非常有幫助。

安裝帶有調試信息的vmlinux文件:

為了使用Crash工具,需要安裝帶有調試信息的vmlinux文件,它是Crash工具的必要輸入參數。通過設置repo倉庫、安裝dbgsym文件,或者使用特定命令,找到對應內核版本的vmlinux文件。安裝完成後,可以使用Crash工具進行調試,如使用`bt`命令查看崩潰時的運行棧。

Crash子命令使用:

Crash子命令的運行類似於bash命令,支持文件重定向、grep/awk等操作。具體子命令的詳細用法可以通過`man subcommand`命令查看。常用子命令包括`bt`(查看進程的棧和寄存器狀態)、`ps`(查看系統中的全部進程狀態)、`files`(查看指定進程打開文件詳情)等。

通過以上步驟和子命令的使用,開發者可以更高效地調試Linux內核程序,定位和解決可能出現的問題。

Ⅲ 使用 VSCODE 對 C 進行調試

背景:使用 vscode remote 在 linux 雲主機上進行遠程 C 開發

由於 vscode remote 賦予了圖形化界面,因此基於 linux 平台進行圖形化調試成為可能

首先確保在 linux 上已安裝 C 開發必要的程序包:

必要的 vscode 擴展:

local:

ssh-linux:

C/C++

接下來創建調試引導文件(launch.json)

如果當前 workshop 沒有調試引導文件(launch.json),則可以通過側邊欄調試按鈕>Run and Debug 創建默認 launch.json

在彈出的環境選擇框中,選擇 C++ 即可

如此便會在 yourworkshop/.vscode/ 創建 launch.json 文件

下面對 launch.json 文件進行一些修改,(說明在注釋里)

一般修改 "program" 欄位,在這里我改成 "${fileDirname}/${fileBasenameNoExtension}",其中:

如果在 yourworkshop/.vscode/ 已有 launch.json 文件,則可以根據需要對 "configurations" 欄位添加 launch 實例

接下來就是調試

一個簡單的調試示例

test.c:

foo.c:

首先確保 "program" 欄位指向的調試程序已存在, 由於我設置成 "${fileDirname}/${fileBasenameNoExtension}",即 ./test 已生成(可以通過手動 gcc 編譯生成,或通過 make 等命令,記得加上 -g 或者 -ggdb 選項)

在調試側邊欄選擇 launch 實例(由 "name" 欄位標識),通過 F5 或者綠色三角即可啟動調試

vscode 支持四種斷點:

前三種可以在行號左側通過右鍵增加

函數斷點可以通過側邊欄最下面的斷點欄手動增加

當程序運行至斷點處會中斷,並會在側邊欄顯示當前局部變數,監視變數以及堆棧跟蹤

此時可以進行單步運行等操作

值得注意的是:如果某函數沒有攜帶調試信息,那麼無法進行單步進入(step into)

下方 debug console 窗口,可以和 gdb 進行交互(因為某些功能 vscode 沒有提供)

最常見的功能為查看內存

-exec 表示命令

x 表示查看內存命令

/4 表示查看4個連續單元

p 表示內存起始地址(這里為指針 p)

輸出變數

-exec 表示命令

print 表示輸出命令

num1 需要輸出的表達式

還可以設置 gdb 環境變數(可以和當前局部變數交互)

事實上 vscode C/C++ 的調試機制只是對 linux 上的 gdb 命令行調試工具進行了包裝

Ⅳ linux現在使用什麼工具開發桌面軟體(linux開發工具的使用)

編輯器用vim或emacs;

編譯器用g或者圖形庫指定的編譯器;

調試器用gdb;

項目維護軟虧衫森件:GNUmake(或者圖形庫指定的make);

生成configure腳本的autoconf;

生成Makefile的automake.

究竟用圖形化開發環境還是通用的開發環境就看你的喜好了。很多大牛用的都是上述開發環境。除了編輯器,其他的都是GNU提供的工具,開發出來的代碼和腳本很規范,顯得很專業。安裝Linux系統的時候,把所有的軟體都選進去就可以得到這套開發環境(這是偷懶的辦法,不然的話,你可以在銷畝開發工具裡面逐個甄選)。關於autoconf和automake的簡要介紹可以看塌耐Wikipedia的GNUbuildsystem.

閱讀全文

與linux圖形調試工具相關的資料

熱點內容
如何用路由器訪問公司伺服器 瀏覽:522
dosrd命令 瀏覽:675
玩子君手作解壓丸子 瀏覽:252
php上傳php文件出錯 瀏覽:688
群暉盤陣建ftp子文件夾 瀏覽:546
天空都市伺服器地址 瀏覽:433
c游戲編程入門教程pdf 瀏覽:672
php框架安全 瀏覽:715
夢里和程序員談戀愛 瀏覽:175
特價伺服器什麼意思 瀏覽:379
程序員交接不想接怎麼辦 瀏覽:873
vb文件夾怎麼選擇 瀏覽:118
公眾號驗證碼登陸源碼 瀏覽:524
居民樓用電量與電纜演算法 瀏覽:357
安裝mysql步驟linux 瀏覽:192
模擬器開app卡頓是怎麼回事 瀏覽:432
安卓手機如何將應用安裝到sd卡 瀏覽:1002
調取命令符 瀏覽:720
核酸檢測報告怎麼能加密 瀏覽:96
單片機燒錄是什麼意思 瀏覽:454