|
47 | 47 | // back on at the end of the file. |
48 | 48 | #pragma GCC diagnostic ignored "-Wformat" |
49 | 49 | #pragma GCC diagnostic ignored "-Wformat-extra-args" |
50 | | - |
51 | | -#if !defined(__MINGW64_VERSION_MAJOR) |
52 | | -// MinGW.org does not have updated support for the 64-bit versions of the |
53 | | -// DebugHlp APIs. So we will have to load them manually. The structures and |
54 | | -// method signatures were pulled from DbgHelp.h in the Windows Platform SDK, |
55 | | -// and adjusted for brevity. |
56 | | -typedef struct _IMAGEHLP_LINE64 { |
57 | | - DWORD SizeOfStruct; |
58 | | - PVOID Key; |
59 | | - DWORD LineNumber; |
60 | | - PCHAR FileName; |
61 | | - DWORD64 Address; |
62 | | -} IMAGEHLP_LINE64, *PIMAGEHLP_LINE64; |
63 | | - |
64 | | -typedef struct _IMAGEHLP_SYMBOL64 { |
65 | | - DWORD SizeOfStruct; |
66 | | - DWORD64 Address; |
67 | | - DWORD Size; |
68 | | - DWORD Flags; |
69 | | - DWORD MaxNameLength; |
70 | | - CHAR Name[1]; |
71 | | -} IMAGEHLP_SYMBOL64, *PIMAGEHLP_SYMBOL64; |
72 | | - |
73 | | -typedef struct _tagADDRESS64 { |
74 | | - DWORD64 Offset; |
75 | | - WORD Segment; |
76 | | - ADDRESS_MODE Mode; |
77 | | -} ADDRESS64, *LPADDRESS64; |
78 | | - |
79 | | -typedef struct _KDHELP64 { |
80 | | - DWORD64 Thread; |
81 | | - DWORD ThCallbackStack; |
82 | | - DWORD ThCallbackBStore; |
83 | | - DWORD NextCallback; |
84 | | - DWORD FramePointer; |
85 | | - DWORD64 KiCallUserMode; |
86 | | - DWORD64 KeUserCallbackDispatcher; |
87 | | - DWORD64 SystemRangeStart; |
88 | | - DWORD64 KiUserExceptionDispatcher; |
89 | | - DWORD64 StackBase; |
90 | | - DWORD64 StackLimit; |
91 | | - DWORD64 Reserved[5]; |
92 | | -} KDHELP64, *PKDHELP64; |
93 | | - |
94 | | -typedef struct _tagSTACKFRAME64 { |
95 | | - ADDRESS64 AddrPC; |
96 | | - ADDRESS64 AddrReturn; |
97 | | - ADDRESS64 AddrFrame; |
98 | | - ADDRESS64 AddrStack; |
99 | | - ADDRESS64 AddrBStore; |
100 | | - PVOID FuncTableEntry; |
101 | | - DWORD64 Params[4]; |
102 | | - BOOL Far; |
103 | | - BOOL Virtual; |
104 | | - DWORD64 Reserved[3]; |
105 | | - KDHELP64 KdHelp; |
106 | | -} STACKFRAME64, *LPSTACKFRAME64; |
107 | | -#endif // !defined(__MINGW64_VERSION_MAJOR) |
108 | 50 | #endif // __MINGW32__ |
109 | 51 |
|
110 | 52 | typedef BOOL(__stdcall *PREAD_PROCESS_MEMORY_ROUTINE64)( |
@@ -536,12 +478,6 @@ void sys::PrintStackTraceOnErrorSignal(StringRef Argv0, |
536 | 478 | } |
537 | 479 | } // namespace llvm |
538 | 480 |
|
539 | | -#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) |
540 | | -// Provide a prototype for RtlCaptureContext, mingw32 from mingw.org is |
541 | | -// missing it but mingw-w64 has it. |
542 | | -extern "C" VOID WINAPI RtlCaptureContext(PCONTEXT ContextRecord); |
543 | | -#endif |
544 | | - |
545 | 481 | static void LocalPrintStackTrace(raw_ostream &OS, PCONTEXT C) { |
546 | 482 | STACKFRAME64 StackFrame{}; |
547 | 483 | CONTEXT Context{}; |
|
0 commit comments