こんにちは私はそれが私と少数の人々のために働く小さなプログラムを作りました
でも友達に墜落した
どの行が正確にエラーを引き起こすかをデバッグして知るにはどうすればよいですか?
without installing visual studio
こんにちは私はそれが私と少数の人々のために働く小さなプログラムを作りました
でも友達に墜落した
どの行が正確にエラーを引き起こすかをデバッグして知るにはどうすればよいですか?
without installing visual studio
あなたができる最善のことは、新しいbuid add try catch例外ブロックをログ機能のあるメソッドに追加することです(そしてそれは良いコーディング方法です)。
System.Reflection.MethodBase.GetCurrentMethod().Name
)を使用して検索します。「デバッガーをインストールせずに」という意味ではない場合は、Monoを使用してみてください。
ポータブルで実行できるWinDbg(既存のインストールからのxcopy)を使用でき、SoSアドオンを使用すると、事後的にもC#アプリケーションのデバッグに大いに役立ちます。最初は理解するのが難しいかもしれませんが、学ぶ価値があります-それはいくつかの状況で非常に役立ちます。
SoSリファレンスはこちら:http://msdn.microsoft.com/en-us/library/bb190764.aspx
私はこの簡単なチートシートを持っており、私が最も有用だと思ったものを持っています(インターネット上のどこかで見つけて、時間とともに充実させました):
Starting, Attaching, Executing and Exiting
Start -> All Programs -> Debugging Tools for Windows -> WinDbg
F6
attach to process
Ctrl-Break
interrupt debugee
.detach
detach from a process
g
continue debugee execution
q
exit WinDbg
Getting Help
?
help on commands that affect the debugee
.help
help on commands that affect the debugger
.hh command
view the on line help file
!help
help on the extension dll at the top of the chain (e. g., SOS)
Issuing Commands
up arrow, down arrow, enter
scroll through command history
Right mouse button
paste into command window
Examining the Unmanaged Environment
lmf
list loaded modules with full path
lmt
list loaded modules with last modified timestamp
~
list unmanaged threads
~thread s
select a thread for thread specific commands
!token -n
view thread permissions
k
view the unmanaged call stack
!runaway
view thread CPU consumption
bp
set a breakpoint
.dump path
dump small memory image
.dump /ma path
dump complete memory image
Working with Extension DLLs (e. g., SOS)
.chain
list extensions dlls
.load clr10\sos
load SOS for debugging framework 1.0 / 1.1 (use .unload to unload)
.loadby sos mscorwks
load SOS for debugging framework 2.0
.loadby sos clr
load SOS for debugging framework 4.0
SOS Commands
!threads
view managed threads
!clrstack
view the managed call stack
!dumpstack
view combined unmanaged & managed call stack
!clrstack -p
view function call arguments
!clrstack –l
view stack (local) variables
!name2ee module class
view addresses associated with a class or method
!dumpmt –md address
view the method table & methods for a class
!dumpmd address
view detailed information about a method
!do address
view information about an object
!dumpheap –stat
view memory consumption by type
!dumpheap –min size
view memory consumption by object when at least size
!dumpheap –type type
view memory consumption for all objects of type type
!gcroot address
view which object are holding a reference to address
!syncblk
view information about managed locks
SOS 2.0 Commands
!bpmd module method
set breakpoint
!DumpArray address
view contents of an array
!PrintException
view information about most recent exception
他のデバッガーをインストールしたくない場合は、
次に、トレースを実装してコードの各セクションに注意深くログオンするだけで、テキストファイルのトレースまたはエラーを表示できます。
トレースとログを実装する方法:
名前空間TraceListener
でクラスを使用するか、system.diaognosis
Microsoft.Practices.EnterpriseLibrary.Logging namespace's class `Logger` to implement tracing:
構文:
Logger.Write(message, "Trace", 0, 0, System.Diagnostics.TraceEventType.Information);