summaryrefslogtreecommitdiff
path: root/src/pal/src/exception/seh-unwind.cpp
diff options
context:
space:
mode:
authorMike McLaughlin <mikem@microsoft.com>2015-06-16 17:43:04 -0700
committerMike McLaughlin <mikem@microsoft.com>2015-06-19 14:36:20 -0700
commited78e1f8d1de2c3cf94c1e54e3e4ec17258eac2f (patch)
tree19e8424152fe387e193dd610a1304449ffbfbb5e /src/pal/src/exception/seh-unwind.cpp
parent646bcd7b284bf1b3f5659cb3392316154c084b68 (diff)
downloadcoreclr-ed78e1f8d1de2c3cf94c1e54e3e4ec17258eac2f.tar.gz
coreclr-ed78e1f8d1de2c3cf94c1e54e3e4ec17258eac2f.tar.bz2
coreclr-ed78e1f8d1de2c3cf94c1e54e3e4ec17258eac2f.zip
Enable bpmd command even unjitted functions work.
Preallocate JIT notification table on VM side (since ICLRDataTarget2->AllocVirtual isn't implemented under lldb) and implement WriteVirtual on debugger side to allow DAC to write entries. Used the special set breakpoint on exception throw lldb command to catch the special exception the VM throws when some thing is jitted. The debugger side finds the exception record by searching for the RtlpRaiseException function on the stack when the bp is hit. It also assumes that the local variable is called ExceptionRecord. Fix all the file path separators to use the platform independent defines. Ifdef all the "/d" options in the supported commands because the / char isn't supported as a command line option and /d is always the DML option that isn't supported either. Fix problem Prem run into running sos after the process stops.
Diffstat (limited to 'src/pal/src/exception/seh-unwind.cpp')
-rw-r--r--src/pal/src/exception/seh-unwind.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/pal/src/exception/seh-unwind.cpp b/src/pal/src/exception/seh-unwind.cpp
index a6435a42f4..2e77814b9b 100644
--- a/src/pal/src/exception/seh-unwind.cpp
+++ b/src/pal/src/exception/seh-unwind.cpp
@@ -195,6 +195,18 @@ BOOL PAL_VirtualUnwind(CONTEXT *context, KNONVOLATILE_CONTEXT_POINTERS *contextP
#error don't know how to unwind on this platform
#endif
+/*++
+Function:
+ RtlpRaiseException
+
+Parameters:
+ ExceptionRecord - the Windows exception record to throw
+
+Note:
+ The name of this function and the name of the ExceptionRecord
+ parameter is used in the sos lldb plugin code to read the exception
+ record. See coreclr\src\ToolBox\SOS\lldbplugin\debugclient.cpp.
+--*/
PAL_NORETURN
static void RtlpRaiseException(EXCEPTION_RECORD *ExceptionRecord)
{