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:
parent
917bf2200a
commit
40cd237bae
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user