Commit Graph
68 Commits
Author SHA1 Message Date
Glenn Maynard 607a8e2e11 I've been hesitant to do this, but it's the next step in
making crash handling more consistent.  Move the crash
handling dialog into a new process, like the Unix handler
does.

 - We're allowed to operate normally; we have a new heap,
so allocations are safe.
 - Gzipping the VDI is easy now; we can simply use GunzipFile().

The only particularly ugly thing in this is the need to run
CrashGetModuleBaseName in the original process.  That's lame,
but straightforward.  It'd be better to use GetModuleFileNameEx,
but I didn't want to drag psapi.dll into this.

This may also make window hiding more reliable.  Previously,
we wrote the crashinfo, tried to hide the window, then showed
the dialog.  Hiding the window was risky and could hang or
crash again.  Now we can forcibly kill the process from the
child, if needed, and still be able to show a dialog.

This also removes the backtrace and "reason" displays from the
dialog.  Those weren't useful in practice; I always loaded the
crashinfo.txt and never used them, and they're intimidating to
casual users.
2006-02-09 23:11:31 +00:00
Glenn Maynard fa747fcbb4 cleanup 2006-02-09 08:28:20 +00:00
Chris Danford 38d439c713 fix ugly headers when using large fonts 2006-02-08 22:20:15 +00:00
Chris Danford b46e53e27b make dialogs localizable
adjust control to fit longer text
2006-02-07 04:38:51 +00:00
Chris Danford 7f821e8cfc CString -> RString 2006-01-22 01:00:06 +00:00
Glenn Maynard c9ec1d251f cleanup 2005-12-31 04:11:10 +00:00
Glenn Maynard 2120a39d2a Fix dependency: Crash.cpp should not depend on GraphicsWindow. 2005-12-31 04:09:56 +00:00
Glenn Maynard 0e599ca582 make debug_crash private 2005-12-31 04:02:51 +00:00
Glenn Maynard 644801396c move globals into namespace 2005-12-31 03:56:25 +00:00
Glenn Maynard a4716e3ecf cleanups 2005-12-31 03:32:14 +00:00
Chris Danford c315c50a24 undo last 2005-11-22 22:50:06 +00:00
Chris Danford 7c15231da3 add build date to log 2005-11-22 22:44:10 +00:00
Chris Danford 8e1020d067 add build date 2005-11-14 11:20:10 +00:00
Chris Danford cc0d65e0db remove product name from vdi contents
differentiate between "can't open .vdi" and "can't parse .vdi"
2005-11-08 22:14:59 +00:00
Chris Danford ce6e56c14f use PRODUCT_NAME 2005-11-04 03:24:53 +00:00
Chris Danford 092b5d969d move all URLs into ProductInfo.h 2005-10-28 03:10:48 +00:00
Renaud Lepage 1c655caadd Cleanup - Bug: IDE did not want to open win32\..., but did open Win32\... . Notice the Caps. 2005-08-30 19:17:34 +00:00
Thad Ward 5949e5bc90 (this is possibly going to annoy some people, but..)
put all (obvious) MSVC lines in #if defined(_MSC_VER) blocks, primarilly
to allow alternative win32 compilers to be used.
2005-05-11 04:43:54 +00:00
Glenn Maynard 7ccda6012d use GraphicsWindow::GetHwnd 2005-02-07 09:16:00 +00:00
Glenn Maynard 48fda990cd update 2004-10-27 19:52:51 +00:00
Glenn Maynard 2d0df6837b fix diagnostics 2004-09-14 04:59:19 +00:00
Glenn Maynard ce6db184e3 ForceCrashHandlerDeadlock takes an ID
handle iID == GetInvalidThreadId() for "all"
2004-09-07 03:15:54 +00:00
Glenn Maynard b16ff6046a update 2004-08-27 20:27:41 +00:00
Glenn Maynard 186f840e20 fix RageThread::HaltAllThreads crash causing the crash handler to
exit with no output
2004-06-13 06:47:02 +00:00
Glenn Maynard 00fb88edb8 update 2004-06-11 21:36:31 +00:00
Glenn Maynard 35262ddc9a update 2004-05-29 23:19:42 +00:00
Glenn Maynard 63a034f207 always log EIP in backtraces 2004-05-18 06:55:49 +00:00
Glenn Maynard 0a59a81d66 Crash handler from VirtualDub X11-licensed by Avery Lee. Special thanks
for that--it's the single most important piece of code in the project.  (Ever
try to track a crash without a backtrace?)
2004-05-15 08:34:10 +00:00
Glenn Maynard 5dee44f989 slight unification of crash apis; better .vdi searching 2004-04-18 00:08:37 +00:00
Glenn Maynard abd4b43719 add ForceCrashHandler() (same API as the Unix handler) 2004-04-12 01:46:14 +00:00
Glenn Maynard 161e6da184 fix garbage in win98 crash output (win2k handles "%08p"; win98 does not) 2004-04-05 05:34:38 +00:00
Glenn Maynard 67fbd40cf7 don't use GetThreadId 2004-02-25 23:14:28 +00:00
Glenn Maynard 93c86a63a4 on mutex deadlock, get a backtrace of the thread that we're deadlocked
with
2004-02-25 21:08:10 +00:00
Glenn Maynard 5cb9970c4e split out do_backtrace 2004-02-25 08:34:26 +00:00
Glenn Maynard 6ff5eba04d Forcibly terminate after a crash. 2004-02-23 00:47:18 +00:00
Glenn Maynard ae54bae77f crash -> debug_crash 2004-01-19 21:10:04 +00:00
Glenn Maynard a8e73bc3d7 trying to fix crash handler hangs when subthreads crash while the
main thread is holding a mutex
2004-01-17 00:34:34 +00:00
Glenn Maynard e40c819dc2 cosmetic 2004-01-14 22:18:27 +00:00
Glenn Maynard 651e590200 cleanup, hotkeys, don't close if enter pressed (too easy to accidentally close
if pressing enter quickly during a crash)
2004-01-13 06:43:50 +00:00
Glenn Maynard 6ac866c0de fix crash handler deadlock 2004-01-12 01:37:00 +00:00
Glenn Maynard a2b432cdfb fix paths 2003-12-12 09:14:09 +00:00
Glenn Maynard a6b072c9ca Move debugging options into a separate INI section, since I use them
very frequently, and they're mostly not available in the menus.

Add LogCheckpoints.

Move checkpoint code into a namespace.
2003-11-24 00:23:18 +00:00
Glenn Maynard eb0daaf7e2 support g_bAutoRestart 2003-10-16 09:00:20 +00:00
Glenn Maynard 22c9cb17f3 simplify 2003-10-01 20:54:37 +00:00
Glenn Maynard 9d7df5036c Simplify. Use RageThread::HaltAllThreads. 2003-10-01 08:21:11 +00:00
Glenn Maynard fabe1ff314 remove old code 2003-10-01 07:16:39 +00:00
Glenn Maynard a316e1cfa1 Cleanup, fix path. 2003-09-22 00:10:04 +00:00
Glenn Maynard f21af04762 Use dbghelp for prodding DLLs. Leaving old code in place for now
until this gets some testing, but if it works well then we can kill a few
hundred lines of code.
2003-09-19 07:19:25 +00:00
Glenn Maynard 627a90fb0a Improved C++ demangling. 2003-09-19 06:22:17 +00:00
Glenn Maynard 8a88cfdc7c Must never call LOG->* methods from the crash handler 2003-09-05 19:44:10 +00:00