gnash-dev
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]