1
# DP: libgcj: Lookup source file name and line number in separated
2
# DP: debug files found in /usr/lib/debug
5
libjava/stacktrace.cc | 27 +++++++++++++++++++++++++++
6
1 files changed, 27 insertions(+), 0 deletions(-)
8
--- a/src/libjava/stacktrace.cc
9
+++ b/src/libjava/stacktrace.cc
11
#include <java-stack.h>
20
#include <java/lang/Boolean.h>
21
#include <java/lang/Class.h>
23
finder->lookup (binaryName, (jlong) offset);
24
*sourceFileName = finder->getSourceFile();
25
*lineNum = finder->getLineNum();
26
+ if (*lineNum == -1 && info.file_name[0] == '/')
28
+ const char *debugPrefix = "/usr/lib/debug";
29
+ char *debugPath = (char *) malloc (strlen(debugPrefix)
30
+ + strlen(info.file_name)
35
+ strcpy (debugPath, debugPrefix);
36
+ strcat (debugPath, info.file_name);
37
+ //printf ("%s: 0x%x\n", debugPath, offset);
38
+ if (!access (debugPath, R_OK))
40
+ binaryName = JvNewStringUTF (debugPath);
41
+ finder->lookup (binaryName, (jlong) offset);
42
+ *sourceFileName = finder->getSourceFile();
43
+ *lineNum = finder->getLineNum();
48
if (*lineNum == -1 && NameFinder::showRaw())
50
gnu::gcj::runtime::StringBuffer *t =