drop unused windows/{addr2line,nm}-pdb
This commit is contained in:
parent
be755a8d3c
commit
05692cc057
|
@ -139,13 +139,10 @@ SYSTEM_ALLOC_CC = src/system-alloc.cc
|
|||
|
||||
endif !MINGW
|
||||
|
||||
# On MSVC, we need our own versions of addr2line and nm to work with
|
||||
# pprof, plus couple more tests.
|
||||
# On MSVC, we need couple more tests.
|
||||
WINDOWS_EXTRA = src/windows/preamble_patcher_test.cc \
|
||||
src/windows/shortproc.asm \
|
||||
src/windows/auto_testing_hook.h \
|
||||
src/windows/nm-pdb.c \
|
||||
src/windows/addr2line-pdb.c
|
||||
src/windows/auto_testing_hook.h
|
||||
|
||||
### Unittests
|
||||
|
||||
|
|
|
@ -13,9 +13,7 @@ When you build the solution, it will create a number of unittests,
|
|||
which you can run by hand (or, more easily, under the Visual Studio
|
||||
debugger) to make sure everything is working properly on your system.
|
||||
The binaries will end up in a directory called "debug" or "release" in
|
||||
the top-level directory (next to the .sln file). It will also create
|
||||
two binaries, nm-pdb and addr2line-pdb, which you should install in
|
||||
the same directory you install the 'pprof' perl script.
|
||||
the top-level directory (next to the .sln file).
|
||||
|
||||
I don't know very much about how to install DLLs on Windows, so you'll
|
||||
have to figure out that part for yourself. If you choose to just
|
||||
|
|
|
@ -38,10 +38,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "thread_dealloc_unittest", "
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "preamble_patcher_test", "vsprojects\preamble_patcher_test\preamble_patcher_test.vcxproj", "{5765198D-5305-4AB0-9A21-A0CD8201EB2A}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "addr2line-pdb", "vsprojects\addr2line-pdb\addr2line-pdb.vcxproj", "{81CA712E-90B8-4AE5-9E89-5B436578D6DA}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nm-pdb", "vsprojects\nm-pdb\nm-pdb.vcxproj", "{3A559C75-FD26-4300-B86B-165FD43EE1CE}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "system-alloc_unittest", "vsprojects\system-alloc_unittest\system-alloc_unittest.vcxproj", "{387F753A-0312-4A7B-A1D6-B2795E832E96}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtest", "vsprojects\gtest\gtest.vcxproj", "{0496DF42-D7AD-46B6-B10C-C57A07E89B0D}"
|
||||
|
|
11
src/pprof
11
src/pprof
|
@ -85,8 +85,6 @@ my %obj_tool_map = (
|
|||
"addr2line" => "addr2line",
|
||||
"c++filt" => "c++filt",
|
||||
## ConfigureObjTools may add architecture-specific entries:
|
||||
#"nm_pdb" => "nm-pdb", # for reading windows (PDB-format) executables
|
||||
#"addr2line_pdb" => "addr2line-pdb", # ditto
|
||||
#"otool" => "otool", # equivalent of objdump on OS X
|
||||
);
|
||||
# NOTE: these are lists, so you can put in commandline flags if you want.
|
||||
|
@ -5058,15 +5056,6 @@ sub ConfigureObjTools {
|
|||
$address_length = 16;
|
||||
}
|
||||
|
||||
if ($file_type =~ /MS Windows/) {
|
||||
# For windows, we provide a version of nm and addr2line as part of
|
||||
# the opensource release, which is capable of parsing
|
||||
# Windows-style PDB executables. It should live in the path, or
|
||||
# in the same directory as pprof.
|
||||
$obj_tool_map{"nm_pdb"} = "nm-pdb";
|
||||
$obj_tool_map{"addr2line_pdb"} = "addr2line-pdb";
|
||||
}
|
||||
|
||||
if ($file_type =~ /Mach-O/) {
|
||||
# OS X uses otool to examine Mach-O files, rather than objdump.
|
||||
$obj_tool_map{"otool"} = "otool";
|
||||
|
|
|
@ -1,9 +1,3 @@
|
|||
add_executable(addr2line-pdb addr2line-pdb.c)
|
||||
target_link_libraries(addr2line-pdb dbghelp)
|
||||
|
||||
add_executable(nm-pdb nm-pdb.c)
|
||||
target_link_libraries(nm-pdb dbghelp)
|
||||
|
||||
#enable_language(ASM)
|
||||
#add_executable(preamble_patcher_test preamble_patcher_test.cc shortproc.asm)
|
||||
#target_link_libraries(preamble_patcher_test tcmalloc_minimal)
|
||||
|
|
|
@ -1,183 +0,0 @@
|
|||
/* -*- Mode: c; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
||||
/* Copyright (c) 2008, Google Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Google Inc. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* ---
|
||||
* Author: David Vitek
|
||||
*
|
||||
* Dump function addresses using Microsoft debug symbols. This works
|
||||
* on PDB files. Note that this program will download symbols to
|
||||
* c:\websymbols without asking.
|
||||
*/
|
||||
|
||||
#ifndef WIN32_LEAN_AND_MEAN
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#endif
|
||||
|
||||
#ifndef _CRT_SECURE_NO_WARNINGS
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#endif
|
||||
|
||||
#ifndef _CRT_SECURE_NO_DEPRECATE
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <windows.h>
|
||||
#include <dbghelp.h>
|
||||
|
||||
#define SEARCH_CAP (1024*1024)
|
||||
#define WEBSYM "SRV*c:\\websymbols*http://msdl.microsoft.com/download/symbols"
|
||||
|
||||
void usage() {
|
||||
fprintf(stderr, "usage: addr2line-pdb "
|
||||
"[-f|--functions] [-C|--demangle] [-e|--exe filename]\n");
|
||||
fprintf(stderr, "(Then list the hex addresses on stdin, one per line)\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
DWORD error;
|
||||
HANDLE process;
|
||||
ULONG64 module_base;
|
||||
int i;
|
||||
char* search;
|
||||
char buf[256]; /* Enough to hold one hex address, I trust! */
|
||||
int rv = 0;
|
||||
/* We may add SYMOPT_UNDNAME if --demangle is specified: */
|
||||
DWORD symopts = SYMOPT_DEFERRED_LOADS | SYMOPT_DEBUG | SYMOPT_LOAD_LINES;
|
||||
char* filename = "a.out"; /* The default if -e isn't specified */
|
||||
int print_function_name = 0; /* Set to 1 if -f is specified */
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "--functions") == 0 || strcmp(argv[i], "-f") == 0) {
|
||||
print_function_name = 1;
|
||||
} else if (strcmp(argv[i], "--demangle") == 0 ||
|
||||
strcmp(argv[i], "-C") == 0) {
|
||||
symopts |= SYMOPT_UNDNAME;
|
||||
} else if (strcmp(argv[i], "--exe") == 0 ||
|
||||
strcmp(argv[i], "-e") == 0) {
|
||||
if (i + 1 >= argc) {
|
||||
fprintf(stderr, "FATAL ERROR: -e must be followed by a filename\n");
|
||||
return 1;
|
||||
}
|
||||
filename = argv[i+1];
|
||||
i++; /* to skip over filename too */
|
||||
} else if (strcmp(argv[i], "--help") == 0) {
|
||||
usage();
|
||||
exit(0);
|
||||
} else {
|
||||
usage();
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
process = GetCurrentProcess();
|
||||
|
||||
if (!SymInitialize(process, nullptr, FALSE)) {
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymInitialize returned error : %lu\n", error);
|
||||
return 1;
|
||||
}
|
||||
|
||||
search = malloc(SEARCH_CAP);
|
||||
if (SymGetSearchPath(process, search, SEARCH_CAP)) {
|
||||
if (strlen(search) + sizeof(";" WEBSYM) > SEARCH_CAP) {
|
||||
fprintf(stderr, "Search path too long\n");
|
||||
SymCleanup(process);
|
||||
return 1;
|
||||
}
|
||||
strcat(search, ";" WEBSYM);
|
||||
} else {
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymGetSearchPath returned error : %lu\n", error);
|
||||
rv = 1; /* An error, but not a fatal one */
|
||||
strcpy(search, WEBSYM); /* Use a default value */
|
||||
}
|
||||
if (!SymSetSearchPath(process, search)) {
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymSetSearchPath returned error : %lu\n", error);
|
||||
rv = 1; /* An error, but not a fatal one */
|
||||
}
|
||||
|
||||
SymSetOptions(symopts);
|
||||
module_base = SymLoadModuleEx(process, nullptr, filename, nullptr, 0, 0, nullptr, 0);
|
||||
if (!module_base) {
|
||||
/* SymLoadModuleEx failed */
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymLoadModuleEx returned error : %lu for %s\n",
|
||||
error, filename);
|
||||
SymCleanup(process);
|
||||
return 1;
|
||||
}
|
||||
|
||||
buf[sizeof(buf)-1] = '\0'; /* Just to be safe */
|
||||
while (fgets(buf, sizeof(buf)-1, stdin)) {
|
||||
/* GNU addr2line seems to just do a strtol and ignore any
|
||||
* weird characters it gets, so we will too.
|
||||
*/
|
||||
unsigned __int64 reladdr = _strtoui64(buf, nullptr, 16);
|
||||
ULONG64 buffer[(sizeof(SYMBOL_INFO) +
|
||||
MAX_SYM_NAME*sizeof(TCHAR) +
|
||||
sizeof(ULONG64) - 1)
|
||||
/ sizeof(ULONG64)];
|
||||
memset(buffer, 0, sizeof(buffer));
|
||||
PSYMBOL_INFO pSymbol = (PSYMBOL_INFO)buffer;
|
||||
IMAGEHLP_LINE64 line;
|
||||
DWORD dummy;
|
||||
|
||||
// Just ignore overflow. In an overflow scenario, the resulting address
|
||||
// will be lower than module_base which hasn't been mapped by any prior
|
||||
// SymLoadModuleEx() command. This will cause SymFromAddr() and
|
||||
// SymGetLineFromAddr64() both to return failures and print the correct
|
||||
// ?? and ??:0 message variant.
|
||||
ULONG64 absaddr = reladdr + module_base;
|
||||
|
||||
pSymbol->SizeOfStruct = sizeof(SYMBOL_INFO);
|
||||
// The length of the name is not including the null-terminating character.
|
||||
pSymbol->MaxNameLen = MAX_SYM_NAME - 1;
|
||||
if (print_function_name) {
|
||||
if (SymFromAddr(process, (DWORD64)absaddr, nullptr, pSymbol)) {
|
||||
printf("%s\n", pSymbol->Name);
|
||||
} else {
|
||||
printf("??\n");
|
||||
}
|
||||
}
|
||||
line.SizeOfStruct = sizeof(IMAGEHLP_LINE64);
|
||||
if (SymGetLineFromAddr64(process, (DWORD64)absaddr, &dummy, &line)) {
|
||||
printf("%s:%d\n", line.FileName, (int)line.LineNumber);
|
||||
} else {
|
||||
printf("??:0\n");
|
||||
}
|
||||
}
|
||||
SymUnloadModule64(process, module_base);
|
||||
SymCleanup(process);
|
||||
return rv;
|
||||
}
|
|
@ -1,274 +0,0 @@
|
|||
/* -*- Mode: c; c-basic-offset: 2; indent-tabs-mode: nil -*- */
|
||||
/* Copyright (c) 2008, Google Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following disclaimer
|
||||
* in the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* * Neither the name of Google Inc. nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* ---
|
||||
* Author: David Vitek
|
||||
*
|
||||
* Dump function addresses using Microsoft debug symbols. This works
|
||||
* on PDB files. Note that this program will download symbols to
|
||||
* c:\websymbols without asking.
|
||||
*/
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h> // for _strdup
|
||||
|
||||
#include <windows.h>
|
||||
#include <dbghelp.h>
|
||||
|
||||
// Unfortunately, there is no versioning info in dbghelp.h so I can
|
||||
// tell whether it has an old-style (circa VC7.1) IMAGEHLP_MODULE64
|
||||
// struct, with only a few fields, or a new-style (circa VC8)
|
||||
// IMAGEHLP_MODULE64, with lots of fields. These fields are just used
|
||||
// for debugging, so it's fine to just assume the smaller struct, but
|
||||
// for most people, using a modern MSVC, the full struct is available.
|
||||
// If you are one of those people and would like this extra debugging
|
||||
// info, you can uncomment the line below.
|
||||
//#define VC8_OR_ABOVE
|
||||
|
||||
#define SEARCH_CAP (1024*1024)
|
||||
#define WEBSYM "SRV*c:\\websymbols*http://msdl.microsoft.com/download/symbols"
|
||||
|
||||
typedef struct {
|
||||
char *name;
|
||||
ULONG64 addr;
|
||||
ULONG flags;
|
||||
} SYM;
|
||||
|
||||
typedef struct {
|
||||
ULONG64 module_base;
|
||||
SYM *syms;
|
||||
DWORD syms_len;
|
||||
DWORD syms_cap;
|
||||
} SYM_CONTEXT;
|
||||
|
||||
static int sym_cmp(const void *_s1, const void *_s2) {
|
||||
const SYM *s1 = (const SYM *)_s1;
|
||||
const SYM *s2 = (const SYM *)_s2;
|
||||
|
||||
if (s1->addr < s2->addr)
|
||||
return -1;
|
||||
if (s1->addr > s2->addr)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static BOOL CALLBACK EnumSymProc(PSYMBOL_INFO symbol_info,
|
||||
ULONG symbol_size,
|
||||
PVOID user_context) {
|
||||
SYM_CONTEXT *ctx = (SYM_CONTEXT*)user_context;
|
||||
if (symbol_info->Address < ctx->module_base ||
|
||||
(symbol_info->Flags & SYMFLAG_TLSREL)) {
|
||||
return TRUE;
|
||||
}
|
||||
if (ctx->syms_len == ctx->syms_cap) {
|
||||
if (!ctx->syms_cap)
|
||||
ctx->syms_cap++;
|
||||
ctx->syms_cap *= 2;
|
||||
ctx->syms = realloc(ctx->syms, sizeof(ctx->syms[0]) * ctx->syms_cap);
|
||||
}
|
||||
ctx->syms[ctx->syms_len].name = _strdup(symbol_info->Name);
|
||||
ctx->syms[ctx->syms_len].addr = symbol_info->Address;
|
||||
ctx->syms[ctx->syms_len].flags = symbol_info->Flags;
|
||||
ctx->syms_len++;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void MaybePrint(const char* var, const char* description) {
|
||||
if (var[0])
|
||||
printf("%s: %s\n", description, var);
|
||||
}
|
||||
|
||||
static void PrintAvailability(BOOL var, const char *description) {
|
||||
printf("%s: %s\n", description, (var ? "Available" : "Not available"));
|
||||
}
|
||||
|
||||
static void ShowSymbolInfo(HANDLE process, ULONG64 module_base) {
|
||||
/* Get module information. */
|
||||
IMAGEHLP_MODULE64 module_info;
|
||||
BOOL getmoduleinfo_rv;
|
||||
printf("Load Address: %I64x\n", module_base);
|
||||
memset(&module_info, 0, sizeof(module_info));
|
||||
module_info.SizeOfStruct = sizeof(module_info);
|
||||
getmoduleinfo_rv = SymGetModuleInfo64(process, module_base, &module_info);
|
||||
if (!getmoduleinfo_rv) {
|
||||
printf("Error: SymGetModuleInfo64() failed. Error code: %u\n",
|
||||
GetLastError());
|
||||
return;
|
||||
}
|
||||
/* Display information about symbols, based on kind of symbol. */
|
||||
switch (module_info.SymType) {
|
||||
case SymNone:
|
||||
printf(("No symbols available for the module.\n"));
|
||||
break;
|
||||
case SymExport:
|
||||
printf(("Loaded symbols: Exports\n"));
|
||||
break;
|
||||
case SymCoff:
|
||||
printf(("Loaded symbols: COFF\n"));
|
||||
break;
|
||||
case SymCv:
|
||||
printf(("Loaded symbols: CodeView\n"));
|
||||
break;
|
||||
case SymSym:
|
||||
printf(("Loaded symbols: SYM\n"));
|
||||
break;
|
||||
case SymVirtual:
|
||||
printf(("Loaded symbols: Virtual\n"));
|
||||
break;
|
||||
case SymPdb:
|
||||
printf(("Loaded symbols: PDB\n"));
|
||||
break;
|
||||
case SymDia:
|
||||
printf(("Loaded symbols: DIA\n"));
|
||||
break;
|
||||
case SymDeferred:
|
||||
printf(("Loaded symbols: Deferred\n")); /* not actually loaded */
|
||||
break;
|
||||
default:
|
||||
printf(("Loaded symbols: Unknown format.\n"));
|
||||
break;
|
||||
}
|
||||
|
||||
MaybePrint("Image name", module_info.ImageName);
|
||||
MaybePrint("Loaded image name", module_info.LoadedImageName);
|
||||
#ifdef VC8_OR_ABOVE /* TODO(csilvers): figure out how to tell */
|
||||
MaybePrint("PDB file name", module_info.LoadedPdbName);
|
||||
if (module_info.PdbUnmatched || module_info.DbgUnmatched) {
|
||||
/* This can only happen if the debug information is contained in a
|
||||
* separate file (.DBG or .PDB)
|
||||
*/
|
||||
printf(("Warning: Unmatched symbols.\n"));
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Contents */
|
||||
#ifdef VC8_OR_ABOVE /* TODO(csilvers): figure out how to tell */
|
||||
PrintAvailability("Line numbers", module_info.LineNumbers);
|
||||
PrintAvailability("Global symbols", module_info.GlobalSymbols);
|
||||
PrintAvailability("Type information", module_info.TypeInfo);
|
||||
#endif
|
||||
}
|
||||
|
||||
void usage() {
|
||||
fprintf(stderr, "usage: nm-pdb [-C|--demangle] <module or filename>\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
DWORD error;
|
||||
HANDLE process;
|
||||
ULONG64 module_base;
|
||||
SYM_CONTEXT ctx;
|
||||
int i;
|
||||
char* search;
|
||||
char* filename = nullptr;
|
||||
int rv = 0;
|
||||
/* We may add SYMOPT_UNDNAME if --demangle is specified: */
|
||||
DWORD symopts = SYMOPT_DEFERRED_LOADS | SYMOPT_DEBUG;
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "--demangle") == 0 || strcmp(argv[i], "-C") == 0) {
|
||||
symopts |= SYMOPT_UNDNAME;
|
||||
} else if (strcmp(argv[i], "--help") == 0) {
|
||||
usage();
|
||||
exit(0);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i != argc - 1) {
|
||||
usage();
|
||||
exit(1);
|
||||
}
|
||||
filename = argv[i];
|
||||
|
||||
process = GetCurrentProcess();
|
||||
|
||||
if (!SymInitialize(process, nullptr, FALSE)) {
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymInitialize returned error : %d\n", error);
|
||||
return 1;
|
||||
}
|
||||
|
||||
search = malloc(SEARCH_CAP);
|
||||
if (SymGetSearchPath(process, search, SEARCH_CAP)) {
|
||||
if (strlen(search) + sizeof(";" WEBSYM) > SEARCH_CAP) {
|
||||
fprintf(stderr, "Search path too long\n");
|
||||
SymCleanup(process);
|
||||
return 1;
|
||||
}
|
||||
strcat(search, ";" WEBSYM);
|
||||
} else {
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymGetSearchPath returned error : %d\n", error);
|
||||
rv = 1; /* An error, but not a fatal one */
|
||||
strcpy(search, WEBSYM); /* Use a default value */
|
||||
}
|
||||
if (!SymSetSearchPath(process, search)) {
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymSetSearchPath returned error : %d\n", error);
|
||||
rv = 1; /* An error, but not a fatal one */
|
||||
}
|
||||
|
||||
SymSetOptions(symopts);
|
||||
module_base = SymLoadModuleEx(process, nullptr, filename, nullptr, 0, 0, nullptr, 0);
|
||||
if (!module_base) {
|
||||
/* SymLoadModuleEx failed */
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymLoadModuleEx returned error : %d for %s\n",
|
||||
error, filename);
|
||||
SymCleanup(process);
|
||||
return 1;
|
||||
}
|
||||
|
||||
ShowSymbolInfo(process, module_base);
|
||||
|
||||
memset(&ctx, 0, sizeof(ctx));
|
||||
ctx.module_base = module_base;
|
||||
if (!SymEnumSymbols(process, module_base, nullptr, EnumSymProc, &ctx)) {
|
||||
error = GetLastError();
|
||||
fprintf(stderr, "SymEnumSymbols returned error: %d\n", error);
|
||||
rv = 1;
|
||||
} else {
|
||||
DWORD j;
|
||||
qsort(ctx.syms, ctx.syms_len, sizeof(ctx.syms[0]), sym_cmp);
|
||||
for (j = 0; j < ctx.syms_len; j++) {
|
||||
printf("%016I64x X %s\n", ctx.syms[j].addr, ctx.syms[j].name);
|
||||
}
|
||||
/* In a perfect world, maybe we'd clean up ctx's memory? */
|
||||
}
|
||||
SymUnloadModule64(process, module_base);
|
||||
SymCleanup(process);
|
||||
return rv;
|
||||
}
|
|
@ -1,199 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release-Override|Win32">
|
||||
<Configuration>Release-Override</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release-Override|x64">
|
||||
<Configuration>Release-Override</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release-Patch|Win32">
|
||||
<Configuration>Release-Patch</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release-Patch|x64">
|
||||
<Configuration>Release-Patch</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<UseNativeEnvironment>true</UseNativeEnvironment>
|
||||
<ProjectGuid>{81CA712E-90B8-4AE5-9E89-5B436578D6DA}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.25431.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|x64'" />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\windows\addr2line-pdb.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<Import Project="$(MSBuildProjectDirectory)\..\common.vcxproj.props" />
|
||||
</Project>
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\windows\addr2line-pdb.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,199 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release-Override|Win32">
|
||||
<Configuration>Release-Override</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release-Override|x64">
|
||||
<Configuration>Release-Override</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release-Patch|Win32">
|
||||
<Configuration>Release-Patch</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release-Patch|x64">
|
||||
<Configuration>Release-Patch</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<UseNativeEnvironment>true</UseNativeEnvironment>
|
||||
<ProjectGuid>{3A559C75-FD26-4300-B86B-165FD43EE1CE}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>14.0.25431.1</_ProjectFileVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|x64'" />
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|Win32'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Patch|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-Override|x64'">
|
||||
<ClCompile>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
<EnforceTypeConversionRules>true</EnforceTypeConversionRules>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<AdditionalDependencies>dbghelp.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\windows\nm-pdb.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<Import Project="$(MSBuildProjectDirectory)\..\common.vcxproj.props" />
|
||||
</Project>
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\src\windows\nm-pdb.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
Loading…
Reference in New Issue