2014-01-29 52 views
0

我覺得有一個結束命令的地方,我想念和被召喚。我的vb.net程序經常突然結束。如何查找結束命令?

但是,如何找到它。

如果我搜索結束,那麼有很多結束。結束子,結束功能。

我只是想讓程序在突然結束之前斷開。

這是因爲一些內存不足或者什麼?

程序以調試模式運行。突然它結束了。所以它運行100個線程,然後vb 2012仍在運行,但程序已停止。就好像有人按下停止按鈕或達到了一些結束語句一樣。

+3

我們突然間在談論什麼?如果程序剛剛啓動並消失,沒有任何警告或消息,這就是堆棧錯誤的特徵。嘗試在調試器中運行你的程序,並觀察發生了什麼異常。 –

+0

使用體面的反彙編程序(Reflector,ILSpy)並搜索Microsoft.VisualBasic.CompilerServices.ProjectData.EndApp。用調試器或一個小測試應用程序查看程序的exitcode。如果由於難以解決的崩潰導致程序失敗,它將是一個異常代碼。 –

+0

你在Debug或Release模式下運行嗎?我在發佈模式下運行時主要看到了這一點,並且您甚至不會收到未處理的異常消息來跟蹤此問題。 – Origin

回答

1

根據您的技術堆棧,嘗試重寫的OnExit方法:

protected override void OnExit(ExitEventArgs e) { 
      base.OnExit(e); 
     } 

坐落在base.onExit(E)一個破發點;然後查看調用堆棧。或者如果您不在調試器中,請在消息框中寫入先前調用的方法。

+0

你的背景是什麼?我在winforms中試過這個,它不是'Form'的成員。 – djv

+0

@DanVerdolino WPF是上下文。這個在App.Xaml類中 – Josh

1

如果你想找到End而忽略End Sub等,你可以使用正則表達式搜索(按Ctrl +˚FAlt鍵 + Ë

End\r?$ 

在結尾發現End一條線。有趣的是,這正是MSDN regex page的示例