C# 和 MASM dll 库如何调试

本文关键字:调试 何调试 MASM dll | 更新日期: 2023-09-27 17:56:17

说明

我的项目有点问题,话虽如此 - 我无法调试加载到用 C# 编写的程序的 dll(用 MASM 编写)。我确实在 dll 中过程的各个位置留下了断点,但没有任何反应。程序执行只是完成过程而不停止。

我使用 Visual Studio 2010 并具有以下解决方案结构:

Solution
|
+--+ the masm dll project
|  |
|  +- *.asm 
|  |
|  +- *.def
|
+--+ C# dll library poject 
|  
+--+ my C# project

因此,我可以访问 dll 的源代码,并且其项目与调用项目位于同一解决方案中。

但是,当我在 C# 库项目中设置断点时,它可以工作。

我仍然无法调试这个窃听器。谁能指出我解决问题的方法?

溶液

坎福德给出

为了

能够调试非托管dll(不仅是masm,nasm等),您所要做的就是启用未加密的代码调试,这是通过以下方式完成的(在VS2010中):

启用非托管代码的调试

  1. 在"解决方案资源管理器"中选择项目后,在"项目"菜单上单击"属性"。
  2. 单击调试选项卡。
  3. 选中"启用非托管代码调试"复选框。

(从这里开始)

C# 和 MASM dll 库如何调试

需要在 c# 项目的"调试"设置中启用非托管代码调试。如果这仍然不起作用,因为您有 asm 代码,您可以在 asm 中插入int 3作为硬编码的中断指令,然后重建您的 dll。