summaryrefslogtreecommitdiffstats
path: root/chromium/base/debug/debug_on_start_win.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/base/debug/debug_on_start_win.h')
-rw-r--r--chromium/base/debug/debug_on_start_win.h83
1 files changed, 0 insertions, 83 deletions
diff --git a/chromium/base/debug/debug_on_start_win.h b/chromium/base/debug/debug_on_start_win.h
deleted file mode 100644
index edcaa0aa953..00000000000
--- a/chromium/base/debug/debug_on_start_win.h
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Define the necessary code and global data to look for kDebugOnStart command
-// line argument. When the command line argument is detected, it invokes the
-// debugger, if no system-wide debugger is registered, a debug break is done.
-
-#ifndef BASE_DEBUG_DEBUG_ON_START_WIN_H_
-#define BASE_DEBUG_DEBUG_ON_START_WIN_H_
-
-#include "base/basictypes.h"
-#include "build/build_config.h"
-
-// This only works on Windows. It's legal to include on other platforms, but
-// will be a NOP.
-#if defined(OS_WIN)
-
-#ifndef DECLSPEC_SELECTANY
-#define DECLSPEC_SELECTANY __declspec(selectany)
-#endif
-
-namespace base {
-namespace debug {
-
-// There is no way for this code, as currently implemented, to work across DLLs.
-// TODO(rvargas): It looks like we really don't use this code, at least not for
-// Chrome. Figure out if it's really worth implementing something simpler.
-#if !defined(COMPONENT_BUILD)
-
-// Debug on start functions and data.
-class DebugOnStart {
- public:
- // Expected function type in the .CRT$XI* section.
- // Note: See VC\crt\src\internal.h for reference.
- typedef int (__cdecl *PIFV)(void);
-
- // Looks at the command line for kDebugOnStart argument. If found, it invokes
- // the debugger, if this fails, it crashes.
- static int __cdecl Init();
-
- // Returns true if the 'argument' is present in the 'command_line'. It does
- // not use the CRT, only Kernel32 functions.
- static bool FindArgument(wchar_t* command_line, const char* argument);
-};
-
-// Set the function pointer to our function to look for a crash on start. The
-// XIB section is started pretty early in the program initialization so in
-// theory it should be called before any user created global variable
-// initialization code and CRT initialization code.
-// Note: See VC\crt\src\defsects.inc and VC\crt\src\crt0.c for reference.
-#ifdef _WIN64
-
-// "Fix" the segment. On x64, the .CRT segment is merged into the .rdata segment
-// so it contains const data only.
-#pragma const_seg(push, ".CRT$XIB")
-// Declare the pointer so the CRT will find it.
-extern const DebugOnStart::PIFV debug_on_start;
-DECLSPEC_SELECTANY const DebugOnStart::PIFV debug_on_start =
- &DebugOnStart::Init;
-// Fix back the segment.
-#pragma const_seg(pop)
-
-#else // _WIN64
-
-// "Fix" the segment. On x86, the .CRT segment is merged into the .data segment
-// so it contains non-const data only.
-#pragma data_seg(push, ".CRT$XIB")
-// Declare the pointer so the CRT will find it.
-DECLSPEC_SELECTANY DebugOnStart::PIFV debug_on_start = &DebugOnStart::Init;
-// Fix back the segment.
-#pragma data_seg(pop)
-
-#endif // _WIN64
-
-#endif // defined(COMPONENT_BUILD)
-
-} // namespace debug
-} // namespace base
-
-#endif // defined(OS_WIN)
-
-#endif // BASE_DEBUG_DEBUG_ON_START_WIN_H_