dump_syms crashes during the build when creating the breakpad symbols with gcc 4.7. It isn't recreatable at all on a local build, which is a bit of a pain.
The stack looks like this:
#0 0x00007ffff7320445 in __GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
resultvar = 0
pid = <optimized out>
selftid = 31533
#1 0x00007ffff7323bab in __GI_abort () at abort.c:91
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0x3, sa_sigaction = 0x3}, sa_mask = {__val = {4, 140737488347766, 47, 140737341956901, 1, 140737341961145, 3, 140737488338444, 4, 140737341956848, 1,
140737341965828, 3, 140737488338420, 12, 140737341965832}}, sa_flags = 2, sa_restorer = 0x7ffff7464608}
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007ffff735de2e in __libc_message (do_abort=2, fmt=0x7ffff74660d0 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:201
ap = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fffffffc770, reg_save_area = 0x7fffffffc680}}
ap_copy = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 0x7fffffffc770, reg_save_area = 0x7fffffffc680}}
fd = 7
on_2 = <optimized out>
list = <optimized out>
nlist = <optimized out>
cp = <optimized out>
written = <optimized out>
#3 0x00007ffff7368626 in malloc_printerr (action=3, str=0x7ffff7466230 "double free or corruption (out)", ptr=<optimized out>) at malloc.c:5007
buf = "000055555578f900"
cp = <optimized out>
#4 0x000055555555b277 in deallocate (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.7/ext/new_allocator.h:100
No locals.
#5 _M_put_node (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/4.7/bits/stl_list.h:356
No locals.
#6 std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear (
this=this@entry=0x55555578f908) at /usr/include/c++/4.7/bits/list.tcc:80
__tmp = <optimized out>
__cur = 0x5555557880d0
#7 0x000055555555b2b9 in ~_List_base (this=0x55555578f908, __in_chrg=<optimized out>) at /usr/include/c++/4.7/bits/stl_list.h:401
No locals.
#8 ~list (this=0x55555578f908, __in_chrg=<optimized out>) at /usr/include/c++/4.7/bits/stl_list.h:458
No locals.
#9 ~Abbrev (this=0x55555578f8f8, __in_chrg=<optimized out>)
at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/../../common/dwarf/dwarf2reader.h:244
No locals.
#10 _Destroy<dwarf2reader::CompilationUnit::Abbrev> (__pointer=0x55555578f8f8) at /usr/include/c++/4.7/bits/stl_construct.h:95
No locals.
#11 __destroy<dwarf2reader::CompilationUnit::Abbrev*> (__last=0x555555790b10, __first=0x55555578f8f8) at /usr/include/c++/4.7/bits/stl_construct.h:105
No locals.
#12 _Destroy<dwarf2reader::CompilationUnit::Abbrev*> (__last=0x555555790b10, __first=<optimized out>) at /usr/include/c++/4.7/bits/stl_construct.h:128
No locals.
#13 _Destroy<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev> (__last=0x555555790b10, __first=<optimized out>) at /usr/include/c++/4.7/bits/stl_construct.h:155
No locals.
#14 ~vector (this=0x555555788090, __in_chrg=<optimized out>) at /usr/include/c++/4.7/bits/stl_vector.h:403
No locals.
#15 dwarf2reader::CompilationUnit::~CompilationUnit (this=<optimized out>, __in_chrg=<optimized out>)
at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/../../common/dwarf/dwarf2reader.h:227
No locals.
#16 0x000055555555bb21 in (anonymous namespace)::LoadDwarf (dwarf_filename=..., elf_header=elf_header@entry=0x7ffff7f5c000, big_endian=big_endian@entry=false, module=module@entry=0x7fffffffccd0)
at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc:283
reporter = <incomplete type>
root_handler = {<dwarf2reader::RootDIEHandler> = {<dwarf2reader::DIEHandler> = {_vptr.DIEHandler = 0x555555786170}, <No data fields>}, line_reader_ = 0x7fffffffc800, cu_context_ = 0x555555789460,
child_context_ = 0x5555557894a0, has_source_line_info_ = true, source_line_offset_ = 0,
lines_ = {<std::_Vector_base<google_breakpad::Module::Line, std::allocator<google_breakpad::Module::Line> >> = {
_M_impl = {<std::allocator<google_breakpad::Module::Line>> = {<__gnu_cxx::new_allocator<google_breakpad::Module::Line>> = {<No data fields>}, <No data fields>}, _M_start = 0x55555579db00,
_M_finish = 0x55555579eba0, _M_end_of_storage = 0x55555579fb00}}, <No data fields>}}
die_dispatcher = <incomplete type>
reader = {_vptr.CompilationUnit = 0x555555785d60, header_ = {length = 15350, version = 2, abbrev_offset = 0, address_size = 8 '\b'}, offset_from_section_start_ = 0,
buffer_ = 0x7ffff7f6cc3c "\366;", buffer_length_ = 120649, after_header_ = 0x7ffff7f6cc47 "\001*\"", reader_ = 0x7fffffffc8c8, sections_ = @0x7fffffffc840, handler_ = 0x7fffffffc928,
abbrevs_ = 0x555555788090, string_buffer_ = 0x7ffff7f914fb "_ZNK8nsCOMPtrI12nsILocalFileEptEv", string_buffer_length_ = 35018}
offset = 15354
endianness = <optimized out>
file_context = {filename = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x555555788028 "/home/chr1s/src/firefox/mozilla-beta/obj-x86_64-unknown-linux-gnu/dist/bin/firefox"}}, section_map = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<char const*, unsigned long long> > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<char const*, unsigned long long> > > >> = {<No data fields>}, <No data fields>},
_M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x555555788970, _M_left = 0x5555557881b0, _M_right = 0x555555788900}, _M_node_count = 39}}},
module = 0x7fffffffccd0, file_private = 0x5555557882e0}
sections = <optimized out>
debug_info_section = {first = <optimized out>, second = 120649}
debug_info_length = 120649
byte_reader = <incomplete type>
num_sections = <optimized out>
section_names = <optimized out>
line_to_module = {<google_breakpad::DwarfCUToModule::LineToModuleFunctor> = {_vptr.LineToModuleFunctor = 0x555555785830}, byte_reader_ = 0x7fffffffc8c8}
#17 0x000055555555be87 in (anonymous namespace)::LoadSymbols (obj_file=..., big_endian=big_endian@entry=false, elf_header=0x7ffff7f5c000, read_gnu_debug_link=read_gnu_debug_link@entry=true,
info=info@entry=0x7fffffffcc78, module=module@entry=0x7fffffffccd0)
at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc:559
loading_addr = 140737353925952
sections = 0x7ffff7fcc540
stab_section = <optimized out>
dwarf_cfi_section = <optimized out>
section_names = 0x7ffff7fcce40
found_debug_info_section = true
dwarf_section = <optimized out>
eh_frame_section = <optimized out>
#18 0x000055555555c40a in google_breakpad::WriteSymbolFile (obj_file=..., debug_dir=..., sym_file=0x7ffff76a1260)
at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc:712
module = {name_ = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x555555788108 "firefox"}}, os_ = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x555555788138 "Linux"}}, architecture_ = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x555555788198 "x86_64"}}, id_ = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x555555788258 "5D22B894777083103D31E72DB9C1F08E0"}},
load_address_ = 4194304, files_ = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const* const, google_breakpad::Module::File*> > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const* const, google_breakpad::Module::File*> > >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x555555799440, _M_left = 0x55555579b7f0, _M_right = 0x55555579ac80}, _M_node_count = 42}}}, functions_ = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<google_breakpad::Module::Function*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<google_breakpad::Module::Function*> >> = {<No data fields>}, <No data fields>}, _M_key_compare = {<No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x555555799260, _M_left = 0x55555579acc0, _M_right = 0x5555557993e0}, _M_node_count = 3}}},
stack_frame_entries_ = {<std::_Vector_base<google_breakpad::Module::StackFrameEntry*, std::allocator<google_breakpad::Module::StackFrameEntry*> >> = {
_M_impl = {<std::allocator<google_breakpad::Module::StackFrameEntry*>> = {<__gnu_cxx::new_allocator<google_breakpad::Module::StackFrameEntry*>> = {<No data fields>}, <No data fields>},
_M_start = 0x0, _M_finish = 0x0, _M_end_of_storage = 0x0}}, <No data fields>}}
map_wrapper = {is_set_ = true, base_ = 0x7ffff7f5c000, size_ = 476754}
file_id = {path_ = "/home/chr1s/src/firefox/mozilla-beta/obj-x86_64-unknown-linux-gnu/dist/bin/firefox", '\000' <repeats 4013 times>}
architecture = 0x555555575e0f "x86_64"
os = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x555555788138 "Linux"}}
id = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x555555788258 "5D22B894777083103D31E72DB9C1F08E0"}}
info = {debug_dir_ = @0x7fffffffde00, debuglink_file_ = {static npos = <optimized out>,
_M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff7dc74d8 ""}}, has_loading_addr_ = false,
loading_addr_ = 4194304, loaded_file_ = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x555555788028 "/home/chr1s/src/firefox/mozilla-beta/obj-x86_64-unknown-linux-gnu/dist/bin/firefox"}}, loaded_sections_ = {_M_t = {
_M_impl = {<std::allocator<std::_Rb_tree_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<No data fields>}, <No data fields>},
_M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x5555557882b0, _M_left = 0x5555557882b0, _M_right = 0x5555557882b0}, _M_node_count = 1}}}}
elf_header = 0x7ffff7f5c000
identifier = "\224\270\"]pw\020\203=1\347-\271\301", <incomplete sequence \360\216>
big_endian = false
name = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x555555788108 "firefox"}}
#19 0x000055555555a0cf in main (argc=<optimized out>, argv=<optimized out>)
at /build/buildd/firefox-13.0~b4+build1/build-tree/mozilla/toolkit/crashreporter/google-breakpad/src/tools/linux/dump_syms/dump_syms.cc:49
binary = 0x7fffffffe2a6 "/home/chr1s/src/firefox/mozilla-beta/obj-x86_64-unknown-linux-gnu/dist/bin/firefox"
debug_dir = {static npos = <optimized out>, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff7dc74d8 ""}}
Unfortunately, valgrind is not much help by default because dump_syms is statically linked (so memcheck can't hook in to malloc / free). However, I can do a dynamic build in a PPA and get that build to crash locally. In this case, I see this in valgrind:
==965== Invalid read of size 8
==965== at 0x10F277: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear() (stl_list.h:358)
==965== by 0x121978: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::~_List_base() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x120441: std::list<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::~list() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x12047D: dwarf2reader::CompilationUnit::Abbrev::~Abbrev() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x12781C: void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x1260E5: void std::_Destroy_aux<false>::__destroy<dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x123A98: void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev*>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x122626: void std::_Destroy<dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev>(dwarf2reader::CompilationUnit::Abbrev*, dwarf2reader::CompilationUnit::Abbrev*, std::allocator<dwarf2reader::CompilationUnit::Abbrev>&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x122B1E: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_insert_aux(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x121BFB: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::push_back(dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x119E9A: dwarf2reader::CompilationUnit::ReadAbbrevs() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x11A7D9: dwarf2reader::CompilationUnit::Start() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x10FB10: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:282)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965== Address 0x5c1f660 is 0 bytes after a block of size 64 alloc'd
==965== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==965== by 0x126589: __gnu_cxx::new_allocator<dwarf2reader::CompilationUnit::Abbrev>::allocate(unsigned long, void const*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x124674: std::_Vector_base<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_allocate(unsigned long) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x122A42: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_insert_aux(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x121BFB: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::push_back(dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x119E9A: dwarf2reader::CompilationUnit::ReadAbbrevs() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x11A7D9: dwarf2reader::CompilationUnit::Start() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x10FB10: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:282)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965==
--965-- REDIR: 0x56b0d30 (__memmove_ssse3_back) redirected to 0x4c2cd20 (memcpy@GLIBC_2.2.5)
--965-- REDIR: 0x55f06e0 (__GI_memset) redirected to 0x4c2e080 (memset)
==965== Invalid free() / delete / delete[] / realloc()
==965== at 0x4C2A4BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==965== by 0x10F276: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear() (new_allocator.h:100)
==965== by 0x10F2B8: dwarf2reader::CompilationUnit::~CompilationUnit() (stl_list.h:401)
==965== by 0x10FB20: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:283)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965== Address 0x5c49a90 is 48 bytes inside a block of size 8,192 alloc'd
==965== at 0x4C2B1C7: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==965== by 0x126589: __gnu_cxx::new_allocator<dwarf2reader::CompilationUnit::Abbrev>::allocate(unsigned long, void const*) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x124674: std::_Vector_base<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_allocate(unsigned long) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x122A42: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::_M_insert_aux(__gnu_cxx::__normal_iterator<dwarf2reader::CompilationUnit::Abbrev*, std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> > >, dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x121BFB: std::vector<dwarf2reader::CompilationUnit::Abbrev, std::allocator<dwarf2reader::CompilationUnit::Abbrev> >::push_back(dwarf2reader::CompilationUnit::Abbrev const&) (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x119E9A: dwarf2reader::CompilationUnit::ReadAbbrevs() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x11A7D9: dwarf2reader::CompilationUnit::Start() (in /home/chr1s/Desktop/buildd-dyn-gcc4.7/dump_syms)
==965== by 0x10FB10: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:282)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965==
==965== Invalid read of size 8
==965== at 0x10F26F: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear() (list.tcc:74)
==965== by 0x10F2B8: dwarf2reader::CompilationUnit::~CompilationUnit() (stl_list.h:401)
==965== by 0x10FB20: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:283)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965== Address 0x5c4bf80 is 0 bytes inside a block of size 24 free'd
==965== at 0x4C2A4BC: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==965== by 0x10F276: std::_List_base<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm>, std::allocator<std::pair<dwarf2reader::DwarfAttribute, dwarf2reader::DwarfForm> > >::_M_clear() (new_allocator.h:100)
==965== by 0x10F2B8: dwarf2reader::CompilationUnit::~CompilationUnit() (stl_list.h:401)
==965== by 0x10FB20: (anonymous namespace)::LoadDwarf(std::string const&, Elf64_Ehdr const*, bool, google_breakpad::Module*) (dump_symbols.cc:283)
==965== by 0x10FE86: (anonymous namespace)::LoadSymbols(std::string const&, bool, Elf64_Ehdr*, bool, (anonymous namespace)::LoadSymbolsInfo*, google_breakpad::Module*) (dump_symbols.cc:559)
==965== by 0x110409: google_breakpad::WriteSymbolFile(std::string const&, std::string const&, _IO_FILE*) (dump_symbols.cc:712)
==965== by 0x10E0CE: main (dump_syms.cc:49)
==965==
I wonder if this is actually a STL issue
This bug was fixed in the package firefox - 13.0~b4+ build1- 0ubuntu4
--------------- build1- 0ubuntu4) quantal; urgency=low
firefox (13.0~b4+
* Shuffle the order of google- breakpad/ src/common/ dwarf/Makefile. in to fix a patches/ fix-makefile- substitution- bug.patch config/ mozconfig. in config/ branch. mk
variable substitution issue, which was causing some objects to be built with
the wrong compiler flags, resulting in dump_syms crashing (LP: #1002590)
- add debian/
* Build with --disable-methodjit on armel in quantal
- update debian/
* Turn crash reporter back on again
- update debian/
-- Chris Coulson <email address hidden> Tue, 22 May 2012 17:38:38 +0100