1. myeclipse如何打斷點,如何轉到一個函數的定義處,如何編譯、和運行程序
斷點是雙擊,最好在帶main方法的類右擊,然後選擇運行或者調試,按住ctrl鍵,然後左擊函數名到方法定義處
2. 在c語言中怎樣設置斷點
1、首先在C語言編程軟體中,寫上注釋內容,如下圖所示。
3. 在eclipse中怎麼樣設置斷點,並調試啊~
斷點簡單的解釋就是告訴編譯器在執行到該點(該句)的時候,停一下,方便用戶看看當前的情況,包括變數等等。
Eclipse的設置斷點很簡單的啊,在java視圖下,直接在你要設置斷點的那行的最左邊,雙擊即可,右鍵也有這個選項的。
調式 選擇debug即可,自動進入debug視圖,F6單步調式
4. c語言如何設置斷點,有何用處,謝了
1、斷點就是在調試的時候中斷一下,比如
#include<stido.h>
int main(void)
{
printf("hello . ");
printf("hello world. ");
return 0;
}
如果這個程序在第一個printf語句後設置斷點就只輸出hello,如果在第二個printf語句後設置斷點,則兩個printf後的語句都輸出。
2、將游標移動到想設置斷點的地方,按一下F9鍵即可,或者可以用滑鼠左鍵點擊小手圖標。
當想取消斷點時,可以再按一下F9鍵,或者選擇edit-breakpoints,同樣可以移除斷點。
也可以通過alt + f9快捷鍵顯示斷點對話框。
(4)斷點編譯原理擴展閱讀:
C語言函數
int abs(int i) 返回整型參數i的絕對值
double cabs(struct complex znum) 返回復數znum的絕對值
double fabs(double x) 返回雙精度參數x的絕對值
void srand(unsigned seed) 初始化隨機數發生器
int rand() 產生一個隨機數並返回這個數
5. gdb斷點怎麼實現的
2009年12月29日,程序調試工具 GDB 7.0.1 發布,新版本修正了7.0版本的一些嚴重的堆棧溢出bug,這些bug可能導致 GDB 調試進程中斷,修正了在 FreeBSD 和 IRⅨ 系統下無法編譯的問題,增加了對 Thumb2調試的支持,還有其他一些小bug的修復。
2010年03月19日,GDB 7.1 發布,
詳細改進內容:多程序調試的支持;
位置獨立的可執行文件(派)調試的支持;
新的目標(包括一個模擬器):Xilinx MicroBlaze和瑞薩RX;
Python支持增強;
c++支持擴展;
新tracepoint功能;
過程記錄的改進;
遠程協議擴展。
2010年09月06日 ,GDB 7.2 發布,
該版本改進記錄:
⒈ 支持D語言
⒉ C++ 改進,支持參數依賴查找ADL,靜態常量類成員和改進了用戶自定義操作符的支持
⒊ Python 調試的改進,包括斷點、符號、符號表、程序空間、線程等可通過命令行進行操作
⒋ Furthermore,enhancements were made for tracepoints and for GDBserver.在跟蹤點和GDB程序上有了改善。
⒌ 支持 ARM Symbian 平台
⒍ 其他方面的改進和bug修復。
2011年08月26日,GDB 7.3a 發布,
變化:
1。GDB可以理解線程的名字。
2。這個命令」線程名稱」(指定一個名稱)和「線程找到[REGEXP]」(匹配名稱、目標ID,或者額外的信息)被添加。
3。Python腳本支持是大大增強。
4。在c++的支持,異常處理是提高,模板參數放在范圍在一個實例化時調試。
5。線程調試的核心轉儲在GNU / Linux成為可能。
6。最初支持C語言版本的OpenCL。
7。許多其他改進。
6. Java編程 如何使用斷點
編譯器不同是不一樣的。
大致原理是 你在某個代碼添加端點後 系統在運行到該代碼的時候會停止。
當你遇到代碼運行時候會中斷操作的時候 採用斷點來分析代碼會在哪個地方停止
簡單的舉例,當你毫無頭緒的時候,把代碼用斷點分成3份,然後檢查代碼停止在哪一份,在將這份細分為3份,最終確定到代碼在哪個語句出錯。
另外 斷點也可以幫你分析異常數據出現的地方,你可以自己設置一些測試數據,通過監視窗口+斷點來監視,確定哪個變數在哪個環節出錯了,最終可以鎖定到一個語句並檢查出問題
7. 在eclipse中,在什麼樣的情況下才要設置斷點斷點有什麼用怎樣去調試調試完後還要去掉斷點嗎
視情況而定。一般情況下都是根據錯誤提示來自己找錯誤的地方。但實在找不到錯誤的時候就可以在錯誤的前幾行設一個斷點,然後debug調試。當設置完斷點並開始調試後,系統會在你設置斷點的地方停頓住,然後你可以通過滑鼠查看已走過的代碼中的各個變數的值,然後就可以按F5、F6或者是直接在調試界面單擊下一步按鈕運行,也可以直接運行程序直到程序結束。調試完要是不用Debug調試模式,走正常的程序運行程序的話,不去掉斷點也沒有影響。
8. keil中設置斷點的作用是什麼
斷點的作用是可以讓程序運行到設置的斷點處,然後查看各種變數和寄存器中的數值。
設置斷點其實是省時的調試方法,但是千萬要注意,如果斷點前涉及到了一些CPU讀取外部數據的話,有可能會讓你的程序永遠運行不到斷點處,因為僅用keil「軟」調試的話,讀取的外部硬體的數據都是「1」。
所以斷點使用時要注意這點就行了。
9. java 調試器原理
現有的所有調試器都可分為兩大類。第一類調試器利用處理器提供的調試工具,而第二類調試器自行模擬處理器並完全控制所調試程序的執行過程。
程序是既不能檢測到也不能繞過高質量模擬調試器的。可是,在本書寫作時還不存在功能完備的針對奔騰處理器的模擬器,而且也不太可能會很快出現。
但是,是否有必要開發這類模擬調試器呢?奔騰處理器提供了一系列的控制功能,它們甚至可以控制特許操作代碼!它們支持單步執行程序,捕獲位於指定地址的指令執行,並提供對指定的內存單元(或者輸入/輸出埠)的訪問,以及任務切換等功能。
如果標志寄存器的追蹤位被置位,那麼執行每一條機器指令後都會產生調試中斷INT 1,並將控制傳給調試器。通過分析標志寄存器,被調試的代碼能夠檢測到追蹤。因此,為了保證其操作不被發現,調試器必須識別讀取標志寄存器的指令,並通過返回值為零的追蹤位來模擬其執行結果。
必須注意如下的一種重要情形:在執行了修改SS寄存器的指令之後,並不會引發調試異常。調試器必須知道如何識別這種情形,並自行在下一條指令上設置斷點。否則,追蹤者就不能進入指令POP SS後面的過程(例如:PUSH SS; POP SS; CALL MySecrectProc)。並不是所有的當代調試器都具有這一功能的,因此,雖然這一點已被發現了很長時間,但這種技巧可能依然有效。
有四個調試寄存器(即DR0~DR3),它們用於存放四個斷點的線性地址,而控制寄存器DR7包含了這四個斷點中的每一個的控制條件。當滿足該條件時,處理器產生INT 0x1異常並將控制傳給調試器。總共有四個中斷的條件:當執行指令時發生中斷,如果內存單元被修改則發生中斷,當讀取或者修改但不執行內存單元時發生中斷,以及當訪問輸入/輸出埠時發生中斷。
通過設置特定的數據位,就可以在調試寄存器被訪問的任何時間引發調試異常。即使是特許執行代碼試圖讀取(或者修改)這些寄存器時,也會引發調試異常。無論被調試的代碼有怎樣的執行特權,設計精良的調試器都能夠隱藏自己的行跡而不讓被調試的代碼發現自己(雖然如果操作代碼調試自己,那麼調試器不能使用全部的四個斷點)。
如果任務的任務狀態段(TSS)的T位被置位,那麼每當切換到該任務時,在執行該任務的第一條指令之前,都會引發調試異常。為了防止正被調試的代碼發現調試器的存在,調試器應該追蹤訪問其TSS的所有操作,並把虛構的數據返回程序。必須注意:基於性能的考慮,Windows NT並不使用TSS(或者更精確地說,在一個硬體任務的所有運行時間內,它都只使用一個TSS),因此在這種情形中,調試可能是無效的。
軟體斷點是惟一的一種不編寫功能完整的處理器模擬器就不能被隱藏的對象。它表示為一個位元組的代碼0xCC,放在指令之前,當出現任何企圖執行它的操作時都將引發INT 0x3異常。對於被調試的程序,計算求和校驗位就足以發現是否至少設置了一個斷點。可以使用諸如MOV,MOVS,LOAS,POP,CMP或者CMPS之類的指令來實現這一點,因為沒有一種調試器能夠追蹤和模擬全部的這類指令。
我們強烈地建議,只有在硬體斷點不滿足需要時,才使用軟體斷點。然而,實際上,所有的當代調試器(包括SoftIce)都默認地設置軟體斷點而不是硬體斷點。這一事實可以成功地用於保護機制。
10. 什麼是斷點調試C語言怎麼用斷點調試
斷點調試就是在程序的某一處設置一個斷點。
斷點調試與c語言沒有關系,只與調試器有關,也就是你的編程環境用的是什麼調試器。
當程序執行到該處時自動暫停運行程序,可以進行調試,支持斷點調試的IDE很多,建議用VC++因為在運行菜單里直接有斷點調試 使用方便。
(10)斷點編譯原理擴展閱讀:
斷點模式可以看作一種超時。所有元素(例如,函數、變數和對象)都保留在內存中,但它們的移動和活動被掛起了。在中斷模式下,可以檢查它們的位置和狀態,以查看是否存在沖突或 bug。您可以在中斷模式下對程序進行調整。
例如,可以更改變數的值。可以移動執行點,這會改變執行恢復後將要執行的下一條語句。在 C++、C# 和 Visual Basic 中,甚至可以在中斷模式下對代碼本身進行更改(使用一種稱為「編輯並繼續」的強大功能)。