javaprims.h (_Jv_uintptr_t): New typedef similar to uintptr_t in C99.

* gcj/javaprims.h (_Jv_uintptr_t): New typedef similar to uintptr_t in
	C99.
	* include/java-stack.h: Include stdlib.h.
	(_Jv_AddrInfo): New structure to hold address information.
	* include/posix.h (_Jv_platform_dladdr): Declare.
	* include/win32.h (_Jv_platform_dladdr): Declare.
	(backtrace): Remove declaration.
	* posix.cc: Include dlfcn.h if available.  Include java-stack.h.
	(_Jv_platform_dladdr): Define.
	* win32.cc: Include string.h.  Include java-stack.h.
	(backtrace): Remove.
	(_Jv_platform_dladdr): Define.
	* sysdep/i386/backtrace.h (fallback_backtrace): Check that a potential
	frame pointer value is 32-bit word-aligned.  Use operand of the CALL
	instruction calling the current function to find its starting address.
	* stacktrace.cc: Do not include dlfcn.h.  Include platform.h.
	(_Jv_StackTrace::getLineNumberForFrame): Use _Jv_platform_dladdr()
	instead of dladdr().
	(_Jv_StackTrace::GetStackTraceElements): Use nCodeMap even for Windows.
	(_Jv_StackTrace::GetClassContext): Use fallback_backtrace() for
	targets with SJLJ exceptions instead of using _Unwind_Backtrace().
	(_Jv_StackTrace::GetFirstNonSystemClassLoader): Likewise.

From-SVN: r115069
This commit is contained in:
Ranjit Mathew 2006-06-29 14:57:39 +00:00
parent 6150b60261
commit 3379268423
9 changed files with 209 additions and 58 deletions

View file

@ -11,7 +11,7 @@ details. */
#ifndef __JV_WIN32_H__
#define __JV_WIN32_H__
// Enable UNICODE Support.?
// Enable UNICODE support?
#ifdef MINGW_LIBGCJ_UNICODE
#define UNICODE
@ -175,8 +175,11 @@ _Jv_platform_usleep (unsigned long usecs)
}
#endif /* JV_HASH_SYNCHRONIZATION */
/* Store up to SIZE return address of the current program state in
ARRAY and return the exact number of values stored. */
extern int backtrace (void **__array, int __size);
// Forward declaration. See java-stack.h for definition.
struct _Jv_AddrInfo;
// Given an address, determine the executable or shared object that defines
// it and the nearest named symbol.
extern int _Jv_platform_dladdr (const void *addr, _Jv_AddrInfo *info);
#endif /* __JV_WIN32_H__ */