【问题标题】:'mono --trace myapp'?'单——跟踪我的应用程序'?
【发布时间】:2012-08-23 19:36:19
【问题描述】:

Ubuntu 12.04,单声道 2.10.8.1-5

我已经构建了 MonoDevelop 默认创建的“hello world”控制台应用程序。它按预期运行。当我添加跟踪选项(是否定向到文件中)时,我会得到这样的东西:

[0x7f24da6eb740: 0.00000 0] ENTER: (wrapper runtime-invoke) <Module>:runtime_invoke_void__this___object (object,intptr,intptr,intptr)([System.OutOfMemoryException:0x7f24da52af60], 0x7fff953e6510, (nil), 0x40e79a70, )
[0x7f24da6eb740: 0.00012 1] ENTER: System.OutOfMemoryException:.ctor (string)(this:0x7f24da52af60[System.OutOfMemoryException monotracetest.exe], [STRING:0x7f24da551e70:Out of memory], )
[0x7f24da6eb740: 0.00021 2] ENTER: System.SystemException:.ctor (string)(this:0x7f24da52af60[System.OutOfMemoryException monotracetest.exe], [STRING:0x7f24da551e70:Out of memory], )
[0x7f24da6eb740: 0.00030 3] ENTER: System.Exception:.ctor (string)(this:0x7f24da52af60[System.OutOfMemoryException monotracetest.exe], [STRING:0x7f24da551e70:Out of memory], )
[0x7f24da6eb740: 0.00031 3] LEAVE: System.Exception:.ctor (string)

.. 将近 900 行关于堆栈溢出、内存不足和看起来更无辜的事情。

我没有找到任何关于“--help-trace”之外的跟踪选项的文档。我应该期待什么?这实际上是在报告问题吗?当我将 'console.writeline("hello world")' 包装在 try catch 块中时,不会引发异常。 (当然,一个未处理的异常可能会导致程序崩溃。)

我最初的程序是测试调用一个本地代码库,我将它简化为这个以查看它失败的地方。

如何将小麦与谷壳分开?

【问题讨论】:

    标签: debugging mono ubuntu-12.04


    【解决方案1】:

    这是预期的输出:没有抛出异常,但是运行时需要在启动时构建一些对象(例如 OutOfMemory 异常对象:当条件发生时可能没有内存来分配它!)。

    关于减少输出,--help-trace中有什么不清楚的地方? 例如,如果您只想获取 System.IO 命名空间中的类和方法的跟踪,您将发出:

    mono --trace=N:System.IO program.exe

    【讨论】:

    • 所以它会提前构建异常对象,以便在需要时可用。足够合理。但是,由于它需要这样做,我认为会有一个简单的标志来关闭所有这些,甚至默认情况下它会关闭。我想 --trace=N:mynamespace 是要走的路。谢谢!
    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多