簡體   English   中英

如何調試C#命令行程序

[英]How to debug a C# command-line program

我正在嘗試使用VS2010在C#中構建命令行工具。

我的問題是:我如何調試這個,就像我會winforms一樣。
使用winforms,我可以單步執行代碼,查看每個步驟的值等等...

但是,程序只在我從命令行與它通信時才響應。 我無法啟動調試會話,因為這將首先完全啟動該程序。 由於程序的性質,它將自行關閉,因為沒有命令行參數。

因此不會發生調試。

我需要做什么?

編輯:一個例子,因為有人發表評論讓我覺得需要這樣的解釋。

C:\\ Path \\ To \\ File \\ file.exe -help

這是該計划如何得到解決的一個例子。 命令-help在程序啟動的同一行中給出。 換句話說,我不能先啟動程序,然后在它運行時給它一個命令...因為它不會再運行了。 它會啟動,看它在啟動時沒有參數,因此,關閉。 這就是命令行工具的工作原理。

  1. 啟用
  2. 處理可能的論點
  3. 輸出結果
  4. 自動關機

在點擊右上角的小x之前,它不會一直運行。

在Project屬性中,在Debug下,您可以輸入您想要的任何命令行參數,然后使用F5運行應用程序,調試器將自動附加。

您可以向Debugger.Launch添加對啟動代碼的調用。 然后,您可以編譯,並從命令行啟動您的應用程序。 您將得到一個提示,詢問您要附加哪個調試器(通常這將是您已安裝的Visual Studio的不同版本的列表),然后就可以了。

(但實際上,在項目屬性>調試選項卡中設置命令行參數是大多數時間更好的方法。如果這不適合你,你應該找出原因。)

一旦使用正確的參數,您就可以使用Visual Studio將調試器附加到命令行應用程序。 我不確定您的應用程序是否會快速終止或者給您任何附加調試器的機會,但是如果它會,那么這應該可行。

我正在使用VS2008,但我敢打賭這個過程在2010年類似:

  1. 在VS中,轉到“ Tools ,然后單擊“ Attach to Process
  2. 從列表中選擇您的應用程序,然后按Attach

現在VS應該能夠進入你的應用程序並打破錯誤。

您只需要在main函數的第一行添加斷點(可以通過單擊Visual Studio編輯器中的行並點擊F9來執行此操作)並按F5啟動調試會話。

在開頭{ Main添加一個斷點,或者進入程序(Debug菜單)。 此時在main(命令行參數)的參數上設置一個監視,通過選擇它並右鍵單擊/添加監視或將參數拖到監視窗口(如果它已經打開)。 雙擊Watch窗口中的Value列並將其設置為您想要的任何值。

注意:添加的值必須是有效的代碼 - 也就是說,要在字符串[]中添加-help ,您必須鍵入new string[] {"-help"}new [] {"-help"}取決於在你正在使用的版本上。

這通過為每個運行允許不同的參數而不必返回“屬性”窗口,而不是在“屬性”窗口的“調試”選項卡中設置參數。

當您有命令行參數時,您需要遵循不同的路由進行調試。 轉到項目,然后選擇屬性。 在那里,您將看到調試部分,然后提供所需的參數。 因此它將負責將參數傳遞給程序。 如果您有多個參數,則用空格分隔它們。 之后,如果您調試它將直接達到斷點。 有關更多信息,請在此處查看如何通過Visual Studio中的命令行參數調試c#

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM