【问题标题】:Mono profiler not running单声道分析器未运行
【发布时间】:2019-08-01 08:24:50
【问题描述】:

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

如果我运行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)

这曾经在这些环境中的以前版本的单声道中工作,但是,回滚和测试并非易事。

更新

我已经通过安装 mono-profiler 包在某些平台 (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 一样的可用软件包,也没有错误消息,因此很难判断可能导致此问题的缺少什么。

【问题讨论】:

    标签: mono


    【解决方案1】:

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

    Yocto Thud 的问题是存在 /usr/lib/libmono-profiler-log.so.0,但是,mono 会查找未符号链接到 /usr/lib/libmono-profiler-log.so.0/usr/lib/libmono-profiler-log.so(使用 strace 确定)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多