单声道性能分析器未运行



我正在尝试运行单声道分析器,但是,我没有收到任何分析器输出或错误消息。

如果我mono --profile=log program.exe运行,程序将按预期运行并且没有错误消息,但没有output.mlpd文件。

我已安装分析器库并可见:-

# ldconfig -p | grep libmono-profiler
libmono-profiler-log.so.0 (libc6,hard-float) => /usr/lib/libmono-profiler-log.so.0
libmono-profiler-coverage.so.0 (libc6,hard-float) => /usr/lib/libmono-profiler-coverage.so.0
libmono-profiler-aot.so.0 (libc6,hard-float) => /usr/lib/libmono-profiler-aot.so.0

我尝试使用mono-sgen和我能找到的几乎所有探查器选项示例,但没有任何变化。

将探查器更改为无效的内容,例如mono --profile=meh program.exe具有相同的结果(程序运行,无错误消息,无探查器输出)

我已经在两台不同的机器上尝试过(Yocto Thud和Ubuntu 18.04.2)

Mono JIT compiler version 5.18.0.268 (tarball Fri Jun 28 03:01:54 UTC 2019)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:           __thread
SIGSEGV:       normal
Notifications: epoll
Architecture:  armel,vfp+hard
Disabled:      none
Misc:          softdebug
Interpreter:   yes
LLVM:          supported, not enabled.
Suspend:       preemptive
GC:            sgen (concurrent by default)
Mono JIT compiler version 5.20.1.19 (tarball Thu Apr 11 09:02:17 UTC 2019)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:           __thread
SIGSEGV:       altstack
Notifications: epoll
Architecture:  amd64
Disabled:      none
Misc:          softdebug
Interpreter:   yes
LLVM:          yes(600)
Suspend:       hybrid
GC:            sgen (concurrent by default)

这曾经适用于这些环境中的先前版本的单声道,但是,回滚和测试并非易事。

更新

我已经设法通过安装单配置文件包在某些平台(Ubuntu)上解决此问题。

此软件包提供以下文件:-

/.
/usr
/usr/bin
/usr/bin/emveepee
/usr/bin/mprof-decoder
/usr/bin/mprof-heap-viewer
/usr/lib
/usr/lib/mono-tools
/usr/lib/mono-tools/Mono.Profiler.Widgets.dll
/usr/lib/mono-tools/emveepee.exe
/usr/lib/mono-tools/mprof-decoder-library.dll
/usr/lib/mono-tools/mprof-decoder.exe
/usr/lib/mono-tools/mprof-heap-snapshot-explorer.dll
/usr/lib/mono-tools/mprof-heap-viewer.exe
/usr/share
/usr/share/doc
/usr/share/doc/mono-profiler
/usr/share/doc/mono-profiler/changelog.Debian.gz
/usr/share/doc/mono-profiler/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/mprof-decoder.1.gz
/usr/share/man/man1/mprof-heap-viewer.1.gz

这些似乎只是处理配置文件输出的工具。目前尚不清楚这些文件中的哪些"启用"/usr/bin/mono实际捕获配置文件数据,或者为什么mono没有报告所需文件(?)不存在的错误。

/usr/lib/libmono-profiler-*.so 文件已经在这些平台上(在安装 mono-profiler 之前)

剩下的要解决的平台是ARM上的Yocto Thud。由于没有像 Ubuntu 那样可用的软件包,也没有错误消息,因此很难说出可能导致此问题的缺失内容。

Ubuntu 的解决方案是安装mono-profiler包。

Yocto Thud 的问题是存在/usr/lib/libmono-profiler-log.so.0,但是,单声道会寻找与/usr/lib/libmono-profiler-log.so.0没有符号链接的/usr/lib/libmono-profiler-log.so(使用 strace 确定)。

mono 没有将此报告为错误的事实似乎是一个错误。

最新更新