summaryrefslogtreecommitdiff
path: root/libjava/name-finder.cc
diff options
context:
space:
mode:
authorBryce McKinlay <bryce@albatross.co.nz>2000-10-09 01:54:50 +0000
committerBryce McKinlay <bryce@gcc.gnu.org>2000-10-09 02:54:50 +0100
commit6a3bad7d9850afa8c301363c0bfde69319ce5cc4 (patch)
treed7144dd40c3f307f440da59fb3df6a0ad1614338 /libjava/name-finder.cc
parent79b425c6d37e8384a8827019b0538abd0df5e84d (diff)
downloadgcc-6a3bad7d9850afa8c301363c0bfde69319ce5cc4.tar.gz
re GNATS libgcj/341 (Throwable.printStackTrace() isn't working)
2000-10-09 Bryce McKinlay <bryce@albatross.co.nz> * include/jvm.h: Enable __builtin_expect(). * name-finder.cc (lookup): Don't trust dladdr() if the address is from the main program. Fix for PR libgcj/341. From-SVN: r36794
Diffstat (limited to 'libjava/name-finder.cc')
-rw-r--r--libjava/name-finder.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/libjava/name-finder.cc b/libjava/name-finder.cc
index 00857934e3e..a29f5bd233c 100644
--- a/libjava/name-finder.cc
+++ b/libjava/name-finder.cc
@@ -136,6 +136,7 @@ _Jv_name_finder::toHex (void *p)
bool
_Jv_name_finder::lookup (void *p)
{
+ extern char **_Jv_argv;
toHex (p);
#if defined (HAVE_DLFCN_H) && defined (HAVE_DLADDR)
@@ -146,7 +147,10 @@ _Jv_name_finder::lookup (void *p)
{
strncpy (file_name, dl_info.dli_fname, sizeof file_name);
strncpy (method_name, dl_info.dli_sname, sizeof method_name);
- return true;
+
+ /* Don't trust dladdr() if the address is from the main program. */
+ if (strcmp (file_name, _Jv_argv[0]) != 0)
+ return true;
}
}
#endif