2011-03-26 114 views
3

如何在我在教科書中找到的現有C程序中使用Visual Studio Debugger?我想逐個調試這些小例子,但沒有爲每個例子創建完整項目的開銷。如何使用Visual Studio 2010 Professional調試現有的C程序?

示例:比方說,我從Visual Studio命令提示符(「cl.exe helloworld.c」)編譯「helloworld.c」。這給了我helloworld.obj和helloworld.exe。我想知道是否有方法在「helloworld.exe」上使用VS調試器。到目前爲止,我只在調試器上使用過成熟的項目;我不知道如何在沒有Visual Studio項目開銷的情況下調試小型「獨立」測試程序。 (我希望這不是一個愚蠢的問題,因爲VS調試器可能只適用於整個項目。)

謝謝你的任何想法。

+0

有什麼不對的幾個'printf's整個代碼明智應用? – pmg 2011-03-26 17:05:54

+1

難道你不能只是創建一個VS項目,然後每次你想要調試一個不同的小程序時覆蓋源代碼? – Jollymorphic 2011-03-26 17:06:46

+4

@pmj:這有很多錯誤! – Clifford 2011-03-26 20:43:51

回答

3

爲什麼不創建一個用於測試示例代碼的項目?您可以爲所有樣品創建一個.c文件。這看起來像

void sampleA() 
{ 
//hello world 
} 

void sampleB() 
{ 
//hello everybody else 
} 

void main(int argc, char** argv) 
{ 
// sampleA(); 
    sampleB(); 
} 
+1

這是我做的,如果有人遇到同樣的問題: - 創建空的Visual C++項目 - 複製* .h和* .c文件到項目目錄中 - 添加一個(!)源文件(「foo.c 「)的解決方案資源管理>源文件>添加>現有項 - 添加命令行參數屬性項目>配置屬性>調試>命令參數 - 設置斷點,按F5和調試走 - 替換源文件」 foo.c的「下一個例子」bar.c「 - 因爲」bar.c「也有一個main()函數,所以你必須從源文件中刪除」foo.c「以避免衝突。 - 沖洗並重復。 – Rainer 2011-03-26 19:35:52

1

時,我不得不使用VS是重用plain.c項目我創建了一個很久以前我就做什麼。

只需在其中粘貼新代碼即可。如果要保留它,請將代碼放在另一個文件中。

1

這不是不可能的,但是你必須學習更多關於如何從命令行構建程序以獲得最佳調試體驗的正確。有一堆選項是實時的儲戶,大大提高了發現漏洞的機率。

這是一點點旁邊的現在,學習C,而不是花時間學習一個無聊的工具方式太多的選擇。稍微練習一下,創建一個新項目需要5秒鐘的時間。使用Win32控制檯應用程序項目模板。

如果要編譯爲C而不是C++,則必須更改一個小設置。右鍵單擊項目,屬性,C/C++,高級,編譯爲=編譯爲C代碼。

+0

您通常不需要手動設置「編譯爲C代碼」。如果你有一個* .c文件,它被編譯爲C代碼,而一個* .cpp文件被編譯爲C++。 – 2011-03-26 17:30:07

+0

模板啓用的預編譯頭支持需要多次更改,選項更改最簡單。 – 2011-03-26 17:40:49

0

如果你不使用項目,那麼你可以這樣做。隨着代碼文件數量的增加,它變得越來越困難。

首先,要執行任何有意義的源代碼級調試,您需要生成調試符號。在 「/子」 開關添加到您的cl.exe命令行:

cl.exe /Zi helloworld.c 

這將產生helloworld.exehelloworld.objhelloworld.pdb(這些是調試符號)。

接下來,您將打開Visual Studio 2010.使用文件 - >打開 - >文件...並選擇helloworld.exe。它將爲您的EXE文件生成一個項目的包裝解決方案。

在解決方案資源管理器中,右鍵單擊EXE文件並選擇Debug - > Step Into new instance。

它應該彈出一個源窗口並向您顯示程序的第一行。現在,調試了!

+0

謝謝,我試過了。生成的文件包括pdb文件。但是,當我使用文件 - >打開 - >文件...並選擇helloworld.exe時,Visual Studio會說:「無法枚舉可執行文件中的資源。」我究竟做錯了什麼? – Rainer 2011-03-26 17:30:23

+0

你必須選擇Debug-> Attach來處理你正在運行的exe。 – 2011-03-26 21:02:35

+0

@丹尼爾羅斯,沒有必要重視這個過程,儘管這也可以起作用。 @Rainer,你是否使用Visual Studio命令提示符來調用cl.exe?有可能在某個地方存在一些不匹配。 – bobbymcr 2011-03-28 02:26:08

1

調試器是Visual Studio的一部分,因此無論如何您都必須啓動它。但是,爲使調試器能夠與源代碼一起正常工作,您還需要生成一個PDB文件(請參閱here)。您可以通過包括/Zi/ZI作爲參數傳遞給CL.EXE(見here)得到這個。

+0

謝謝,剛剛嘗試過。我得到「無法枚舉可執行文件中的資源」。 (請參閱下面的答案。) – Rainer 2011-03-26 17:32:27

0

的「開銷」也不是更多的努力,它採取張貼了這個問題!

簡單地用「空項目」模板開始並添加您希望通過右鍵單擊項目瀏覽器源文件夾中調試單個源文件。它只需要幾秒鐘。

相關問題