dbx access checking doesn't play well with C++ exceptions

While running applications that throw exceptions on x86 with access checking enabled, I always get the following error:

Read from unallocated (rua) on thread 1:

Attempting to read 4 bytes at address 0xfefa242c

Location of error: , line 0, _get_exit_frame_monitor()

Followed by a SIGTRAP:

dbx: internal warning: unexpected SIGTRAP!

t@1 (l@1) signal TRAP (trace trap) in (unknown) at 0xd80ef585

0xd80ef585:pushl%ebp

Ian

[472 byte] By [Zootlea] at [2007-11-27 8:21:44]
# 1

Looks like dbx doesn't handle data statically allocated by libc.so (see source code of "offending" function here: http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libc/port/gen /atexit.c#145)

I have filed CR 6572155. It should be visible on bugs.sun.com within a day.

The SIGTRAP is probably a different (and known) problem, which is still under investigation.

MaximKartasheva at 2007-7-12 20:10:17 > top of Java-index,Development Tools,Solaris and Linux Development Tools...