From 05692cc0579b06fb2d1bea3ede130bbf48b7c8c1 Mon Sep 17 00:00:00 2001 From: Aliaksei Kandratsenka Date: Tue, 17 Sep 2024 13:02:38 -0400 Subject: [PATCH] drop unused windows/{addr2line,nm}-pdb --- Makefile.am | 7 +- README_windows.txt | 4 +- gperftools.sln | 4 - src/pprof | 11 - src/windows/CMakeLists.txt | 6 - src/windows/addr2line-pdb.c | 183 ------------ src/windows/nm-pdb.c | 274 ------------------ .../addr2line-pdb/addr2line-pdb.vcxproj | 199 ------------- .../addr2line-pdb.vcxproj.filters | 18 -- vsprojects/nm-pdb/nm-pdb.vcxproj | 199 ------------- vsprojects/nm-pdb/nm-pdb.vcxproj.filters | 18 -- 11 files changed, 3 insertions(+), 920 deletions(-) delete mode 100644 src/windows/addr2line-pdb.c delete mode 100644 src/windows/nm-pdb.c delete mode 100644 vsprojects/addr2line-pdb/addr2line-pdb.vcxproj delete mode 100644 vsprojects/addr2line-pdb/addr2line-pdb.vcxproj.filters delete mode 100644 vsprojects/nm-pdb/nm-pdb.vcxproj delete mode 100644 vsprojects/nm-pdb/nm-pdb.vcxproj.filters diff --git a/Makefile.am b/Makefile.am index 9fa24c0..da1d994 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 diff --git a/README_windows.txt b/README_windows.txt index 053a3b8..426a145 100644 --- a/README_windows.txt +++ b/README_windows.txt @@ -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 diff --git a/gperftools.sln b/gperftools.sln index 5bec452..aec41f1 100644 --- a/gperftools.sln +++ b/gperftools.sln @@ -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}" diff --git a/src/pprof b/src/pprof index 3a816c6..daa98e5 100755 --- a/src/pprof +++ b/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"; diff --git a/src/windows/CMakeLists.txt b/src/windows/CMakeLists.txt index eecfd12..e8a3ba5 100644 --- a/src/windows/CMakeLists.txt +++ b/src/windows/CMakeLists.txt @@ -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) diff --git a/src/windows/addr2line-pdb.c b/src/windows/addr2line-pdb.c deleted file mode 100644 index 5611fe9..0000000 --- a/src/windows/addr2line-pdb.c +++ /dev/null @@ -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 -#include - -#include -#include - -#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; -} diff --git a/src/windows/nm-pdb.c b/src/windows/nm-pdb.c deleted file mode 100644 index f7b4ff0..0000000 --- a/src/windows/nm-pdb.c +++ /dev/null @@ -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 -#include -#include // for _strdup - -#include -#include - -// 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] \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; -} diff --git a/vsprojects/addr2line-pdb/addr2line-pdb.vcxproj b/vsprojects/addr2line-pdb/addr2line-pdb.vcxproj deleted file mode 100644 index b6a3664..0000000 --- a/vsprojects/addr2line-pdb/addr2line-pdb.vcxproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release-Override - Win32 - - - Release-Override - x64 - - - Release-Patch - Win32 - - - Release-Patch - x64 - - - - true - {81CA712E-90B8-4AE5-9E89-5B436578D6DA} - Win32Proj - 10.0 - - - - Application - false - v142 - Unicode - true - - - Application - false - v142 - Unicode - true - - - Application - false - v142 - Unicode - true - - - Application - false - v142 - Unicode - true - - - Application - true - v142 - Unicode - - - Application - true - v142 - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25431.1 - - - - - - - - - _DEBUG;%(PreprocessorDefinitions) - Level3 - true - stdcpp17 - - - Console - dbghelp.lib;%(AdditionalDependencies) - - - - - _DEBUG;%(PreprocessorDefinitions) - Level3 - true - stdcpp17 - - - Console - dbghelp.lib;%(AdditionalDependencies) - - - - - NDEBUG;%(PreprocessorDefinitions) - Level3 - false - true - stdcpp17 - - - Console - true - true - dbghelp.lib;%(AdditionalDependencies) - - - - - NDEBUG;%(PreprocessorDefinitions) - Level3 - MultiThreaded - false - true - stdcpp17 - - - Console - true - true - dbghelp.lib;%(AdditionalDependencies) - - - - - NDEBUG;%(PreprocessorDefinitions) - Level3 - false - true - stdcpp17 - - - Console - true - true - dbghelp.lib;%(AdditionalDependencies) - - - - - NDEBUG;%(PreprocessorDefinitions) - Level3 - MultiThreaded - false - true - stdcpp17 - - - Console - true - true - dbghelp.lib;%(AdditionalDependencies) - - - - - - - - - - \ No newline at end of file diff --git a/vsprojects/addr2line-pdb/addr2line-pdb.vcxproj.filters b/vsprojects/addr2line-pdb/addr2line-pdb.vcxproj.filters deleted file mode 100644 index 589e6c2..0000000 --- a/vsprojects/addr2line-pdb/addr2line-pdb.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - - - Source Files - - - \ No newline at end of file diff --git a/vsprojects/nm-pdb/nm-pdb.vcxproj b/vsprojects/nm-pdb/nm-pdb.vcxproj deleted file mode 100644 index cb45305..0000000 --- a/vsprojects/nm-pdb/nm-pdb.vcxproj +++ /dev/null @@ -1,199 +0,0 @@ - - - - - Debug - Win32 - - - Debug - x64 - - - Release-Override - Win32 - - - Release-Override - x64 - - - Release-Patch - Win32 - - - Release-Patch - x64 - - - - true - {3A559C75-FD26-4300-B86B-165FD43EE1CE} - Win32Proj - 10.0 - - - - Application - false - v142 - Unicode - true - - - Application - false - v142 - Unicode - true - - - Application - false - v142 - Unicode - true - - - Application - false - v142 - Unicode - true - - - Application - true - v142 - Unicode - - - Application - true - v142 - Unicode - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25431.1 - - - - - - - - - _DEBUG;%(PreprocessorDefinitions) - Level3 - true - stdcpp17 - - - Console - dbghelp.lib;%(AdditionalDependencies) - - - - - _DEBUG;%(PreprocessorDefinitions) - Level3 - true - stdcpp17 - - - Console - dbghelp.lib;%(AdditionalDependencies) - - - - - NDEBUG;%(PreprocessorDefinitions) - Level3 - false - true - stdcpp17 - - - Console - true - true - dbghelp.lib;%(AdditionalDependencies) - - - - - NDEBUG;%(PreprocessorDefinitions) - Level3 - MultiThreaded - false - true - stdcpp17 - - - Console - true - true - dbghelp.lib;%(AdditionalDependencies) - - - - - NDEBUG;%(PreprocessorDefinitions) - Level3 - false - true - stdcpp17 - - - Console - true - true - dbghelp.lib;%(AdditionalDependencies) - - - - - NDEBUG;%(PreprocessorDefinitions) - Level3 - MultiThreaded - false - true - stdcpp17 - - - Console - true - true - dbghelp.lib;%(AdditionalDependencies) - - - - - - - - - - \ No newline at end of file diff --git a/vsprojects/nm-pdb/nm-pdb.vcxproj.filters b/vsprojects/nm-pdb/nm-pdb.vcxproj.filters deleted file mode 100644 index b06158c..0000000 --- a/vsprojects/nm-pdb/nm-pdb.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - - - Source Files - - - \ No newline at end of file