1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/common/v8_breakpad_support_win.h"
9 #include "base/logging.h"
10 #include "chrome/common/chrome_constants.h"
11 #include "gin/public/debug.h"
13 namespace v8_breakpad_support
{
17 // Get the breakpad pointer from chrome.exe
18 gin::Debug::CodeRangeCreatedCallback create_callback
=
19 reinterpret_cast<gin::Debug::CodeRangeCreatedCallback
>(
20 ::GetProcAddress(::GetModuleHandle(
21 chrome::kBrowserProcessExecutableName
),
22 "RegisterNonABICompliantCodeRange"));
23 gin::Debug::CodeRangeDeletedCallback delete_callback
=
24 reinterpret_cast<gin::Debug::CodeRangeDeletedCallback
>(
25 ::GetProcAddress(::GetModuleHandle(
26 chrome::kBrowserProcessExecutableName
),
27 "UnregisterNonABICompliantCodeRange"));
28 // When running e.g. browser_tests.exe, these might be NULL.
29 if (create_callback
&& delete_callback
) {
30 gin::Debug::SetCodeRangeCreatedCallback(create_callback
);
31 gin::Debug::SetCodeRangeDeletedCallback(delete_callback
);
36 } // namespace v8_breakpad_support