Ok, great -- I'll test and let you know.

On 2/27/08 2:05 PM, "Arun Sharma" <[EMAIL PROTECTED]> wrote:

> Hi Mark,
> 
> As I said in the other mail, something along the lines of this completely
> untested change may be what you and others who're having trouble with
> _Unwind_*() APIs want:
> 
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -70,7 +70,10 @@ libunwind_la_SOURCES_local =
> \
>         mi/Lput_dynamic_unwind_info.c mi/Ldestroy_addr_space.c          \
>         mi/Lget_reg.c   mi/Lset_reg.c                                   \
>         mi/Lget_fpreg.c mi/Lset_fpreg.c                                 \
> -       mi/Lset_caching_policy.c                                        \
> +       mi/Lset_caching_policy.c
> +
> +if SUPPORT_CXX_EXCEPTIONS
> +libunwind_la_SOURCES_local +=                                          \
>         unwind/Backtrace.c unwind/DeleteException.c                     \
>         unwind/FindEnclosingFunction.c unwind/ForcedUnwind.c            \
>         unwind/GetBSP.c unwind/GetCFA.c unwind/GetDataRelBase.c         \
> @@ -78,6 +81,7 @@ libunwind_la_SOURCES_local =
> \
>         unwind/GetRegionStart.c unwind/GetTextRelBase.c                 \
>         unwind/RaiseException.c unwind/Resume.c                         \
>         unwind/Resume_or_Rethrow.c unwind/SetGR.c unwind/SetIP.c
> +endif
>  --- a/configure.in
> +++ b/configure.in
> @@ -94,6 +94,7 @@ AM_CONDITIONAL(ARCH_PPC32, test x$target_arch = xppc32)
>  AM_CONDITIONAL(ARCH_PPC64, test x$target_arch = xppc64)
>  AM_CONDITIONAL(OS_LINUX, expr x$target_os : xlinux >/dev/null)
>  AM_CONDITIONAL(OS_HPUX, expr x$target_os : xhpux >/dev/null)
> +AM_CONDITIONAL(SUPPORT_CXX_EXCEPTIONS, test x$target_arch = xia64)
>  
>  if test x$target_arch = xppc64; then
>          libdir='${exec_prefix}/lib64'
> 
>  -Arun
> 
> 
> On Tue, Feb 26, 2008 at 10:41 PM, Mark Rabkin <[EMAIL PROTECTED]> wrote:
>> Hi Arun,
>> 
>> My battle to get this working still continues :)  Are you going to have time
>> to take a look into the first crash (the one you can reproduce)?
>> 
>> I made a patch to prevent that 2nd crashing bug below on the fldenv(), as I
>> mentioned before, but now I'm seeing another strange behavior -- in my
>> complicated program, I have exceptions that slip through a try-catch block
>> uncaught (even though they should be), and result in a program termination
>> due to uncaught exception. I'm struggling to get a smaller test case of that
>> working so I can get verification of it.
>> 
>> I'll send you my patch in the meantime to see if you think it's acceptable.
>> 
>> - Mark
>> 
>> 
>> 
>> 
>> 
>> On 2/15/08 4:58 PM, "Arun Sharma" <[EMAIL PROTECTED]> wrote:
>> 
>>> On Fri, Feb 15, 2008 at 4:25 PM, Mark Rabkin <[EMAIL PROTECTED]> wrote:
>>>> $ gdb unwind
>>>> Program received signal SIGABRT, Aborted.
>>>> 
>>>> #0  0x0000003bd882f3b0 in raise () from /lib64/libc.so.6
>>>> #1  0x0000003bd8830860 in abort () from /lib64/libc.so.6
>>>> #2  0x0000003bd95bb8c1 in __cxa_get_globals () from
>>>> /usr/lib64/libstdc++.so.6
>>>> #3  0x0000003bd95bb9b4 in __cxa_get_globals () from
>>>> /usr/lib64/libstdc++.so.6
>>>> #4  0x0000003bd95bbd07 in __gxx_personality_v0 ()
>>>>    from /usr/lib64/libstdc++.so.6
>>>> #5  0x000000000040100b in _Unwind_Resume (exception_object=0x517060)
>>>>     at unwind/unwind-internal.h:118
>>>> #6  0x0000000000400e84 in throw_int () at unwind.cpp:7
>>>> #7  0x0000000000400e98 in main (argc=1, argv=0x7ffffffcb818) at
>>>> unwind.cpp:12
>>> 
>>> I can reproduce this one.
>>>  
>>>> 
>>>> $ ./unwind-shared
>>>> 
>>>> Program received signal SIGSEGV, Segmentation fault.
>>>> _x86_64_setcontext () at x86_64/setcontext.S:34
>>>> 34              fldenv (%r8)
>>>  
>>> 
>>> But not this one. Which version of gcc are you using?
>>> 
>>>  -Arun
>>> 
>> 
> 
> 


_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to