Comment 4 for bug 71322

Revision history for this message
Dominique Pellé (dominique-pelle) wrote :

I also tried to build aspell from the sources using
information at https://wiki.ubuntu.com/DebuggingProgramCrash (in section "Old notes").

1) first of all, something is missing in the instruction.
    User should run 'sudo apt-get install fakeroot' after
    'sudo apt-get install devscripts'

2) then, when running...

   export DEB_BUILD_OPTIONS="debug nostrip noopt"
   fakeroot apt-get source -b aspell

... it builds, but at then end, it fails with the following error:

  dh_installchangelogs -plibaspell-dev manual/aspell.html/ChangeLog.html
  dh_install -plibaspell-dev --sourcedir=debian/tmp
  cp: cannot stat `debian/tmp//usr/lib/libaspell.so': No such file or directory
  dh_install: command returned error code 256
  make: *** [binary-install/libaspell-dev] Error 1
  Build command 'cd aspell-0.60.4 && dpkg-buildpackage -b -uc' failed.
  E: Child process failed

libaspell.so does not exist in debian/tmp//usr/lib/libaspell.so,
but static lib libaspell.a does exist.

So in the end, I still don't have a stack trace yet with debug symbols.

The stack trace I gave in the bug description the complete
stack trace I get with gdb (without symbos unfortunately).

I also run with valgrind memory check, and got the following
output:

$ export LC_ALL=eo_XX.UTF-8 ; echo -n | valgrind --tool=memcheck --leak-check=yes --track-fds=yes --num-callers=20 aspell list
==1444== Memcheck, a memory error detector.
==1444== Copyright (C) 2002-2005, and GNU GPL'd, by Julian Seward et al.
==1444== Using LibVEX rev 1471, a library for dynamic binary translation.
==1444== Copyright (C) 2004-2005, and GNU GPL'd, by OpenWorks LLP.
==1444== Using valgrind-3.1.0-Debian, a dynamic binary instrumentation framework.
==1444== Copyright (C) 2000-2005, and GNU GPL'd, by Julian Seward et al.
==1444== For more details, rerun with: -v
==1444==
==1444== Invalid read of size 1
==1444== at 0x407551F: acommon::DecodeUtf8::decode(char const*, int, acommon::FilterCharVector&) const (in /usr/lib/libaspell.so.15.1.4)
==1444== by 0x407B387: acommon::DocumentChecker::process(char const*, int) (in /usr/lib/libaspell.so.15.1.4)==1444== by 0x806CC4C: (within /usr/bin/aspell)
==1444== by 0x8052754: (within /usr/bin/aspell)
==1444== by 0x8063269: (within /usr/bin/aspell)
==1444== by 0x4246EA1: __libc_start_main (in /lib/tls/i686/cmov/libc-2.3.6.so)
==1444== Address 0x0 is not stack'd, malloc'd or (recently) free'd
==1444==
==1444== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==1444== Access not within mapped region at address 0x0
==1444== at 0x407551F: acommon::DecodeUtf8::decode(char const*, int, acommon::FilterCharVector&) const (in /usr/lib/libaspell.so.15.1.4)
==1444== by 0x407B387: acommon::DocumentChecker::process(char const*, int) (in /usr/lib/libaspell.so.15.1.4)==1444== by 0x806CC4C: (within /usr/bin/aspell)
==1444== by 0x8052754: (within /usr/bin/aspell)
==1444== by 0x8063269: (within /usr/bin/aspell)
==1444== by 0x4246EA1: __libc_start_main (in /lib/tls/i686/cmov/libc-2.3.6.so)
==1444==
==1444== FILE DESCRIPTORS: 3 open at exit.
==1444== Open file descriptor 2: /dev/pts/0
==1444== <inherited from parent>
==1444==
==1444== Open file descriptor 1: /dev/pts/0
==1444== <inherited from parent>
==1444==
==1444== Open file descriptor 0:
==1444== <inherited from parent>
==1444==
==1444==
==1444== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 23 from 1)
==1444== malloc/free: in use at exit: 244,006 bytes in 530 blocks.
==1444== malloc/free: 4,605 allocs, 4,075 frees, 423,303 bytes allocated.
==1444== For counts of detected errors, rerun with: -v
==1444== searching for pointers to 530 not-freed blocks.
==1444== checked 405,116 bytes.
==1444==
==1444==
==1444== 128 bytes in 1 blocks are possibly lost in loss record 42 of 74
==1444== at 0x401BC6B: operator new[](unsigned) (vg_replace_malloc.c:197)
==1444== by 0x406DA0C: acommon::MDInfoListofLists::get_lists(acommon::Config*) (in /usr/lib/libaspell.so.15.1.4)
==1444== by 0x406E001: acommon::get_module_info_list(acommon::Config*) (in /usr/lib/libaspell.so.15.1.4)
==1444== by 0x40D0B9A: acommon::find_word_list(acommon::Config*) (in /usr/lib/libaspell.so.15.1.4)
==1444== by 0x40D2110: acommon::new_speller(acommon::Config*) (in /usr/lib/libaspell.so.15.1.4)
==1444== by 0x40D2B23: new_aspell_speller (in /usr/lib/libaspell.so.15.1.4)
==1444== by 0x8052701: (within /usr/bin/aspell)
==1444== by 0x8063269: (within /usr/bin/aspell)
==1444== by 0x4246EA1: __libc_start_main (in /lib/tls/i686/cmov/libc-2.3.6.so)
==1444==
==1444== LEAK SUMMARY:
==1444== definitely lost: 0 bytes in 0 blocks.
==1444== possibly lost: 128 bytes in 1 blocks.
==1444== still reachable: 243,878 bytes in 529 blocks.
==1444== suppressed: 0 bytes in 0 blocks.
==1444== Reachable blocks (those to which a pointer was found) are not shown.
==1444== To see them, rerun with: --show-reachable=yes
Segmentation fault

The error happens in libaspell.