gpt4 book ai didi

debugging - 如何使用 MonoDevelop 调试 MonoDevelop 插件?

转载 作者:行者123 更新时间:2023-12-04 17:26:04 28 4
gpt4 key购买 nike

题目说明了一切。我在 monodevelop 网站或通过谷歌找不到任何信息。

偶加System.Diagnostics.Debugger.Break()并运行 mono --debug MonoDevelop.exe好像什么都没做。。

最佳答案

mono --debug与调试器没有任何关系,它只是让 Mono 跟踪调试信息,以便它可以在回溯中为您提供文件/行/列信息。
System.Diagnostics.Debugger.Break()的行为取决于您的 Mono 版本。 AFAIK 以其基本形式设置硬断点,因此如果您的应用程序未在 native 硬调试器中运行,它只会崩溃。如果您的应用在 Mono 软调试器中运行 Mono 2.11 或更高版本(尚未发布),它将为软调试器设置一个软断点并按预期工作。

启用插件调试的基本方法是在插件项目中设置自定义执行命令。打开“项目选项”,进入“运行>自定义命令”部分,为“执行”添加自定义命令。将可执行文件设置为 MonoDevelop.exe,并将工作目录设置为其包含目录。这意味着当您运行/调试您的项目时,MD 将实际执行该可执行文件,而不是直接执行您的项目。如果 MonoDevelop.exe 加载您的插件,那么您将能够设置断点、步骤等。

这里的困难部分是让 MD 加载您的插件。一种方法是让您的项目将插件 dll 输出到 MD 搜索插件的目录之一,但在开发时这是一件非常棘手的事情。更好的解决方案是使用未记录的环境变量 MONODEVELOP_DEV_ADDINS 指定一个额外的目录,MD 从中加载插件。 MD 中没有用于为自定义命令设置环境变量的 UI,但它是内部支持的 - 您必须手动编辑 csproj 文件。

找到看起来像的部分:

<CustomCommands>
<CustomCommands>
<Command type="Execute"
command="..\..\..\monodevelop\main\build\bin\MonoDevelop.exe"
workingdir="..\..\..\monodevelop\main\build\bin" />
</CustomCommands>
</CustomCommands>

并将其更改为:
<CustomCommands>
<CustomCommands>
<Command type="Execute"
command="..\..\..\monodevelop\main\build\bin\MonoDevelop.exe"
workingdir="..\..\..\monodevelop\main\build\bin">
<EnvironmentVariables>
<Variable name="MONODEVELOP_DEV_ADDINS" value="${TargetDir}" />
</EnvironmentVariables>
</Command>
</CustomCommands>
</CustomCommands>

如果您想知道为什么 <CustomCommands>元素是两层深的,这是一个已知的错误。

关于debugging - 如何使用 MonoDevelop 调试 MonoDevelop 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9637994/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com