Re: [Cppcms-users] SIGABRT problem raised between SVN rev1474 and 1491
Brought to you by:
artyom-beilis
|
From: Artyom <art...@ya...> - 2010-10-27 05:12:11
|
> Hallo,
>
> I see your point and will try to provide a sample tomorrow. I
> nevertheless think that it must have at least something to do with your
> changes between the two revisions mentioned, because with the same code
> on my side (of course, recompiled for the revision to be tested) with
> the earlier revision everything works smooth while it doesn't with the
> latter revision.
> Couldn't the invalid write mentioned in valgrind's outputs lead to the
> SIGABRT?
> What I don't understand anyway is
> 1. Why does the SIGABRT occur when running without any debugger attached
> or with gdb, but not with valgrind?
AFAIK valgrind replaces some basic functions like malloc for better control
of output.
> The program runs (besides of the
> 2. Why, at all, is it a SIGABRT and not a SIGSEGV? According to the
> output it is a memory access violation and should be a SIGSEGV then, I
> think.
Because it is rather heap structure corruption rather
then memory access violation. So libc detects the issue and aborts the
program before it is "too late"
>
> Could it be that you changed the implementation of bad_value_cast so
> that an instantiation like this is not possible anymore?
Shouldn't be, in any case you may try following:
Comment out lines: 13 and 14 in file: booster/lib/backtrace/src/backtrace.cpp
Such it would be
#if defined(__linux) || defined(__APPLE__) || defined(__sun)
//#define BOOSTER_HAVE_EXECINFO
//#define BOOSTER_HAVE_DLADDR
#endif
And tell if program still crashes.
Also give me what is your Linux version and libc version + how do you
compile program and CppCMS.
In any case I need a crashing sample to debug the issue.
Artyom
|