[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#385784: aptitude: crash with basic_string::_S_construct NULL not valid [stacktrace]



On Sun, Sep 03, 2006 at 04:37:24PM -0700, Ross Boylan <ross@betterworld.us> was heard to say:
> Here's the stack trace, which seems to indicate something going wrong
> in libc (or the kernel?), with libstdc++ possibly adding another layer
> of error on top of that.
> 
> I don't know if the low-level exception is considered normal enough
> that it should be caught and dealt with.  An excerpt from the gdb
> session follows, and then some more background info:

  [snip]

> (gdb) backtrace
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0xa7c6c6d1 in raise () from /lib/tls/i686/cmov/libc.so.6
> #2  0xa7c6df9b in abort () from /lib/tls/i686/cmov/libc.so.6

  These three calls are just the program aborting itself due to the
uncaught exception.

> #3  0xa7e61644 in __gnu_cxx::__verbose_terminate_handler ()
>    from /usr/lib/libstdc++.so.6
> #4  0xa7e5f035 in std::set_unexpected () from /usr/lib/libstdc++.so.6
> #5  0xa7e5f072 in std::terminate () from /usr/lib/libstdc++.so.6

  These are the C++ library's sequence for aborting due to an uncaught
exception.

> #6  0xa7e5f1aa in __cxa_throw () from /usr/lib/libstdc++.so.6

  This is the function g++ invokes to throw an exception.

> #7  0xa7df410f in std::__throw_logic_error () from /usr/lib/libstdc++.so.6

  Intermediate exception-throwing routine.

> #8  0xa7e3ab5f in std::string::_S_copy_chars () from /usr/lib/libstdc++.so.6
> #9  0xa7e3aca9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string () from /usr/lib/libstdc++.so.6

  These are presumably the std::string constructor.  My guess is that
we're passing NULL at some point to the constructor that makes a string
from a char*.

> #10 0xa7f8210f in pkgDPkgPM::Go () from /usr/lib/libapt-pkg-libc6.3-6.so.3.11
> #11 0xa7f321f0 in pkgPackageManager::DoInstall ()
>    from /usr/lib/libapt-pkg-libc6.3-6.so.3.11

  These are the libapt routines that are supposed to invoke dpkg and
handle its return code.

> #12 0x0820e89b in download_install_manager::execute_install_run (
>     this=0xafdd6f0c, res=pkgAcquire::Continue, progress=@0xafdd6dc0)
>     at download_install_manager.cc:136

  This is the aptitude-side invocation of dpkg (via the above calls).
It doesn't even pass in a string of any sort.

  The rest is just aptitude calls.

  If it's not too much trouble, I wonder if I could suggest that you
build a debug apt too?  I believe you can do this by fetching the source
and running "DEB_BUILD_OPTIONS=noopt,nostrip dpkg-buildpackage -rfakeroot"
in the root of the source package, then installing the resulting binaries.

  Daniel

Attachment: signature.asc
Description: Digital signature


Reply to: