1. 程式人生 > >你的應用進入了中斷狀態,但當前未執行任何受選定除錯引擎支援的程式碼(例如,僅在執行本機執行時程式碼)

你的應用進入了中斷狀態,但當前未執行任何受選定除錯引擎支援的程式碼(例如,僅在執行本機執行時程式碼)

錯誤資訊

英文錯誤資訊:Your app has entered a break state, but no code is currently executing that is supported by the selected debug engine

環境

IDE:VS2017,除錯外部程式(程式碼為外部程式載入外掛)

外部程式API:.NetFramework 4.0;

外掛:.NetFramework 3.5、C++(本機程式碼);

除錯模式選擇:託管(v4.6、v4.5、v4.0)

錯誤截圖如下:

錯誤說明

僅在外掛UI上執行的程式碼會出現這種情況。

在外掛入口,到UI顯示這段時間可以正常進入斷點。當UI顯示之後,在外掛UI上操作的程式碼都無法進入斷點,會進入無法除錯的中斷。

解決方案

修改外部程式配置檔案(exe檔案同名+.config字尾),修改啟動的.NetFramework為3.5,啟動除錯,即可正常進入斷點。

如:外部程式為:xxx.exe;配置檔案則為:xxx.exe.config;

配置修改如下:

初始:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
  <runtime><generatePublisherEvidence enabled="false"/> </runtime>
</configuration>

改為:

<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
	<supportedRuntime version="v2.0.50727"/>
  </startup>
  <runtime><generatePublisherEvidence enabled="false"/> </runtime>
</configuration>