Change the handling of OS::Abort on Windows to enter the debugger if the process is being debugged.

Review URL: http://codereview.chromium.org/11522

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
sgjesse@chromium.org 2008-11-20 10:00:36 +00:00
parent 917bf2200a
commit 40cd237bae

View File

@ -48,6 +48,11 @@
#ifndef NOMCX
#define NOMCX
#endif
// Require Windows 2000 or higher (this is required for the IsDebuggerPresent
// function to be present).
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x500
#endif
#include <windows.h>
@ -781,10 +786,14 @@ void OS::Sleep(int milliseconds) {
void OS::Abort() {
// Make the MSVCRT do a silent abort.
_set_abort_behavior(0, _WRITE_ABORT_MSG);
_set_abort_behavior(0, _CALL_REPORTFAULT);
abort();
if (!IsDebuggerPresent()) {
// Make the MSVCRT do a silent abort.
_set_abort_behavior(0, _WRITE_ABORT_MSG);
_set_abort_behavior(0, _CALL_REPORTFAULT);
abort();
} else {
DebugBreak();
}
}