2

每次进入和退出方法时,我都在更改代码以打印日志消息的一半。当我认为 Eclipse 可能有一些功能或插件可以为我跟踪并展示给我时。毕竟,这是 java 编译器手头的信息。

我需要的是查看每个方法被调用和返回的顺序

它应该打印方法名称和它上面的所有堆栈,这样我就可以知道谁调用了。

可选地,如果它打印进入和返回的时间以及差异,这将是分析的好信息。

我记得以前尝试过 TraceView,不知道是不是答案,但我清楚地记得那里的信息太多,我无法清楚地了解发生了什么。
如果有人知道如何正确使用它来仅获取我需要的信息,那也很棒。

更新:
我很难使用 TraceView 和他的同伴 dmtracedump。我做了一些我不应该做的事情,我搜索了 dmtracedump 代码源并进行了调查。
这是产生我收到的错误消息的代码。

TraceData data1;
DataKeys* dataKeys = parseDataKeys(&data1, gOptions.traceFileName,
                                   &sumThreadTime);
if (dataKeys == NULL) {
    fprintf(stderr, "Cannot read trace.\n");
    exit(1);
}

但我不知道如何修复跟踪文件。
它是由 Debug.startMethodTracing("tracefile");

我希望有一种方法可以告诉 Java 编译器打印每个方法调用。在这一点上,我很沮丧。

4

2 回答 2

2

I suggest rather than implementing your own profiling service, use the absolutely excellent tool TraceView that Google provides us with!

If you are having issues using TraceView, you can only profile certain parts of your code by using:

// start tracing to "/sdcard/calc.trace"
Debug.startMethodTracing("calc");
// ...
// stop tracing
Debug.stopMethodTracing();

I've used it myself, and it tells you just about everything you'd need to know for profiling.

于 2012-06-04T16:20:53.650 回答
0

我找到了一种自己修改文件的方法,可以在源中的任何位置插入和删除日志消息。

我在这篇文章中写了

于 2012-06-09T11:30:20.060 回答