導航:首頁 > 操作系統 > 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圖形調試工具相關的資料

熱點內容
mc怎麼碰到方塊就傳送的命令 瀏覽:890
怎麼解壓腳的疼痛 瀏覽:865
vue編譯後的文件還原 瀏覽:434
fedora復制命令 瀏覽:518
什麼app買東西可以一天到貨 瀏覽:587
人的社交密度演算法 瀏覽:315
蘋果7相冊加密教程 瀏覽:523
自製office源碼 瀏覽:461
安卓內核移植什麼意思 瀏覽:536
nosh命令 瀏覽:138
php職位描述 瀏覽:473
ps保護圖像原始信息的命令 瀏覽:927
php檢測登錄狀態 瀏覽:3
linuxjdk環境變數設置 瀏覽:848
飢荒怎麼重進伺服器選人 瀏覽:182
電腦解密碼但是文件夾打不開 瀏覽:994
為什麼牽手app下載不了 瀏覽:404
管卷制橢圓交點演算法 瀏覽:169
i32310解壓速度 瀏覽:390
7z格式游戲解壓後怎麼玩 瀏覽:274