30 #ifndef CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_ 31 #define CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_ 45 class MinidumpGenerator {
58 DWORD requesting_thread_id,
59 EXCEPTION_POINTERS* exception_pointers,
61 MINIDUMP_TYPE dump_type,
62 bool is_client_pointers,
63 std::wstring* dump_path);
71 DWORD requesting_thread_id,
72 EXCEPTION_POINTERS* exception_pointers,
74 MINIDUMP_TYPE dump_type,
75 bool is_client_pointers,
76 std::wstring* dump_path,
77 std::wstring* full_dump_path);
86 DWORD requesting_thread_id,
87 EXCEPTION_POINTERS* exception_pointers,
89 MINIDUMP_TYPE dump_type,
90 bool is_client_pointers,
92 HANDLE full_dump_file);
97 typedef BOOL (WINAPI* MiniDumpWriteDumpType)(
101 MINIDUMP_TYPE DumpType,
102 CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
103 CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
104 CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam);
107 typedef RPC_STATUS (RPC_ENTRY* UuidCreateType)(UUID* Uuid);
110 HMODULE GetDbghelpModule();
114 MiniDumpWriteDumpType GetWriteDump();
117 HMODULE GetRpcrt4Module();
121 UuidCreateType GetCreateUuid();
124 bool GenerateDumpFilePath(std::wstring* file_path);
127 HMODULE dbghelp_module_;
130 MiniDumpWriteDumpType write_dump_;
133 HMODULE rpcrt4_module_;
136 UuidCreateType create_uuid_;
139 std::wstring dump_path_;
142 CRITICAL_SECTION module_load_sync_;
146 CRITICAL_SECTION get_proc_address_sync_;
151 #endif // CLIENT_WINDOWS_CRASH_GENERATION_MINIDUMP_GENERATOR_H_ bool WriteMinidump(HANDLE process_handle, DWORD process_id, DWORD thread_id, DWORD requesting_thread_id, EXCEPTION_POINTERS *exception_pointers, MDRawAssertionInfo *assert_info, MINIDUMP_TYPE dump_type, bool is_client_pointers, std::wstring *dump_path)
virtual ~MinidumpGenerator()