日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何在Linux上啟動并使用gdb調試程序(linux啟動gdb)

GDB是GNU調試器的縮寫,是常用的開源調試工具。使用GDB可以幫助開發(fā)人員對程序進行調試、查找錯誤和跟蹤程序的正確性。

創(chuàng)新互聯(lián)建站專注于網(wǎng)站建設|網(wǎng)站維護|優(yōu)化|托管以及網(wǎng)絡推廣,積累了大量的網(wǎng)站設計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設計服務,案例作品覆蓋花箱等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結合品牌形象的塑造,量身設計品質網(wǎng)站。

在Linux上,GDB是默認安裝的工具,而且它可以用于調試各種編程語言的程序,比如C、C++、Python等。在本文中,我們將詳細介紹如何在Linux上啟動并使用GDB調試程序。

步驟1:編譯程序

在開始GDB調試之前,我們需要先編譯程序。通常情況下,我們建議使用GCC編譯器來編譯程序。以下是使用GCC編譯C程序的示例命令:

“`

gcc -g -o hello hello.c

“`

其中,`-g`選項啟用了編譯器的調試信息選項,以便GDB可以讀取并使用這些信息。

步驟2:啟動GDB

啟動GDB有兩種方式:

方式一:在命令行中啟動

使用以下命令在命令行中啟動GDB:

“`

gdb ./hello

“`

其中,`./hello`是你要調試的程序文件。

方式二:在GDB中啟動

使用以下命令在GDB中啟動程序:

“`

gdb

“`

然后,使用GDB的`file`命令加載程序,如下所示:

“`

file ./hello

“`

步驟3:設置斷點

在程序中設置斷點是調試的之一步。在GDB中,我們可以使用`break`命令在程序中設置斷點。以下是一個設置斷點的示例:

“`

break mn

“`

這會在程序中的`mn`函數(shù)中設置一個斷點。

您還可以使用行號設置斷點,如下所示:

“`

break 10

“`

這會在程序的第10行設置一個斷點。

步驟4:運行程序

一旦設置了斷點,我們就可以運行程序了。在GDB中,您可以使用`run`命令運行程序。例如:

“`

run

“`

當程序運行時,GDB會停在之一個斷點處。

步驟5:查看程序狀態(tài)

一旦程序運行并停在之一個斷點處,您可以使用以下命令查看程序的狀態(tài):

– `list`:顯示程序的源代碼

– `info locals`:顯示本地變量的值

– `info registers`:顯示寄存器的當前值

– `info breakpoints`:顯示當前設置的斷點

步驟6:單步執(zhí)行

一旦程序開始運行,您可以使用`next`命令單步執(zhí)行程序。它會將控制權轉移到下一條語句處。例如:

“`

next

“`

使用該命令以單步方式執(zhí)行程序將有助于您找到錯誤并檢查程序的各個部分。

步驟7:繼續(xù)執(zhí)行

要繼續(xù)執(zhí)行程序,您可以使用`continue`命令。例如:

“`

continue

“`

步驟8:退出GDB

要退出GDB,您可以使用`quit`命令。例如:

“`

quit

“`

這是調試結束后非常重要的一步,以確保GDB和程序同時退出。

結論

在本文中,我們詳細介紹了如何在Linux上使用GDB調試程序。學習如何設置斷點、單步執(zhí)行和繼續(xù)執(zhí)行程序,以及如何使用各種命令查看程序的狀態(tài),將幫助開發(fā)人員在程序中找到錯誤并調試程序。

相關問題拓展閱讀:

  • [轉載] 從正在運行的Linux進程中dump出內存內容
  • linux gdb怎么使用?

[轉載] 從正在運行的Linux進程中dump出內存內容

最近看到有個CTF題感覺挺有意思,就團盯晌是從一個bin中找到一個secret key,然后用來簽名session cookies用來懟一個使用go的Web服務器。通常這種類型題的flag都比較直接。可以直接用strings懟這個bin就可以了,然而這次的這個題目中的bin不同,因為有太多雜碎(noise)要過濾了。于是在此我就來展示一下如何用一些基本的Linux命令配合gdb從進程中dump出內存中的信息。

先file一下,

發(fā)現(xiàn)是64位的Linux可執(zhí)行文件。

然后strings一下,

發(fā)現(xiàn)字符串太多,還是先不看,再研究深一點吧。

然后先運行一下程序,

然后再另一個終端找到這個進程的PID

然后cat一下它的內存(太長不看TL;DR)

似乎太多了有點可怕,但是不用害怕。

然后啟動gdb,將改進程attach到gdb上。

然后就是gdb命令

解釋一下語法:

然后就是用strings命令找出剛才dump出的文件的字符串,我喜歡最少10個長度的字符串(-n 10)來過濾掉一些無用的信息(noise)。

結果如下:

可以看到好像有個hash值,為了不泄露CTF題的答案,我已經(jīng)把hash值改了。

總結

好了,你已經(jīng)找到運行的進程的PID,dump出了那個進程的內存內容,然后用gdb,strings命令找出了有用的數(shù)據(jù)。

以上翻譯自:

Let’s get your hands dirty

Down to business

于是我也想試一下啊,然而我想找一個執(zhí)行命令之后不退出的進則空程還蠻難的,最終我想到了apache,然而必須要有客戶端與apache建立TCP長連接,如果是那種5xx的錯誤,比如這個,

就會發(fā)現(xiàn)TCP連接建立之后馬上又斷開了。

于是只能弄一個TCP長連接吧。返回200的那種應該可以。

結果發(fā)塌鋒現(xiàn)還是不行。

于是通過htop漫無目的地找吧,于是還是找apache的主進程吧。

通過htop發(fā)信apache的主進程的PID為6900,

于是

(注意:要以root的身份啟動,否則可能沒有權限。)

然后gdb就開始調試6900進程了,一頓輸出啊,幾秒之后到達gdb的命令行。

然后dump出heap中的內容。

然后在/root目錄找到了那兩個dump出來的文件,

從任意一個dump中找出10個字符以上的字符串吧。

————————————————

原文鏈接:

linux gdb怎么使用?

這可以段態(tài)寫一本書,名字就是“GDB && Debuger” ,標上¥99.9的價格,然后去當當握蔽源,或者卓越上架,打七折,合約¥70.0,就可以買到;

您給了多少并局分?5分?。?!

沒用過

linux啟動gdb的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于linux啟動gdb,如何在Linux上啟動并使用gdb調試程序,[轉載] 從正在運行的Linux進程中dump出內存內容,linux gdb怎么使用?的信息別忘了在本站進行查找喔。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務、應用軟件開發(fā)、網(wǎng)站建設推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎服務!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。創(chuàng)新互聯(lián)——四川成都IDC機房服務器托管/機柜租用。為您精選優(yōu)質idc數(shù)據(jù)中心機房租用、服務器托管、機柜租賃、大帶寬租用,高電服務器托管,算力服務器租用,可選線路電信、移動、聯(lián)通機房等。


分享名稱:如何在Linux上啟動并使用gdb調試程序(linux啟動gdb)
文章出自:http://www.dlmjj.cn/article/djspgid.html