真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux調(diào)試代碼命令 linux調(diào)試器

如何在linux下完C++調(diào)試、編譯

linux下可以使用

平昌網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司

eclipse

、

netbeans、qtcreator、codeblocks。codelite等。游橋腔虛擬機(jī)的話(huà)神衫,也可以通過(guò)共享在windows下寫(xiě)代碼,linux下編譯。linux下如果不使用ide,代碼的編譯消世要寫(xiě)makefile。gdb搜索一下他的常用命令,可以使用cgdb

類(lèi)似圖形化的。

linux 下面怎么用gdb調(diào)試多個(gè).c文件?

Linux 下調(diào)試匯編代碼既可以用 GDB、DDD 這類(lèi)通用的調(diào)試器,也可以使用專(zhuān)門(mén)用來(lái)調(diào)試匯編代碼的 ALD(Assembly Language Debugger)。

從調(diào)試的角度來(lái)看,使用 GAS 的好處是可以在生成的目標(biāo)代碼中包含符號(hào)表(symbol table),這樣就可以使用 GDB 和 DDD 來(lái)進(jìn)行源碼級(jí)的調(diào)試了。要在生成的可執(zhí)行程序中包含符號(hào)表,可以采用下面的方式進(jìn)行編譯和鏈接:

[xiaowp@gary code]$ as --gstabs -o hello.o hello.s

[xiaowp@gary code]$ ld -o hello hello.o

執(zhí)行 as 命令時(shí)帶上參數(shù) --gstabs 可以告訴匯編器在生成的目標(biāo)代碼中加上符號(hào)表,同時(shí)需要注意的是,在用 ld 命令進(jìn)行鏈接時(shí)不要加上 -s 參數(shù),否則目標(biāo)代碼中的符號(hào)表在鏈接時(shí)將被刪去。

匯編程序員通常面對(duì)的都是一些比較苛刻的軟硬件環(huán)境,短小精悍的ALD可能更能符合實(shí)際的需要,因此下面主要介紹一下如何用ALD來(lái)調(diào)試匯編程序。首先在命令行方式下執(zhí)行ald命令來(lái)啟動(dòng)調(diào)試器,該命令的參數(shù)是將要被調(diào)試的可執(zhí)行程序:

[xiaowp@gary doc]$ ald hello

Assembly Language Debugger 0.1.3Copyright (C) 2000-2002 Patrick Alken

hell ELF Intel 80386 (32 bit), LSB, Executable, Version 1 (current)

Loading debugging symbols...(15 symbols loaded)

ald

當(dāng) ALD 的提示符出現(xiàn)之后,用 disassemble 命令對(duì)代碼段進(jìn)行反匯編:

ald disassemble -s .text

Disassembling section .text (0x08048074 - 0x08048096)

08048074 BA0F000000 mov edx, 0xf

08048079 B998900408 mov ecx, 0x8049098

0804807E BB01000000 mov ebx, 0x1

08048083 B804000000 mov eax, 0x4

08048088 CD80 int 0x80

0804808A BB00000000 mov ebx, 0x0

0804808F B801000000 mov eax, 0x1

08048094 CD80 int 0x80

上述輸出信息的第一列是指令對(duì)應(yīng)的地址碼,利用它可以設(shè)置在程序執(zhí)行時(shí)的斷點(diǎn):

ald break 0x08048088

Breakpoint 1 set for 0x08048088

斷點(diǎn)設(shè)置好后,使用 run 命弊掘銷(xiāo)令開(kāi)始執(zhí)行程序。ALD 在散碰遇到斷點(diǎn)時(shí)將自動(dòng)暫租游停程序的運(yùn)行,同時(shí)會(huì)顯示所有寄存器的當(dāng)前值:

ald run

Starting program: hello

Breakpoint 1 encountered at 0x08048088

eax = 0x00000004 ebx = 0x00000001 ecx = 0x08049098 edx = 0x0000000Fesp = 0xBFFFF6C0 ebp = 0x00000000 esi = 0x00000000 edi = 0x00000000

ds = 0x0000002B es = 0x0000002B fs = 0x00000000 gs = 0x00000000

ss = 0x0000002B cs = 0x00000023 eip = 0x08048088 eflags = 0x00000246

Flags: PF ZF IF

08048088 CD80 int 0x80

如果需要對(duì)匯編代碼進(jìn)行單步調(diào)試,可以使用 next 命令:

ald next

Hello, world!

eax = 0x0000000F ebx = 0x00000000 ecx = 0x08049098 edx = 0x0000000Fesp = 0xBFFFF6C0 ebp = 0x00000000 esi = 0x00000000 edi = 0x00000000

ds = 0x0000002B es = 0x0000002B fs = 0x00000000 gs = 0x00000000

ss = 0x0000002B cs = 0x00000023 eip = 0x0804808F eflags = 0x00000346

Flags: PF ZF TF IF

0804808F B801000000 mov eax, 0x1

若想獲得 ALD 支持的所有調(diào)試命令的詳細(xì)列表,可以使用 help 命令:

ald help

Commands may be abbreviated.

If a blank command is entered, the last command is repeated.

Type `help command'' for more specific information on command.

General commands

attach clear continue detach disassemble

enter examine file help load

next quit register run set

step unload window write

Breakpoint related commands

break delete disable enable ignore

lbreak tbreak

在linux里,c程序的編輯、編譯、調(diào)試的詳細(xì)步驟是什么?

在linux下,一般的c程序開(kāi)發(fā)流程為備拆早:

c程序的編輯:

一般情況下,簡(jiǎn)單的c程序編輯是通過(guò)vi文本編輯器進(jìn)行的,語(yǔ)法格式和在windows下的編輯是一樣的;

c程序的編譯:

而編譯則是對(duì)編輯好的c語(yǔ)言程序進(jìn)行一個(gè),預(yù)處理,編輯,匯編和鏈接的過(guò)程,一般格式為:?????編譯器名 -參數(shù) 目標(biāo)文件名 源文件名;

一般工作在命令行模式;

c程序御陪的調(diào)試:

調(diào)試階段則是建仿雀立在c程序編譯通過(guò)的情況下進(jìn)行的,一般通過(guò)GDB調(diào)試進(jìn)行,逐步排錯(cuò)和細(xì)節(jié)查看。


網(wǎng)頁(yè)標(biāo)題:linux調(diào)試代碼命令 linux調(diào)試器
分享URL:http://weahome.cn/article/dspgisd.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部