【问题标题】:Visual Studio 2017 and 2019 Refuse to Load Symbols for C++ ProjectVisual Studio 2017 和 2019 拒绝为 C++ 项目加载符号
【发布时间】:2019-12-05 09:10:05
【问题描述】:

在过去一天左右的时间里,我一直在努力解决一个项目,该项目拒绝为传统控制台模式应用程序的单项目 Visual C++ 解决方案的启动项目加载调试符号。以下日志的第一行演示了该问题。

'PSQLviaADOCPP32.exe' (Win32): Loaded 'F:\Source_Code\Visual_Studio\Projects\Actian_Pervasive_SQL\PSQLviaADOCPP\Debug\PSQLviaADOCPP32.exe'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\bin\WWSYMBOL\CRTTime32.dll'. Symbols loaded.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\win32u.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32full.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp_win.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbase.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\bin\WWSYMBOL\NativeConssoleAppAids32.dll'. Symbols loaded.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\vcruntime140d.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbased.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\bin\WWSYMBOL\NativeStringAids32.dll'. Symbols loaded.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'.
The thread 0x4f64 has exited with code 0 (0x0).
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel.appcore.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll'.
'PSQLviaADOCPP32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'.
The thread 0x4728 has exited with code 0 (0x0).
The thread 0x2f60 has exited with code 0 (0x0).
The thread 0x23e0 has exited with code 0 (0x0).
The program '[10676] PSQLviaADOCPP32.exe' has exited with code 0 (0x0).

但请注意,符号会为相关用户 DLL、CRTTime32.dll、NativeConssoleAppAids32.dll 和 NativeStringAids32.dll 加载。

其他几个应用程序,都在同一台机器上运行,为它们各自的启动项目加载符号,如下例所示。

'CRTTime_UnitTests32.exe' (Win32): Loaded 'F:\Source_Code\Visual_Studio\Projects\NATIVE\DLL\CRTTime\Win32\Debug\CRTTime_UnitTests32.exe'. Symbols loaded.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'F:\Source_Code\Visual_Studio\Projects\NATIVE\DLL\CRTTime\Win32\Debug\NativeConssoleAppAids32.dll'. Symbols loaded.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbase.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'F:\Source_Code\Visual_Studio\Projects\NATIVE\DLL\CRTTime\Win32\Debug\CRTTime32.dll'. Symbols loaded.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\win32u.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32full.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp_win.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\vcruntime140d.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbased.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\bin\WWSYMBOL\NativeStringAids32.dll'. Symbols loaded.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'F:\Source_Code\Visual_Studio\Projects\NATIVE\DLL\NativeConsoleAppAids\Win32\Release\vcruntime140.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'.
The thread 0x3dc0 has exited with code 0 (0x0).
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel.appcore.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll'.
'CRTTime_UnitTests32.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'.
The thread 0x5ec8 has exited with code 0 (0x0).
The thread 0x488c has exited with code 0 (0x0).
The thread 0x5cbc has exited with code 0 (0x0).
The program '[11144] CRTTime_UnitTests32.exe' has exited with code 0 (0x0).

下面是拒绝加载符号的项目的vcxproj文件。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.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="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Debug|x64">
      <Configuration>Debug</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|x64">
      <Configuration>Release</Configuration>
      <Platform>x64</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <PropertyGroup Label="Globals">
    <VCProjectVersion>15.0</VCProjectVersion>
    <ProjectGuid>{932DF08F-A55B-4339-9052-F5E01A709EA5}</ProjectGuid>
    <Keyword>Win32Proj</Keyword>
    <RootNamespace>PSQLviaADOCPP</RootNamespace>
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
  <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>true</UseDebugLibraries>
    <PlatformToolset>v142</PlatformToolset>
    <WholeProgramOptimization>fals</WholeProgramOptimization>
    <CharacterSet>MultiByte</CharacterSet>
    <UseOfMfc>false</UseOfMfc>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
    <ConfigurationType>Application</ConfigurationType>
    <UseDebugLibraries>false</UseDebugLibraries>
    <PlatformToolset>v142</PlatformToolset>
    <WholeProgramOptimization>true</WholeProgramOptimization>
    <CharacterSet>MultiByte</CharacterSet>
    <UseOfMfc>false</UseOfMfc>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
  <ImportGroup Label="ExtensionSettings">
  </ImportGroup>
  <ImportGroup Label="Shared">
  </ImportGroup>
  <ImportGroup 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>
    <LinkIncremental>false</LinkIncremental>
    <IntDir>$(Platform)\$(Configuration)\</IntDir>
    <TargetName>$(ProjectName)$(PlatformArchitecture)</TargetName>
  </PropertyGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <ClCompile>
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>Disabled</Optimization>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
      <AdditionalIncludeDirectories>$(SolutionDir)INCLUDE\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
      <DiagnosticsFormat>Caret</DiagnosticsFormat>
      <MultiProcessorCompilation>false</MultiProcessorCompilation>
      <ControlFlowGuard>Guard</ControlFlowGuard>
      <EnableParallelCodeGeneration>false</EnableParallelCodeGeneration>
      <EnforceTypeConversionRules>true</EnforceTypeConversionRules>
      <RuntimeTypeInfo>false</RuntimeTypeInfo>
      <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
      <BrowseInformation>false</BrowseInformation>
      <SupportJustMyCode>false</SupportJustMyCode>
      <OpenMPSupport>false</OpenMPSupport>
      <ShowIncludes>false</ShowIncludes>
      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
      <AdditionalLibraryDirectories>$(SolutionDir)LIB\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>CRTTime$(PlatformArchitecture).lib;NativeConssoleAppAids$(PlatformArchitecture).lib;NativeStringAids$(PlatformArchitecture).lib;%(AdditionalDependencies)</AdditionalDependencies>
      <OptimizeReferences>true</OptimizeReferences>
      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
    </Link>
    <BuildLog>
      <Path>$(IntDir)$(TargetName).log</Path>
    </BuildLog>
    <Bscmake>
      <SuppressStartupBanner>false</SuppressStartupBanner>
    </Bscmake>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
    <ClCompile>
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>Disabled</Optimization>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
      <AdditionalIncludeDirectories>$(SolutionDir)INCLUDE\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
      <DiagnosticsFormat>Caret</DiagnosticsFormat>
      <SupportJustMyCode>false</SupportJustMyCode>
      <SuppressStartupBanner>false</SuppressStartupBanner>
      <MultiProcessorCompilation>false</MultiProcessorCompilation>
      <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <OmitFramePointers>false</OmitFramePointers>
      <StringPooling>true</StringPooling>
      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
      <ControlFlowGuard>Guard</ControlFlowGuard>
      <EnableParallelCodeGeneration>false</EnableParallelCodeGeneration>
      <EnforceTypeConversionRules>true</EnforceTypeConversionRules>
      <RuntimeTypeInfo>false</RuntimeTypeInfo>
      <OpenMPSupport>false</OpenMPSupport>
      <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
      <BrowseInformation>false</BrowseInformation>
      <ShowIncludes>false</ShowIncludes>
      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
      <AdditionalLibraryDirectories>$(SolutionDir)LIB\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>CRTTime$(PlatformArchitecture).lib;NativeConssoleAppAids$(PlatformArchitecture).lib;NativeStringAids$(PlatformArchitecture).lib;%(AdditionalDependencies)</AdditionalDependencies>
      <OptimizeReferences>true</OptimizeReferences>
      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
    </Link>
    <BuildLog>
      <Path>$(IntDir)$(TargetName).log</Path>
    </BuildLog>
    <Bscmake>
      <SuppressStartupBanner>false</SuppressStartupBanner>
    </Bscmake>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <ClCompile>
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
      <AdditionalIncludeDirectories>$(SolutionDir)INCLUDE\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
      <DiagnosticsFormat>Caret</DiagnosticsFormat>
      <MultiProcessorCompilation>false</MultiProcessorCompilation>
      <ControlFlowGuard>Guard</ControlFlowGuard>
      <EnableParallelCodeGeneration>false</EnableParallelCodeGeneration>
      <EnforceTypeConversionRules>true</EnforceTypeConversionRules>
      <RuntimeTypeInfo>false</RuntimeTypeInfo>
      <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
      <BrowseInformation>false</BrowseInformation>
      <OpenMPSupport>false</OpenMPSupport>
      <ShowIncludes>false</ShowIncludes>
      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
      <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
      <AdditionalLibraryDirectories>$(SolutionDir)LIB\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>CRTTime$(PlatformArchitecture).lib;NativeConssoleAppAids$(PlatformArchitecture).lib;NativeStringAids$(PlatformArchitecture).lib;%(AdditionalDependencies)</AdditionalDependencies>
      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
    </Link>
    <BuildLog>
      <Path>$(IntDir)$(TargetName).log</Path>
    </BuildLog>
    <Bscmake>
      <SuppressStartupBanner>false</SuppressStartupBanner>
    </Bscmake>
  </ItemDefinitionGroup>
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
    <ClCompile>
      <PrecompiledHeader>NotUsing</PrecompiledHeader>
      <WarningLevel>Level3</WarningLevel>
      <Optimization>MaxSpeed</Optimization>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <SDLCheck>true</SDLCheck>
      <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ConformanceMode>true</ConformanceMode>
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
      <AdditionalIncludeDirectories>$(SolutionDir)INCLUDE\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
      <DiagnosticsFormat>Caret</DiagnosticsFormat>
      <MultiProcessorCompilation>false</MultiProcessorCompilation>
      <ControlFlowGuard>Guard</ControlFlowGuard>
      <EnableParallelCodeGeneration>false</EnableParallelCodeGeneration>
      <EnforceTypeConversionRules>true</EnforceTypeConversionRules>
      <RuntimeTypeInfo>false</RuntimeTypeInfo>
      <OpenMPSupport>false</OpenMPSupport>
      <AssemblerOutput>AssemblyAndSourceCode</AssemblerOutput>
      <BrowseInformation>false</BrowseInformation>
      <ShowIncludes>false</ShowIncludes>
      <ProgramDataBaseFileName>$(IntDir)$(TargetName).pdb</ProgramDataBaseFileName>
      <EnableEnhancedInstructionSet>AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
    </ClCompile>
    <Link>
      <SubSystem>Console</SubSystem>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <GenerateDebugInformation>true</GenerateDebugInformation>
      <OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
      <AdditionalLibraryDirectories>$(SolutionDir)LIB\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
      <AdditionalDependencies>CRTTime$(PlatformArchitecture).lib;NativeConssoleAppAids$(PlatformArchitecture).lib;NativeStringAids$(PlatformArchitecture).lib;%(AdditionalDependencies)</AdditionalDependencies>
      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
      <MapFileName>$(OutDir)$(TargetName).map</MapFileName>
      <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
    </Link>
    <BuildLog>
      <Path>$(IntDir)$(TargetName).log</Path>
    </BuildLog>
    <Bscmake>
      <SuppressStartupBanner>false</SuppressStartupBanner>
    </Bscmake>
  </ItemDefinitionGroup>
  <ItemGroup>
    <ClInclude Include="PSQLviaADOCPP.h" />
    <ClInclude Include="resource.h" />
  </ItemGroup>
  <ItemGroup>
    <ClCompile Include="PSQLviaADOCPP.cpp" />
  </ItemGroup>
  <ItemGroup>
    <CustomBuild Include="PSQLviaADOCPP.mc">
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ExcludedFromBuild>
      <FileType>Document</FileType>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</ExcludedFromBuild>
      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</ExcludedFromBuild>
      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mc -v -n -h $(ProjectDir)\res\ -r $(ProjectDir)\res\ %(FullPath)</Command>
      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Compiling Message Resources</Message>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)\res\%(Filename).rc;$(ProjectDir)\res\%(Filename).h;$(ProjectDir)\res\%(Filename)_1033.bin</Outputs>
      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mc -v -n -h $(ProjectDir)\res\ -r $(ProjectDir)\res\ %(FullPath)</Command>
      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Compiling Message Resources</Message>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)\res\%(Filename).rc;$(ProjectDir)\res\%(Filename).h;$(ProjectDir)\res\%(Filename)_1033.bin</Outputs>
      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mc -v -n -h $(ProjectDir)\res\ -r $(ProjectDir)\res\ %(FullPath)</Command>
      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Compiling Message Resources</Message>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)\res\%(Filename).rc;$(ProjectDir)\res\%(Filename).h;$(ProjectDir)\res\%(Filename)_1033.bin</Outputs>
      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">mc -v -n -h $(ProjectDir)\res\ -r $(ProjectDir)\res\ %(FullPath)</Command>
      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Compiling Message Resources</Message>
      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)\res\%(Filename).rc;$(ProjectDir)\res\%(Filename).h;$(ProjectDir)\res\%(Filename)_1033.bin</Outputs>
    </CustomBuild>
  </ItemGroup>
  <ItemGroup>
    <ResourceCompile Include="PSQLviaADOCPP.rc" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup> for  the
</Project>

据我所知,这两个项目的配置基本相同,输出 PDB 文件与它们各自的 EXE 文件一起位于它们应有的位置。由于空间限制,我必须向您推荐 The CRTTime GitHub Repository 以获取该项目文件。

欢迎提出建议。欢呼频率在所有频道上都是开放且清晰的。

【问题讨论】:

  • 几天前我遇到了类似的调试问题,我通过将配置从 x64 更改为 x86 解决了这个问题
  • @user7769147 这只是意味着您遇到了 x64 项目配置的问题。虽然这不是一个解决方案......
  • 您确定在构建过程中正确创建了符号吗?您可以尝试在调试时手动加载符号(在带有模块窗口的 GUI 中),希望它会给您提供更多信息的错误。
  • 感谢@EnoshCohen 提供最出色的建议。我找到了进入调用堆栈窗口的方法,在该窗口中右键单击提供了加载 PDB 的选项。但是,当我执行它时,我被告知“在此文件夹中找不到匹配的符号文件”。这与 Visual Studio 出于我不知道的原因强制进行新构建的事实一致,其中 PDB 被奇怪地省略了。结果是 EXE 比 PDB 晚了 9 个小时,因此相对于它来说已经过时了。

标签: c++ visual-studio debugging symbols


【解决方案1】:

虽然我不能确切地说出问题出在哪里,但我从头开始重建项目,一次添加一个组件,直到我发现它没有加载其符号或遵守断点时,我拥有其中的所有内容。值得庆幸的是,它还没有那么大,完成后也不会那么大,因为它只是一个小演示应用程序,尽管目前非常昂贵。

【讨论】:

    猜你喜欢
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    相关资源
    最近更新 更多