|
|
1
5
我想我有点明白了。要使用的主要方法是jvmti->GetLineNumberTable(…),它填充jvmtiLineNumberEntry数组。给定BCI行号n(将映射到源行号),可以测试int i为:jvmtiLineNumberEntryArray[i]<=n<jvmtiLineNumberEntryArray[i+1]。这个int i就是所需的相应源代码行号。 一个问题是,由于某种原因,AsyncGetCallTrace始终返回奇怪的bci,因此尽管映射 精确的 源代码行号,它们仍然不是 精确的 ,因为原始BCI不准确。为什么,我不知道。我希望使用sunstudioprofiler(它也使用AsyncGetCallTrace)来测试返回的行号是否与我的profiler相同。在这种情况下,AsyncGetCallTrace函数是不准确的。但到目前为止,使用sunstudio变成了一个挑战。 如果有人知道如何使用这个工具,请帮助! http://developer.amd.com/documentation/articles/pages/JVMTIEventPiggybacking.aspx |