首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调试Dllimport代码

调试Dllimport代码
EN

Stack Overflow用户
提问于 2013-04-08 20:17:20
回答 1查看 1.7K关注 0票数 0

是否可以查看/调试C#编译器为具有DllImport属性的方法生成的代码?我尝试进入VS调试器中使用DllImport属性定义的方法,但它不允许我这样做。在反汇编视图中,我可以看到对某个特定地址的调用指令,但是当我按下F11键(步骤)时,它只是跨出一步。我在项目属性中选中了“启用本机代码调试”复选框。

更新

如果我正确理解,编译器会在看到附加到方法的DllImportAttribute时执行一些操作。我在DllImportAttribute类文档中找不到任何东西。DllImportAttribute类的源代码也只有一个非常基本的类定义。在调试器中,当调用外部函数时,我可以看到一个call FFA0C0C8程序集指令,当我进入它时,它会立即移动到导入的函数体,但是导入的函数有一个与FFA0C0C8不同的地址。我无法将反汇编视图更改为此地址。看起来所有的dll加载逻辑都在这个函数中,调试器跳过了这个函数。我想知道这是由编译器生成的库函数还是函数?

EN

回答 1

Stack Overflow用户

发布于 2013-04-08 22:07:36

如果启用本机调试,并且具有dll的符号和源,则可以调试P/Invoke调用。

如果您试图进入某个Windows dll中的P/Invoke调用,则可能会失败,因为您没有dll的源代码。

编辑

如果您的意思是要调试执行编组和对dll的实际本机调用的实际CLR代码,那么答案是否定的--我认为这是不可能的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15888158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档