stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Sebor (JIRA)" <j...@apache.org>
Subject [jira] Commented: (STDCXX-600) [gcc 4.0.1/Mac OS X] SIGABRT throwing an exception
Date Tue, 16 Oct 2007 17:37:50 GMT

    [ https://issues.apache.org/jira/browse/STDCXX-600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12535305
] 

Martin Sebor commented on STDCXX-600:
-------------------------------------

Part of the problem is that we're defining classes that are defined in the language runtime
library with no reliable way to detect their exact layout, including the order of their virtual
member functions. We have tests that try to detect whether the member functions (virtual or
otherwise) of these classes are defined in the runtime but the tests are less than 100% reliable.
We also unconditionally declare all the members even though the runtime might be relying on
the compiler to generate some of them (e.g., the ctors and assignment operator).

> [gcc 4.0.1/Mac OS X] SIGABRT throwing an exception
> --------------------------------------------------
>
>                 Key: STDCXX-600
>                 URL: https://issues.apache.org/jira/browse/STDCXX-600
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 18. Language Support
>    Affects Versions: trunk
>         Environment: gcc 4.0.1 on Darwin Kernel Version 8.10.1
>            Reporter: Martin Sebor
>            Priority: Critical
>
> Throwing an exception from the library causes a SIGABRT. Example programs that demonstrate
library exceptions abort, as does the program below:
> $ cat t.cpp && make t && gdb -q t
> #include <string>
> int main ()
> {
>     try {
>         std::string s;
>         s.replace (1, 1, "x");
>     }
>     catch (...) {
>     }
> }
>     
> gcc -c -I/Users/sebor/stdcxx/include/ansi -D_RWSTDDEBUG    -I/Users/sebor/stdcxx/include
-I/build/sebor/stdcxx-gcc-4.0.1-15d/include -I/Users/sebor/stdcxx/examples/include  -pedantic
-nostdinc++ -g  -W -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long -Wcast-align
  t.cpp
> gcc t.o -o t  -L/build/sebor/stdcxx-gcc-4.0.1-15d/lib  -lstd15d -lsupc++ -lgcc_eh -lm

> Reading symbols for shared libraries ... done
> (gdb) run
> Starting program: /build/sebor/stdcxx-gcc-4.0.1-15d/examples/t 
> Reading symbols for shared libraries .+ done
> Program received signal SIGABRT, Aborted.
> 0x9003d66c in kill ()
> (gdb) where
> #0  0x9003d66c in kill ()
> #1  0x9010e8cf in raise ()
> #2  0x9010d422 in abort ()
> #3  0x00002959 in _Unwind_SetGR () at t.cpp:11
> #4  0x000026a6 in __gxx_personality_v0 () at t.cpp:11
> #5  0x002681c4 in _Unwind_RaiseException_Phase2 () at /Users/sebor/stdcxx/src/wctype.cpp:1058
> #6  0x002683f4 in _Unwind_RaiseException () at /Users/sebor/stdcxx/src/wctype.cpp:1058
> #7  0x00260a57 in __cxa_throw () at /Users/sebor/stdcxx/src/wctype.cpp:1058
> #8  0x0020b774 in __rw::__rw_throw_exception (id=9, what=0x11001d0 "") at /Users/sebor/stdcxx/src/exception.cpp:694
> #9  0x0020ac40 in __rw::__rw_throw (id=9) at /Users/sebor/stdcxx/src/exception.cpp:832
> #10 0x00238149 in std::string::replace (this=0xbffffa88, __pos1=1, __n1=1, __s=0xbac8
"x", __n2=1) at /Users/sebor/stdcxx/include/string.cc:312
> #11 0x0023852f in std::string::replace (this=0xbffffa88, __pos=1, __n=1, __s=0xbac8 "x")
at /Users/sebor/stdcxx/include/string:545
> #12 0x00001c4d in main () at t.cpp:7

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message