[Matroska-users] mkvmerge segmentation fault

Sami Kiiskila sami.kiiskila at tut.fi
Wed Dec 14 16:38:41 CET 2005


Hello

What might be the reason for mkvmerge generating segmentation fault every time
I try to use it?

First I compiled "libebml-0.7.6", "libmatroska-0.8.0", and  "mkvtoolnix-1.6.5"
without any additional components or gui. All went fine and after
"make install" I got the help page when I run mkvmerge. If I try to
give it any input file, even when using the example file from
matroska page: "mkvmerge -i mewmew-vorbis-ssa.mkv"
Always same thing "segmentation fault".

Then I tried to install it from the RPM binary package "mkvtoolnix-1.6.5-1.i386.rpm",
it needed flac lib and some tweaks to run but finally it did the same thing, shows the
help page without parameters and segmentation fault with any input.

Now I tried to compile again with --enable-debug, still help page comes out fine
but any input gives this time "Illegal instruction".

I included the output of gdb with bt here:
Strange that it complains of not finding any debug symbols even if I compiled it
with --enable-debug.

-----

[sami at localhost tv]$ gdb mkvmerge
GNU gdb Red Hat Linux (5.3.90-0.20030710.41rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
(no debugging symbols found)...Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) run -i mewmew-vorbis-ssa.mkv
Starting program: /usr/local/bin/mkvmerge -i mewmew-vorbis-ssa.mkv

Program received signal SIGILL, Illegal instruction.
0xbffff51a in ?? ()
(gdb) bt
#0  0xbffff51a in ?? ()
#1  0x00877998 in __DTOR_END__ () from /lib/tls/libc.so.6
#2  0x081179f1 in std::string* std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*>(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*, __false_type) ()
#3  0x0806b9a5 in std::string* std::__uninitialized_copy_aux<__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*>(__gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, __gnu_cxx::__normal_iterator<std::string const*, std::vector<std::string, std::allocator<std::string> > >, std::string*, __false_type) ()
#4  0x08056168 in std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#5  0x0805b50c in std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#6  0x0805eaf9 in std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#7  0x00757750 in __libc_start_main () from /lib/tls/libc.so.6
#8  0x0804c081 in ?? ()
(gdb)

------

I also run it with : strace mkvmerge -i mewmew-vorbis-ssa.mkv
It produced lots of text so here is only the last page:

----

open("/usr/local/lib/libgcc_s.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\245\264"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=30604, ...}) = 0
old_mmap(0xb49000, 32112, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xb49000
old_mmap(0xb50000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x6000) = 0xb50000
close(3)                                = 0
open("/usr/X11R6/lib/tls/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/X11R6/lib/modules/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/lib/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 at xu\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1575400, ...}) = 0
old_mmap(0x742000, 1279788, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x742000
old_mmap(0x875000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x132000) = 0x875000
old_mmap(0x878000, 10028, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x878000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fb9000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fb9460, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7fbb000, 71702)               = 0
brk(0)                                  = 0x8203000
brk(0x8224000)                          = 0x8224000
brk(0)                                  = 0x8224000
rt_sigaction(SIGUSR1, {0x806b598, [USR1], SA_RESTORER|SA_RESTART, 0x769a18}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {0x806b598, [INT], SA_RESTORER|SA_RESTART, 0x769a18}, {SIG_DFL}, 8) = 0
uname({sys="Linux", node="localhost.localdomain", ...}) = 0
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=33513072, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7db9000
close(3)                                = 0
open("mewmew-vorbis-ssa.mkv", O_RDONLY|O_LARGEFILE) = 3
--- SIGILL (Illegal instruction) @ 0 (0) ---
+++ killed by SIGILL +++
[sami at localhost tv]$

-----
-------------------------------------------------------------------------
: Money isn't everything, : Sami Kiiskilä                 :   Nothing   :
: . . . there is also     : P. 03-3180690 / 050-46 23 215 :     is      :
:  H i g h - T e c h  ! ! : http://www.cs.tut.fi/~kiiskils: impossible. :
-------------------------------------------------------------------------




More information about the Matroska-users mailing list