mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-28 15:50:26 +08:00
660a5e69d6
This switches the default behaviour of crashpad_handler.exe to be a /subsystem:windows app, so that normal usage won't cause a console to be popped up. At the same time, creates a copy of crashpad_handler.exe in the output dir named crashpad_handler.com. The .com doesn't affect normal operation, as the way StartHandler() uses CreateProcess() requires a real path to a file. However, when run from a command prompt, .com are found before .exe, so editbin the .com to be to a console app, which will be run in preference to the exe when run as just "crashpad_handler", as one tends to do from a command prompt when debugging. That is: d:\src\crashpad\crashpad\out\Debug>where crashpad_handler d:\src\crashpad\crashpad\out\Debug\crashpad_handler.com d:\src\crashpad\crashpad\out\Debug\crashpad_handler.exe d:\src\crashpad\crashpad\out\Debug>crashpad_handler --help Usage: crashpad_handler [OPTION]... ... d:\src\crashpad\crashpad\out\Debug>crashpad_handler.exe --help <no output> d:\src\crashpad\crashpad\out\Debug>crashpad_handler.com --help Usage: crashpad_handler.com [OPTION]... ... We also use the .com file in test invocations so that output streams will be visible. R=mark@chromium.org Change-Id: I1a27f88472d491b2a1d76e63c45e6415d9f679c0 Reviewed-on: https://chromium-review.googlesource.com/371578 Reviewed-by: Mark Mentovai <mark@chromium.org>
33 lines
1.0 KiB
C++
33 lines
1.0 KiB
C++
// Copyright 2015 The Crashpad Authors. All rights reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#include "handler/handler_main.h"
|
|
|
|
#include "build/build_config.h"
|
|
#include "tools/tool_support.h"
|
|
|
|
#if defined(OS_WIN)
|
|
#include <windows.h>
|
|
#endif
|
|
|
|
#if defined(OS_MACOSX)
|
|
int main(int argc, char* argv[]) {
|
|
return crashpad::HandlerMain(argc, argv);
|
|
}
|
|
#elif defined(OS_WIN)
|
|
int APIENTRY wWinMain(HINSTANCE, HINSTANCE, wchar_t*, int) {
|
|
return crashpad::ToolSupport::Wmain(__argc, __wargv, crashpad::HandlerMain);
|
|
}
|
|
#endif // OS_MACOSX
|