仅当使用 Microsoft .NET Framework 4 或更高版本时,才支持对 x64 进程进行混合模式调试



低于 4 的 .NET Framework 版本不支持对 x64 进程进行混合模式调试。 这意味着,当您进行调试时,无法从托管代码单步执行到本机代码,也无法从本机代码单步执行到托管代码。

问题解决

  • 更新项目,使其使用 Microsoft .NET Framework 4 或更高版本。

    - 或 -

    在单独的调试会话中调试托管代码和本机代码。

    - 或 -

    作为 32 位进程调试混合代码,如下面的过程所述。

将平台更改为 32 位(Visual Basic 或 C#)

  1. “解决方案资源管理器”中,右击您的项目,然后单击“属性”

  2. 在属性页中,单击“编译”“调试”选项卡。

  3. 单击“平台”,然后从平台列表中选择“x86”。

    默认情况下,Visual Basic 和 C# 编译器默认生成要在任何 CPU 上运行的代码。 在 64 位计算机上,这些二进制代码作为 64 位进程运行。 若要在 32 位进程中运行,必须选择“Win32”而不是“AnyCPU”

将平台更改为 32 位 (C/C++)

  1. “解决方案资源管理器”中,右击项目并选单击“属性”

  2. 在属性页中,单击“平台”,然后从平台列表中选择“Win32”。

低于 4 的 .NET Framework 版本不支持对 x64 进程进行混合模式调试。 这意味着,当您进行调试时,无法从托管代码单步执行到本机代码,也无法从本机代码单步执行到托管代码。

问题解决

  • 更新项目,使其使用 Microsoft .NET Framework 4 或更高版本。

    - 或 -

    在单独的调试会话中调试托管代码和本机代码。

    - 或 -

    作为 32 位进程调试混合代码,如下面的过程所述。

将平台更改为 32 位(Visual Basic 或 C#)

  1. “解决方案资源管理器”中,右击您的项目,然后单击“属性”

  2. 在属性页中,单击“编译”“调试”选项卡。

  3. 单击“平台”,然后从平台列表中选择“x86”。

    默认情况下,Visual Basic 和 C# 编译器默认生成要在任何 CPU 上运行的代码。 在 64 位计算机上,这些二进制代码作为 64 位进程运行。 若要在 32 位进程中运行,必须选择“Win32”而不是“AnyCPU”

将平台更改为 32 位 (C/C++)

  1. “解决方案资源管理器”中,右击项目并选单击“属性”

  2. 在属性页中,单击“平台”,然后从平台列表中选择“Win32”。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。