gcj.texi (libgcj Runtime Properties): Document gnu.gcj.runtime.NameFinder.show_raw and...

2006-06-05  David Daney  <ddaney@avtrex.com>

	* gcj.texi (libgcj Runtime Properties): Document
	gnu.gcj.runtime.NameFinder.show_raw and
	gnu.gcj.runtime.NameFinder.remove_unknown.

2006-06-05  David Daney  <ddaney@avtrex.com>

	* gnu/gcj/runtime/NameFinder.java (show_raw): New field.
	(showRaw): New method.
	* stacktrace.cc : Include gnu/gcj/runtime/StringBuffer.h.
	(getLineNumberForFrame): Show IP offset in trace if line number
	not available and show_raw true.

From-SVN: r114437
This commit is contained in:
David Daney
2006-06-06 17:00:16 +00:00
committed by David Daney
parent c02174abd1
commit 696dad4b6b
5 changed files with 59 additions and 2 deletions
+8
View File
@@ -1,3 +1,11 @@
2006-06-06 David Daney <ddaney@avtrex.com>
* gnu/gcj/runtime/NameFinder.java (show_raw): New field.
(showRaw): New method.
* stacktrace.cc : Include gnu/gcj/runtime/StringBuffer.h.
(getLineNumberForFrame): Show IP offset in trace if line number
not available and show_raw true.
2006-06-06 Gary Benson <gbenson@redhat.com>
* java/io/natFilePosix.cc (getCanonicalPath): Rewritten.
+18 -2
View File
@@ -67,13 +67,29 @@ public class NameFinder
("gnu.gcj.runtime.NameFinder.use_addr2line", "true")
).booleanValue();
private static boolean show_raw
= Boolean.valueOf(System.getProperty
("gnu.gcj.runtime.NameFinder.show_raw", "false")
).booleanValue();
/**
* Return true if raw addresses should be printed in stacktraces
* when no line number information is available.
*/
static final boolean showRaw()
{
return show_raw;
}
private static final boolean remove_unknown
= Boolean.valueOf(System.getProperty
("gnu.gcj.runtime.NameFinder.remove_unknown", "true")
).booleanValue();
// Return true if non-Java frames should be removed from stack
// traces.
/**
* Return true if non-Java frames should be removed from stack
* traces.
*/
static final boolean removeUnknown()
{
return remove_unknown;
+12
View File
@@ -27,6 +27,7 @@ details. */
#include <java/util/IdentityHashMap.h>
#include <gnu/java/lang/MainThread.h>
#include <gnu/gcj/runtime/NameFinder.h>
#include <gnu/gcj/runtime/StringBuffer.h>
#include <sysdep/backtrace.h>
#include <sysdep/descriptor.h>
@@ -221,6 +222,17 @@ _Jv_StackTrace::getLineNumberForFrame(_Jv_StackFrame *frame, NameFinder *finder,
finder->lookup (binaryName, (jlong) offset);
*sourceFileName = finder->getSourceFile();
*lineNum = finder->getLineNum();
if (*lineNum == -1 && NameFinder::showRaw())
{
gnu::gcj::runtime::StringBuffer *t =
new gnu::gcj::runtime::StringBuffer(binaryName);
t->append ((jchar)' ');
t->append ((jchar)'[');
// + 1 to compensate for the - 1 adjustment above;
t->append (Long::toHexString (offset + 1));
t->append ((jchar)']');
*sourceFileName = t->toString();
}
}
#endif
}