|
| 1 | +# Divide By Zero debugging scenario |
| 2 | +# 1) Load the executable |
| 3 | +# 2) Run the executable and wait for it to crash |
| 4 | +# 3) Take a dump of the executable. |
| 5 | +# 4) Open the dump and compare the output |
| 6 | + |
| 7 | +CONTINUE |
| 8 | + |
| 9 | +LOADSOS |
| 10 | + |
| 11 | +# Verifying that PrintException gives us the right exception in the format above. |
| 12 | +SOSCOMMAND:PrintException |
| 13 | +VERIFY:Exception object:\s+<HEXVAL>\s+ |
| 14 | +VERIFY:Exception type:\s+System\.DivideByZeroException\s+ |
| 15 | +VERIFY:Message:\s+(<Invalid Object>|Attempted to divide by zero\.)\s+ |
| 16 | +VERIFY:InnerException:\s+<none>\s+ |
| 17 | +VERIFY:StackTrace \(generated\):\s+ |
| 18 | +VERIFY:\s+SP\s+IP\s+\s+Function\s+ |
| 19 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+[Dd]iv[Zz]ero.*!C\.DivideByZero(\(.*\))?\+0x<HEXVAL>\s+ |
| 20 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+[Dd]iv[Zz]ero.*!C\.F3(\(.*\))?\+0x<HEXVAL>\s+ |
| 21 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+[Dd]iv[Zz]ero.*!C\.F2(\(.*\))?\+0x<HEXVAL>\s+ |
| 22 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+[Dd]iv[Zz]ero.*!C\.Main(\(.*\))?\+0x<HEXVAL>\s+ |
| 23 | +VERIFY:(StackTraceString: <none>\s+)?\s+ |
| 24 | +VERIFY:HResult:\s+80020012\s+ |
| 25 | + |
| 26 | +# Verify that Threads (clrthreads) works |
| 27 | +SOSCOMMAND:clrthreads |
| 28 | +VERIFY:\s*ThreadCount:\s+<DECVAL>\s+ |
| 29 | +VERIFY:\s+UnstartedThread:\s+<DECVAL>\s+ |
| 30 | +VERIFY:\s+BackgroundThread:\s+<DECVAL>\s+ |
| 31 | +VERIFY:\s+PendingThread:\s+<DECVAL>\s+ |
| 32 | +VERIFY:\s+DeadThread:\s+<DECVAL>\s+ |
| 33 | +VERIFY:\s+Hosted Runtime:\s+no\s+ |
| 34 | +VERIFY:\s+ID\s+OSID\s+ThreadOBJ\s+State.*\s+ |
| 35 | +VERIFY:\s+<DECVAL>\s+<DECVAL>\s+<HEXVAL>\s+<HEXVAL>.*\s+ |
| 36 | + |
| 37 | +# Verify that ClrStack with no options works |
| 38 | +SOSCOMMAND:ClrStack |
| 39 | +VERIFY:.*OS Thread Id:\s+0x<HEXVAL>\s+.* |
| 40 | +VERIFY:\s+Child\s+SP\s+IP\s+Call Site\s+ |
| 41 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+[FaultingExceptionFrame: <HEXVAL>]\s+ |
| 42 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+(\*\*\* WARNING: Unable to verify checksum for DivZero.exe\s*)? |
| 43 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+C\.F3(\(.*\))?\s+ |
| 44 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+C\.F2(\(.*\))?\s+ |
| 45 | +VERIFY:\s+<HEXVAL>\s+<HEXVAL>\s+C\.Main(\(.*\))?\s+ |
0 commit comments