Mono 分析器“在主可执行文件中找不到‘日志’分析器,也无法从‘mono-profiler-log’加载。”

Posted

技术标签:

【中文标题】Mono 分析器“在主可执行文件中找不到‘日志’分析器,也无法从‘mono-profiler-log’加载。”【英文标题】:Mono profiler "The 'log' profiler wasn't found in the main executable nor could it be loaded from 'mono-profiler-log'." 【发布时间】:2013-06-08 12:50:25 【问题描述】:

我在 windows 上有一个应用程序,它在单声道上运行得很好。但是,当我尝试对其进行分析时:

mono --profile=log program.exe

我明白了:

在主可执行文件中找不到“日志”分析器,也无法从“mono-profiler-log”加载。

并且没有创建数据文件(但应用程序运行良好)。单声道 3.0.10

有什么想法吗?

【问题讨论】:

我得到了同样的结果。发生在带有 MONO 3.0.12 的 OS X 上。 相同。带有 Mono 3.2.3 的 Windows 我自己也是,Mono 3.2.2 Mono 3.8.0,为 Windows 编译。同样的问题。 @kei 我读了一个错误报告,说这可能是由于 llvm 支持,你能在没有 llvm 的情况下编译然后看看会发生什么吗? 【参考方案1】:

我发现我在 Ubuntu 上收到了同样的消息,因为我没有通过 apt-get 安装 mono-profiler 包。

【讨论】:

我好像能再找到这样的包了,是停产了吗? @kuskmen 你添加了单声道 ppa 吗?【参考方案2】:

尝试设置你的动态库路径。

这适用于 OSX: LD_LIBRARY_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib mono --profile=log:calls program.exe

如果是 OpenSUSE:

您需要使用第三方分析器,您必须将分析器的名称传递给 Mono,如下所示:

mono --profile=custom program.exe 

如上所述,Mono 将从共享库 ‘mono-profiler-custom.so’ 加载用户定义的分析器。

此分析器模块必须位于您的动态链接器库路径中。 Mono 的网站 (www.mono-project.com/Performance_Tips) 提供了其他第三方分析器的列表。

自定义配置文件被编写为共享库。共享库必须名为“mono-profiler-NAME.so”,其中“NAME”是您的分析器的名称

【讨论】:

您需要使用第三方分析器,您必须将分析器的名称传递给 Mono,如下所示: mono --profile=custom program.exe 如上所述,Mono 将加载用户定义的来自共享库“mono-profiler-custom.so”的分析器。此探查器模块必须位于您的动态链接器库路径中。 Mono 的网站 (www.mono-project.com/Performance_Tips) 提供了其他第三方分析器的列表。自定义配置文件被编写为共享库。共享库必须名为“mono-profiler-NAME.so”,其中“NAME”是您的分析器的名称。 谢谢!关于共享库名称的提示帮助我弄清楚了。我的系统上没有相关的 .so 文件,因为我缺少 mono-devel 包。安装该软件包后,我现在有了一个工作分析器!您能否添加与您上述评论类似的答案,以便我奖励赏金? 奖励到期后有 24 小时的宽限期。 Windows 有类似的方法吗?【参考方案3】:

尝试在仅安装了单声道运行时的 Linux 机器上分析单声道应用程序时,我遇到了相同的错误消息。另外安装mono-dev 包修复了它。

【讨论】:

以上是关于Mono 分析器“在主可执行文件中找不到‘日志’分析器,也无法从‘mono-profiler-log’加载。”的主要内容,如果未能解决你的问题,请参考以下文章

VINS-Mono代码分析与总结(最终版)

VINS-Mono代码分析与总结 系统初始化

Mono生命周期函数调用机制分析

使用mono-repo实现跨项目组件共享

vins-mono的边缘化分析

如何控制.Net/mono中线程的内存使用和执行时间?