stacktrace.cc (GetStackTraceElements): Call gnu::gcj::runtime::NameFinder::removeUnknown() to determine if...

2006-02-16  Andrew Haley  <aph@redhat.com>

        * stacktrace.cc (GetStackTraceElements): Call
        gnu::gcj::runtime::NameFinder::removeUnknown() to determine if
        non-Java frames should be removed from a printed stack trace.
        Pass methodName to getLineNumberForFrame().
        (getLineNumberForFrame): Set method_name from info.dli_sname.
        * gnu/gcj/runtime/NameFinder.java (removeUnknown): New method.
        (remove_unknown): New variable.
        * include/java-stack.h (_Jv_StackTrace::getLineNumberForFrame):
        Add methodName arg.

From-SVN: r111181
This commit is contained in:
Andrew Haley
2006-02-17 13:01:40 +00:00
committed by Andrew Haley
parent 25f2dfd340
commit 24ca2a963a
4 changed files with 46 additions and 7 deletions
+15
View File
@@ -34,6 +34,9 @@ import java.util.HashMap;
* source file and line number info. Throwable.printStackTrace() will
* be faster if this property is set to 'false'.
* </ul>
* <ul><code>gnu.gcj.runtime.NameFinder.remove_unknown</code>
* Whether calls to unknown functions (class and method names are unknown)
* should be removed from the stack trace. </ul>
* </li>
*
* <code>close()</code> should be called to get rid of all resources.
@@ -57,6 +60,18 @@ public class NameFinder
("gnu.gcj.runtime.NameFinder.use_addr2line", "true")
).booleanValue();
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.
static final boolean removeUnknown()
{
return remove_unknown;
}
class Addr2Line
{
Process proc;