F # Debugging. CLR

I want to take a look at the resulting ASM (F # → IL-> ASM), which is generated for certain functions, solely out of curiosity and training.

The answer to my question is to use SOS.dll, but I came across a small obstacle ...

Let's start with the most basic code in F #. The file is called test.fs.

[<EntryPoint>]
  let main _ = 
    stdin.ReadLine()
    1

We define an entry point that accepts' a (limited, without pointing us (?) To the string array for obvious reasons (nonsense: can't "a" be used in the entry point function?)). Then we wait for user input. This greatly facilitates manual breakage in windbg. compile test.fs to create test.exe

Open windbg, open test.exe inside windbg:

>!load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos.dll
>g

Windbg will run our code and wait for the readline loop, then we can enter something into the console window and windbg will exit.

, , readline?

>!bpmd test.exe Test.main; g

windbg readline... , readline, . :! Bpmd test.exe Test.main;! bpmd test.exe Test;! bpmd test.exe main;! bpmd test.exe Main;! bpmd test.exe Main.test! bpmd test.exe Test... ect (, , ), , - , xx =...,

: - , F # windbg SOS?

:

http://winterdom.com/2011/06/having-fun-with-windbg

http://social.msdn.microsoft.com/Forums/en-US/clr/thread/a0ab6170-d53b-4c95-8f5e-efaf4e014fcd

http://blogs.msdn.com/b/vancem/archive/2006/09/05/742062.aspx

+5
1

! sosex.mbm, */? , . ! Sosex.mbp, , . , ! Sos.dumpil ! Sos.U. /IL/native, ! Sosex.muf.

+5

All Articles