[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-dev] 0.8.0 segfaults on FreeBSD
From: |
Dmitry Marakasov |
Subject: |
[Gnash-dev] 0.8.0 segfaults on FreeBSD |
Date: |
Wed, 8 Aug 2007 03:38:26 +0400 |
User-agent: |
Mutt/1.5.16 (2007-06-09) |
Hi!
I'm now in a process of updating gnash FreeBSD port to 0.8.0. I think
I overcame all configure problems and finally built Gnash, but the
problem is that it segfaults on any .swf file. I've only tried
standalone player (as it's easier to debug). The problem persists on all
gui/renderer/media handler combinations.
Some info on my system:
FreeBSD 6.1 i386, gcc 3.4.4, boost 1.34.0.
Some gdb output:
--- gnash.gdb.log begins here ---
(gdb) run /home/amdmi3/temp/antenna.swf
Starting program:
/usr/home/amdmi3/projects/ports/_updated/gnash/prefix/bin/gnash
/home/amdmi3/temp/antenna.swf
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
#0 0x00000000 in ?? ()
#1 0x2879e588 in boost::thread::thread () from
/usr/local/lib/libboost_thread.so
#2 0x282c94cb in gnash::MovieLoader::start (this=0x83a2b3c) at
movie_def_impl.cpp:125
#3 0x282cc5b9 in gnash::movie_def_impl::completeLoad (this=0x83a2a00) at
movie_def_impl.cpp:511
#4 0x2807fadb in gnash::Player::run (this=0xbfbfea10, argc=2, argv=0xbfbfea94,
infile=0xbfbfebec "/home/amdmi3/temp/antenna.swf", url=0x0) at Player.cpp:336
#5 0x0804b820 in main (argc=2, argv=0xbfbfea94) at gnash.cpp:374
(gdb) up
#1 0x2879e588 in boost::thread::thread () from
/usr/local/lib/libboost_thread.so
(gdb) up
#2 0x282c94cb in gnash::MovieLoader::start (this=0x83a2b3c) at
movie_def_impl.cpp:125
125 _thread = new boost::thread(boost::bind(execute, &_movie_def));
(gdb) print _movie_def
$1 = (class gnash::movie_def_impl &) @0x83a2a00: {
<gnash::movie_definition> = {
<> = {<No data fields>}, <No data fields>},
members of gnash::movie_def_impl:
_dictionary = {
_map = {
_M_t = {
_M_impl = {
<std::allocator<std::_Rb_tree_node<std::pair<const int,
boost::intrusive_ptr<gnash::character_def> > > >> = {
<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int,
boost::intrusive_ptr<gnash::character_def> > > >> = {<No data fields>}, <No
data fields>},
members of std::_Rb_tree<int,std::pair<const int,
boost::intrusive_ptr<gnash::character_def> >,std::_Select1st<std::pair<const
int, boost::intrusive_ptr<gnash::character_def> >
>,std::less<int>,std::allocator<std::pair<const int,
boost::intrusive_ptr<gnash::character_def> > > >::_Rb_tree_impl<std::less<int>,
false>:
_M_key_compare = {
<std::binary_function<int,int,bool>> = {<No data fields>}, <No data
fields>},
_M_header = {
_M_color = std::_S_red,
_M_parent = 0x0,
_M_left = 0x83a2a14,
_M_right = 0x83a2a14
},
_M_node_count = 0
}
}
}
},
_tag_loaders = @0x2839c180,
m_fonts = {
_M_t = {
_M_impl = {
<std::allocator<std::_Rb_tree_node<std::pair<const int,
boost::intrusive_ptr<gnash::font> > > >> = {
<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int,
boost::intrusive_ptr<gnash::font> > > >> = {<No data fields>}, <No data
fields>},
members of std::_Rb_tree<int,std::pair<const int,
boost::intrusive_ptr<gnash::font> >,std::_Select1st<std::pair<const int,
boost::intrusive_ptr<gnash::font> >
>,std::less<int>,std::allocator<std::pair<const int,
boost::intrusive_ptr<gnash::font> > > >::_Rb_tree_impl<std::less<int>, false>:
_M_key_compare = {
<std::binary_function<int,int,bool>> = {<No data fields>}, <No data
fields>},
_M_header = {
_M_color = std::_S_red,
_M_parent = 0x0,
_M_left = 0x83a2a30,
_M_right = 0x83a2a30
},
_M_node_count = 0
}
}
},
m_bitmap_characters = {
---Type <return> to continue, or q <return> to quit---
_M_t = {
_M_impl = {
<std::allocator<std::_Rb_tree_node<std::pair<const int,
boost::intrusive_ptr<gnash::bitmap_character_def> > > >> = {
<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int,
boost::intrusive_ptr<gnash::bitmap_character_def> > > >> = {<No data fields>},
<No data fields>},
members of std::_Rb_tree<int,std::pair<const int,
boost::intrusive_ptr<gnash::bitmap_character_def>
>,std::_Select1st<std::pair<const int,
boost::intrusive_ptr<gnash::bitmap_character_def> >
>,std::less<int>,std::allocator<std::pair<const int,
boost::intrusive_ptr<gnash::bitmap_character_def> > >
>::_Rb_tree_impl<std::less<int>, false>:
_M_key_compare = {
<std::binary_function<int,int,bool>> = {<No data fields>}, <No data
fields>},
_M_header = {
_M_color = std::_S_red,
_M_parent = 0x0,
_M_left = 0x83a2a48,
_M_right = 0x83a2a48
},
_M_node_count = 0
}
}
},
m_sound_samples = {
_M_t = {
_M_impl = {
<std::allocator<std::_Rb_tree_node<std::pair<const int,
boost::intrusive_ptr<gnash::sound_sample> > > >> = {
<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const int,
boost::intrusive_ptr<gnash::sound_sample> > > >> = {<No data fields>}, <No data
fields>},
members of std::_Rb_tree<int,std::pair<const int,
boost::intrusive_ptr<gnash::sound_sample> >,std::_Select1st<std::pair<const
int, boost::intrusive_ptr<gnash::sound_sample> >
>,std::less<int>,std::allocator<std::pair<const int,
boost::intrusive_ptr<gnash::sound_sample> > > >::_Rb_tree_impl<std::less<int>,
false>:
_M_key_compare = {
<std::binary_function<int,int,bool>> = {<No data fields>}, <No data
fields>},
_M_header = {
_M_color = std::_S_red,
_M_parent = 0x0,
_M_left = 0x83a2a60,
_M_right = 0x83a2a60
},
_M_node_count = 0
}
}
},
m_playlist = {
<std::_Vector_base<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*>
>,std::allocator<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*> > > >> = {
_M_impl = {
<std::allocator<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*> > >> = {
<__gnu_cxx::new_allocator<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*> > >> = {<No data fields>}, <No data
fields>},
members of std::_Vector_base<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*>
>,std::allocator<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*> > > >::_Vector_impl:
_M_start = 0x8206e00,
_M_finish = 0x8206e18,
---Type <return> to continue, or q <return> to quit---
_M_end_of_storage = 0x8206e18
}
}, <No data fields>},
m_init_action_list = {
<std::_Vector_base<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*>
>,std::allocator<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*> > > >> = {
_M_impl = {
<std::allocator<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*> > >> = {
<__gnu_cxx::new_allocator<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*> > >> = {<No data fields>}, <No data
fields>},
members of std::_Vector_base<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*>
>,std::allocator<std::vector<gnash::execute_tag*,
std::allocator<gnash::execute_tag*> > > >::_Vector_impl:
_M_start = 0x8206e20,
_M_finish = 0x8206e38,
_M_end_of_storage = 0x8206e38
}
}, <No data fields>},
m_named_frames = {
_M_t = {
_M_impl = {
<std::allocator<std::_Rb_tree_node<std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >, size_t>
> >> = {
<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >, size_t>
> >> = {<No data fields>}, <No data fields>},
members of std::_Rb_tree<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
size_t>,std::_Select1st<std::pair<const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, size_t>
>,std::less<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > >,std::allocator<std::pair<const std::basic_string<char,
std::char_traits<char>, std::allocator<char> >, size_t> >
>::_Rb_tree_impl<std::less<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, false>:
_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 = 0x0,
_M_left = 0x83a2a90,
_M_right = 0x83a2a90
},
_M_node_count = 0
}
}
},
m_exports = {
_M_t = {
_M_impl = {
<std::allocator<std::_Rb_tree_node<std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
boost::intrusive_ptr<gnash::resource> > > >> = {
<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
boost::intrusive_ptr<gnash::resource> > > >> = {<No data fields>}, <No data
fields>},
members of std::_Rb_tree<std::basic_string<char,
std::char_traits<char>, std::allocator<char> >,std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
boost::intrusive_ptr<gnash::resource> >,std::_Select1st<std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
boost::intrusive_ptr<gnash::resource> > >,std::less<std::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,std::allocator<std::pair<const
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
boost::intrusive_ptr<gnash::resource> > >
>::_Rb_tree_impl<std::less<std::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, false>:
---Type <return> to continue, or q <return> to quit---
_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 = 0x0,
_M_left = 0x83a2aa8,
_M_right = 0x83a2aa8
},
_M_node_count = 0
}
}
},
m_imports = {
<std::_Vector_base<gnash::import_info,std::allocator<gnash::import_info> >>
= {
_M_impl = {
<std::allocator<gnash::import_info>> = {
<__gnu_cxx::new_allocator<gnash::import_info>> = {<No data fields>},
<No data fields>},
members of
std::_Vector_base<gnash::import_info,std::allocator<gnash::import_info>
>::_Vector_impl:
_M_start = 0x0,
_M_finish = 0x0,
_M_end_of_storage = 0x0
}
}, <No data fields>},
m_import_source_movies = {
<std::_Vector_base<boost::intrusive_ptr<gnash::movie_definition>,std::allocator<boost::intrusive_ptr<gnash::movie_definition>
> >> = {
_M_impl = {
<std::allocator<boost::intrusive_ptr<gnash::movie_definition> >> = {
<__gnu_cxx::new_allocator<boost::intrusive_ptr<gnash::movie_definition> >> =
{<No data fields>}, <No data fields>},
members of
std::_Vector_base<boost::intrusive_ptr<gnash::movie_definition>,std::allocator<boost::intrusive_ptr<gnash::movie_definition>
> >::_Vector_impl:
_M_start = 0x0,
_M_finish = 0x0,
_M_end_of_storage = 0x0
}
}, <No data fields>},
m_bitmap_list = {
<std::_Vector_base<boost::intrusive_ptr<gnash::bitmap_info>,std::allocator<boost::intrusive_ptr<gnash::bitmap_info>
> >> = {
_M_impl = {
<std::allocator<boost::intrusive_ptr<gnash::bitmap_info> >> = {
<__gnu_cxx::new_allocator<boost::intrusive_ptr<gnash::bitmap_info> >>
= {<No data fields>}, <No data fields>},
members of
std::_Vector_base<boost::intrusive_ptr<gnash::bitmap_info>,std::allocator<boost::intrusive_ptr<gnash::bitmap_info>
> >::_Vector_impl:
_M_start = 0x0,
_M_finish = 0x0,
_M_end_of_storage = 0x0
}
}, <No data fields>},
---Type <return> to continue, or q <return> to quit---
m_create_bitmaps = gnash::DO_LOAD_BITMAPS,
m_create_font_shapes = gnash::DO_LOAD_FONT_SHAPES,
m_frame_size = {
_range = {
_xmin = 0,
_xmax = 9000,
_ymin = 0,
_ymax = 7120
}
},
m_frame_rate = 25,
m_frame_count = 1,
m_version = 7,
_frames_loaded = 0,
_frames_loaded_mutex = {
<boost::noncopyable_::noncopyable> = {<No data fields>},
members of boost::mutex:
m_mutex = 0x0
},
_frame_reached_condition = {
<boost::noncopyable_::noncopyable> = {<No data fields>},
members of boost::condition:
m_impl = {
<boost::noncopyable_::noncopyable> = {<No data fields>},
members of boost::detail::condition_impl:
m_condition = 0x0
}
},
_waiting_for_frame = 0,
_bytes_loaded = 21,
_bytes_loaded_mutex = {
<boost::noncopyable_::noncopyable> = {<No data fields>},
members of boost::mutex:
m_mutex = 0x0
},
m_loading_sound_stream = 0,
m_file_length = 45862,
m_jpeg_in = {
_M_ptr = 0x0
},
_url = {
static npos = 4294967295,
_M_dataplus = {
<std::allocator<char>> = {
<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data
fields>},
members of
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>::_Alloc_hider:
---Type <return> to continue, or q <return> to quit---
_M_p = 0x81b3b8c "/home/amdmi3/temp/antenna.swf"
}
},
_str = {
_M_ptr = 0x8206de0
},
_in = {
_M_ptr = 0x81b3bc0
},
_swf_end_pos = 45862,
_loader = {
_movie_def = @0x83a2a00,
_mutex = {
<boost::noncopyable_::noncopyable> = {<No data fields>},
members of boost::mutex:
m_mutex = 0x0
},
_thread = 0x0
},
_timeline = {
_frameDepths = {
<std::_Vector_base<std::set<int, std::less<int>, std::allocator<int>
>,std::allocator<std::set<int, std::less<int>, std::allocator<int> > > >> = {
_M_impl = {
<std::allocator<std::set<int, std::less<int>, std::allocator<int> >
>> = {
<__gnu_cxx::new_allocator<std::set<int, std::less<int>,
std::allocator<int> > >> = {<No data fields>}, <No data fields>},
members of std::_Vector_base<std::set<int, std::less<int>,
std::allocator<int> >,std::allocator<std::set<int, std::less<int>,
std::allocator<int> > > >::_Vector_impl:
_M_start = 0x8206dc0,
_M_finish = 0x8206dd8,
_M_end_of_storage = 0x8206dd8
}
}, <No data fields>},
_frameDepthsMutex = {
<boost::noncopyable_::noncopyable> = {<No data fields>},
members of boost::mutex:
m_mutex = 0x0
}
}
}
(gdb)
--- gnash.gdb.log ends here ---
Thanks for your help.
--
Best regards,
Dmitry Marakasov mailto:address@hidden
- [Gnash-dev] 0.8.0 segfaults on FreeBSD,
Dmitry Marakasov <=