aboutsummaryrefslogtreecommitdiff
path: root/libjava/include/java-stack.h
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/include/java-stack.h')
-rw-r--r--libjava/include/java-stack.h33
1 files changed, 32 insertions, 1 deletions
diff --git a/libjava/include/java-stack.h b/libjava/include/java-stack.h
index 7bf4d7b..eb1ddcc 100644
--- a/libjava/include/java-stack.h
+++ b/libjava/include/java-stack.h
@@ -1,6 +1,6 @@
// java-stack.h - Definitions for unwinding & inspecting the call stack.
-/* Copyright (C) 2005 Free Software Foundation
+/* Copyright (C) 2005, 2006 Free Software Foundation
This file is part of libgcj.
@@ -11,6 +11,7 @@ details. */
#ifndef __JV_STACKTRACE_H__
#define __JV_STACKTRACE_H__
+#include <stdlib.h>
#include <unwind.h>
#include <gcj/cni.h>
@@ -126,5 +127,35 @@ public:
};
+// Information about a given address.
+struct _Jv_AddrInfo
+{
+ // File name of the defining module.
+ const char *file_name;
+
+ // Base address of the loaded module.
+ void *base;
+
+ // Name of the nearest symbol.
+ const char *sym_name;
+
+ // Address of the nearest symbol.
+ void *sym_addr;
+
+ ~_Jv_AddrInfo (void)
+ {
+ // On systems with a real dladdr(), the file and symbol names given by
+ // _Jv_platform_dladdr() are not dynamically allocated. On Windows,
+ // they are.
+
+#ifdef WIN32
+ if (file_name)
+ free ((void *)file_name);
+
+ if (sym_name)
+ free ((void *)sym_name);
+#endif /* WIN32 */
+ }
+};
#endif /* __JV_STACKTRACE_H__ */