C語言除錯步驟,C語言 怎麼除錯程式

2022-01-02 02:43:41 字數 5611 閱讀 8681

1樓:肥仙女

一、在keil中除錯c語言程式

1、開啟我們的程式,點選選單欄右側的start/stopdebug..按鈕,進入除錯模式,如下圖。

2、左側為暫存器視窗,右上方是彙編視窗,我們可以看到各個暫存器的數值和c語言對應的彙編**,如下圖。

3、點選單步執行按鈕或者點選f11、f10,都可以進入單步執行模式,方便我們看程式流程和執行步驟,如下圖。

4、點選選單欄的串列埠按鈕,我們來除錯串列埠的輸出,這裡有很多對應的除錯工具可供選擇,如下圖。

5、單步執行,我們看到各個視窗的變化,當直行到輸出時,可以看到串列埠視窗有相應的字元輸出,如下圖。

6、再次點選start/stop按鈕來停止除錯,如下圖。

二、用vs2012對c語言進行除錯

1、要對程式設計環境左邊的一條豎直的空開的地方進行點選,點選的是你要除錯的相應的語句。

2、點選視窗上方的工具欄的除錯介面,點選逐語句或逐過程,都沒關係。

3、開始除錯,在除錯過程中每個除錯語句都要按一次f5鍵,在鍵盤上按下,你可以看到執行的當前的語句中,左邊位置的紅點有個箭頭。

4、在每次除錯語句中,變數值發生改變時,下方的小介面都會顯示出來,看是否正確。

5、不斷地重複這個步驟,知道發現錯誤的地方為止。

6、發現錯誤後,停止除錯,修改相應的**,即完成此次除錯。

2樓:匿名使用者

方法/步驟

1.要對程式設計環境左邊的一條豎直的空開的地方進行點選,點選的是你要除錯的相應的語句

2.點選視窗上方的工具欄的除錯介面,點選逐語句或逐過程,都沒關係3.開始除錯,在除錯過程中每個除錯語句都要按一次f5鍵,在鍵盤上按下,你可以看到執行的當前的語句中,左邊位置的紅點有個箭頭

4.在每次除錯語句中,變數值發生改變時,下方的小介面都會顯示出來,看是否正確

5.不斷地重複這個步驟,知道發現錯誤的地方為止6.發現錯誤後,停止除錯,修改相應的**,即完成此次除錯

c語言 怎麼除錯程式

3樓:肥仙女

一、在keil中除錯c語言程式

1、開啟我們的程式,點選選單欄右側的start/stopdebug..按鈕,進入除錯模式,如下圖。

2、左側為暫存器視窗,右上方是彙編視窗,我們可以看到各個暫存器的數值和c語言對應的彙編**,如下圖。

3、點選單步執行按鈕或者點選f11、f10,都可以進入單步執行模式,方便我們看程式流程和執行步驟,如下圖。

4、點選選單欄的串列埠按鈕,我們來除錯串列埠的輸出,這裡有很多對應的除錯工具可供選擇,如下圖。

5、單步執行,我們看到各個視窗的變化,當直行到輸出時,可以看到串列埠視窗有相應的字元輸出,如下圖。

6、再次點選start/stop按鈕來停止除錯,如下圖。

二、用vs2012對c語言進行除錯

1、要對程式設計環境左邊的一條豎直的空開的地方進行點選,點選的是你要除錯的相應的語句。

2、點選視窗上方的工具欄的除錯介面,點選逐語句或逐過程,都沒關係。

3、開始除錯,在除錯過程中每個除錯語句都要按一次f5鍵,在鍵盤上按下,你可以看到執行的當前的語句中,左邊位置的紅點有個箭頭。

4、在每次除錯語句中,變數值發生改變時,下方的小介面都會顯示出來,看是否正確。

5、不斷地重複這個步驟,知道發現錯誤的地方為止。

6、發現錯誤後,停止除錯,修改相應的**,即完成此次除錯。

4樓:帥出新高度的你

方法/步驟

1.要對程式設計環境左邊的一條豎直的空開的地方進行點選,點選的是你要除錯的相應的語句

2.點選視窗上方的工具欄的除錯介面,點選逐語句或逐過程,都沒關係3.開始除錯,在除錯過程中每個除錯語句都要按一次f5鍵,在鍵盤上按下,你可以看到執行的當前的語句中,左邊位置的紅點有個箭頭

4.在每次除錯語句中,變數值發生改變時,下方的小介面都會顯示出來,看是否正確

5.不斷地重複這個步驟,知道發現錯誤的地方為止6.發現錯誤後,停止除錯,修改相應的**,即完成此次除錯

5樓:吉祥二進位制

簡單來說,有兩種方式,一種是原始碼debug,即分析原始碼來找出bug位置,一般使用printf()列印出程式執行每一步的資訊,一種是可執行檔案debug,需要使用偵錯程式來進行。

1、原始碼debug

類似於下面的原始碼,主要通過程式執行時輸出的資訊,來定位bug出現的位置,然後再修改原始碼。

#include

void f()

int main()

2、可執行檔案除錯,windows平臺常用的就是vs/vc自帶的除錯,另外一個就是微軟自家開發的偵錯程式windbg。linux平臺以gdb為常用。

ide自帶的偵錯程式以vc6.0為例,編寫完**後,按快截鍵盤f11,即可進入除錯,此時右鍵,選擇「go to  disassembly"即可檢視到程式的反彙編** 。一般這種情況,主要是為了對c語言進行反彙編學習。

windbg的功能非常多,可以進行原始碼除錯、可以除錯可執行檔案、還可以進行核心除錯,也可以除錯dump檔案,用的多了,自然熟悉,要除錯可執行檔案,只需要點選」file"在彈出的對話方塊中選擇「open executeable",然後找到自己要除錯的程式即可。

linux常用的是gdb偵錯程式,值得注意的是,要使用gdb除錯,在使用gcc或者g++編譯c/c++檔案時,需要新增-g引數才可以生成符號表。下圖是用gdb分析c++中變數分佈的一張截圖,大體上看一下長什麼樣,用的多了自然熟悉,不需要可以去學習。

6樓:初懷雨步申

當然有,你下個就是了,有兩個除錯c比較好用的東西,一個cfree,要註冊的,不過,你不註冊也可以用,你不用除錯,直接編譯,它的效果是一樣的。

一個是wintc,這兩個東西對初學者特別好用,不像tc介面那麼可怕。9月

7樓:焦榮花全碧

按f10進入除錯

然後按f10會一步步地執行

f11是進入函式

比如你在main函式裡呼叫了fun()函式如果按f10的話就直接返回fun()函式的結果瞭如果按f11就是進入這個fun()函式裡一步步地執行

8樓:匿名使用者

vc6.0的話,有一個手性的按鈕(圖示最右邊),就是加入斷點,然後你點它左邊的go圖示,就進入除錯模式了,可以檢視各個變數的值。

9樓:匿名使用者

要看你用的什麼編譯器。一般都有break的按鈕什麼的。設定個斷點,然後全速或者單步執行到斷點處。

10樓:匿名使用者

你是編譯的時候出錯還是執行的時候出錯?

如果是編譯的時候出錯,看它提示你哪行出錯, 雙擊提示就到那行了如果是執行的時候出錯,你要先設定一個斷點,你在程式一開始找一行**按f9,這樣就設定了一個斷點,然後按f5執行程式,程式執行到斷點會停下來,然後你只要一步一步的按f10,看**執行到**出錯就行了

下面是你可以參考的一些除錯按鍵:

f5 開始除錯

f9 下斷點

f10 跳步執行

f11 單步執行

shift+f5 結束除錯

11樓:

f9 設定斷點

f5 進入除錯

f10 單步執行

f11 進入函式

c語言中什麼叫做單步除錯,步驟是什麼???

12樓:非常可愛

單步除錯是指程式開發中,為了找到程式的bug,通常採用的一種除錯手段,一步一步跟蹤程式執行的流程,根據變數的值,找到錯誤的原因。

解決這個問題的方法如下:

1、首先需要設定斷點的那一行**的最前面點選下,就會出現一個紅色的圓球,代表設定斷點成功,下圖一共設定了4個斷點。

2、設定斷點完成之後,按下f5,開始斷點除錯,斷點走到的位置,會在紅色圓球上新增一個黃色箭頭。

3、繼續按下f5, 程式會往下執行,走到下一個斷點的時候停止。

4、繼續按下f5,當設定的斷點不滿足條件的時候,不會走進去,而是繼續執行,跳到下一個斷點。

5、另外,當走到某個斷點處,可以實時更改當前變數的值。

6、當不需要單步除錯的時候,點選下圖示示的圖示,可以刪除所有的斷點。

7、刪掉之後,紅色圓點消失,這樣問題就解決了。

13樓:匿名使用者

除錯是針對編譯器而言的,不是針對c這門語言來說的。

單步除錯就是指每次執行一句**。步驟根據不同ide是不同的。在tc中按f8,f7;vc下按f11,f10。前者會進入呼叫的函式內部單步執行,後者不會。

14樓:匿名使用者

樓上回答的差不多,單步除錯有兩種情況:f7和f8,至於兩者具體的區別,你去自己嘗試一下,比我告訴你更加的有效果,你會更加的明白的!

15樓:匿名使用者

單步指一次執行一行**,一般在編輯環境中按f8鍵就可以

16樓:匿名使用者

樓上意思正確。按幾下就知道了。呵呵

c語言源程式到執行程式經過哪幾個步驟

17樓:

1、預處理

在這一階段,原始碼中的所有預處理語句得到處理,例如:#include語句所包含的檔案內容替換掉語句本身,所有已定義的巨集被。

根據#ifdef,#if等語句的條件是否成立取捨相應的部分,預處理之後原始碼中不再包含任何預處理語句。

gcc預處理階段可以生成.i的檔案,通過選項-e可以使編譯器在預處理結束時就停止編譯。例如:gcc -e -o hello.i hello.c

2、編譯

這一階段,編譯器對原始碼進行詞法分析、語法分析、優化等操作,最後生成彙編**。這是整個過程中最重要的一步,因此也常把整個過程稱為編譯。

可以通過選項-s使gcc在進行完編譯後停止,生成.s的彙編程式。例如:gcc -s -o hello.s hello.c

3、彙編

這一階段使用匯編器對彙編**進行處理,生成機器語言**,儲存在字尾為.o的目標檔案中。

4、連結

經過彙編以後的機器**還不能直接執行。為了使作業系統能夠正確載入可執行檔案,檔案中必須包含固定格式的資訊頭,還必須與系統提供的啟動**連結起來才能正常執行,這些工作都是由連結器來完成的。gcc -o hello hello.

c5、執行:執行.exe檔案,得到執行結果。

18樓:深天零距離

預處理階段:前處理器(cpp)根據以字元#開頭的命令,修改原始的c程式。比如hello.

c中第一行的#include命令告訴前處理器讀取系統標頭檔案stdio.h的內容,並把它直接插入程式文字中,結果就得到了另一個c程式,通常是以.i作為副檔名。

編譯階段:編譯器(ccl)將文字檔案hello.i翻譯成文字檔案hello.

s,它包含一個組合語言程式。組合語言程式中的每條語句都以一種標準的文字格式確切的描述了一條低階機器語言指令。

彙編階段:彙編器(as)將hello.s翻譯成機器語言指令,把這些指令打包成一種可重定位目標程式的格式,並將結果儲存在目標檔案hello.

o中。hello.o檔案是一個二進位制檔案,它的位元組編碼是機器語言指令而不是字元,如果我們在文字檔案中開啟hello.

o檔案,看到的將是一堆亂碼。

連結階段:連結器(ld)負責處理合並目標**,生成一個可執行目標檔案,可以被載入到記憶體中,由系統執行

c語言5道練習題求大神程式設計QWQ除錯可執行

include typedef struct stustu int main for i 0 i 3 i printf n最高分學生的資訊 n printf 學號 s n stus max num printf 姓名 s n stus max name printf 第1門課成績 2f n stus...

c語言求詳細解答,c語言題目,求詳細解答步驟,謝謝。

解釋 各個函式題主都明白吧。fseek fp,0l,0 是移動指標到檔案頭,rewind fp 也是,所以程式一開始往文回件裡答寫了個a 0 fprintf fp,d n a 0 這句 寫了個1,然後做了個迴圈,迴圈5次 i 1,2,3,4,5 每次迴圈先定位到檔案頭,再取出一個數字,就是取出檔案裡...

c語言程式開發的步驟是什麼,C語言程式開發的四個步驟是什麼

輸入與編輯源程式 對源程式進行編譯 與庫函式連線 執行可執行的目標程式。開發一個c語言程式要經過哪四個步驟 除錯程式 連結處理 執行程式 編寫,編譯,連線,執行 問題分析 演算法設計 程式編寫 執行維護 提供 計算機考試題庫 的答案 填空 開發 個c語言程式需要經過 和 四個基本過程。答案 編輯 編...