Re: luabind and g++ 4.7

[email protected] Fri, 6 Apr 2012 20:04:38 +0200 (CEST)
Newsgroups gmane.comp.lang.lua.bind.user
Message-ID <679375776.10654278.1333735478577.JavaMail.root@zimbra33-e6.priv.proxad.net>
Hi,

thanks for the information. What is a bit strange for me is that luabind needs
to be recompiled with g++ 4.7 (imagine if the debian distribution needs to 
maintain each package for each architecture and each compiler version :))
Anyway I will try this as soon as possible (I am currently using luabind
from my distribution).

----- Mail original -----
De: "Ryan Pavlik" <[email protected]>
À: [email protected]
Envoyé: Jeudi 5 Avril 2012 19:56:16
Objet: Re: [luabind] luabind and g++ 4.7


Also, make sure you're using a branch that has the "cast_graph bug" fixed - I know at least mine does, and I think upstream master does too. 


On Thu, Apr 5, 2012 at 3:43 AM, Nigel J Atkinson < [email protected] > wrote: 


Just something off the top of my head, but make sure that you compile *everything* with g++ 4.7 and see if that fixes it. 

I've previously had issues with a program compiled with 4.4 but Luabind compiled with 4.3 

Nigel 




On 05/04/2012, at 6:25 PM, [email protected] wrote: 

> 
> Hi, 
> 
> thanks for the answer. Sorry for the so few details and so vague message last 
> time. Here are more details. 
> 
> Compilation works fine under both versions of compilers (CXX exported to the 
> correct g++ file). 
> The program crashes when running after being compiled with g++ 4.7. 
> Here below a backtrace. 
> 
> But what's annoying me here is that gdb uses the wrong files (here files from 
> g++ 4.6 whereas the program was _really_ compiled with g++ 4.7). 
> 
> Program received signal SIGSEGV, Segmentation fault. 
> [Switching to Thread 0x7fffe2742700 (LWP 27305)] 
> _M_lower_bound (__y=<optimized out>, __k=..., __x=0x407, this=<optimized out>) 
> at /usr/include/c++/4.6/bits/stl_tree.h:1096 
> warning: Source file is more recent than executable. 
> 1096 
> (gdb) bt 
> #0 _M_lower_bound (__y=<optimized out>, __k=..., __x=0x407, this=<optimized out>) 
> at /usr/include/c++/4.6/bits/stl_tree.h:1096 
> #1 find (__k=..., this=0x7fffe27410e8) at /usr/include/c++/4.6/bits/stl_tree.h:1539 
> #2 find (__x=..., this=0x7fffe27410e8) at /usr/include/c++/4.6/bits/stl_map.h:752 
> #3 get (object_offset=-6846562, dynamic_id=6, target=6, src=6896208, this=0x7fffe27410e8) at src/inheritance.cpp:87 
> #4 luabind::detail::cast_graph::impl::cast (this=0x7fffe27410d0, p=0x687868, src=6896208, target=6, dynamic_id=6, 
> dynamic_ptr=<optimized out>) at src/inheritance.cpp:152 
> #5 0x00007ffff799f66c in luabind::detail::cast_graph::cast (this=<optimized out>, p=<optimized out>, 
> src=<optimized out>, target=<optimized out>, dynamic_id=<optimized out>, dynamic_ptr=<optimized out>) 
> at src/inheritance.cpp:227 
> #6 0x000000000043b6c1 in luabind::detail::pointer_holder<game::ServerMonster*, void const>::get (this=0x696ba0, 
> target=6) at /usr/include/luabind/detail/instance_holder.hpp:109 
> #7 0x0000000000423997 in luabind::detail::object_rep::get_instance (this=0x6939f8, target=6) 
> at /usr/include/luabind/detail/object_rep.hpp:59 
> #8 0x000000000044015b in luabind::detail::const_ref_converter::match<game::ServerMonster> (this=0x7fffe2741140, 
> L=0x6859f0, index=1) at /usr/include/luabind/detail/policy.hpp:450 
> #9 0x0000000000440494 in luabind::detail::invoke_member<game::MonsterState (game::ServerMonster::*)() const, boost::mpl::vector2<game::MonsterState, game::ServerMonster const&>, luabind::detail::null_type> (L=0x6859f0, self=..., ctx=..., f= 
> @0x692790: (game::MonsterState (game::ServerMonster::*)(const game::ServerMonster * const)) 0x432bd8 <game::ServerMonster::GetState() const>) at /usr/include/luabind/detail/call.hpp:257 
> #10 0x000000000043fe9c in luabind::detail::invoke0<game::MonsterState (game::ServerMonster::*)() const, boost::mpl::vector2<game::MonsterState, game::ServerMonster const&>, luabind::detail::null_type, boost::is_void<game::MonsterState> > ( 
> L=0x6859f0, self=..., ctx=..., f= 
> @0x692790: (game::MonsterState (game::ServerMonster::*)(const game::ServerMonster * const)) 0x432bd8 <game::ServerMonster::GetState() const>, policies=...) at /usr/include/luabind/detail/call.hpp:78 
> #11 0x000000000043e945 in luabind::detail::invoke<game::MonsterState (game::ServerMonster::*)() const, boost::mpl::vector2<game::MonsterState, game::ServerMonster const&>, luabind::detail::null_type> (L=0x6859f0, self=..., ctx=..., f= 
> @0x692790: (game::MonsterState (game::ServerMonster::*)(const game::ServerMonster * const)) 0x432bd8 <game::ServerMonster::GetState() const>, policies=...) at /usr/include/luabind/detail/call.hpp:101 
> #12 0x000000000043e12e in luabind::detail::function_object_impl<game::MonsterState (game::ServerMonster::*)() const, boost::mpl::vector2<game::MonsterState, game::ServerMonster const&>, luabind::detail::null_type>::entry_point (L=0x6859f0) 
> at /usr/include/luabind/make_function.hpp:63 
> #13 0x00007ffff7bb5e2b in luaD_precall () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #14 0x00007ffff7bb60c1 in luaD_call () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #15 0x00007ffff7bb0279 in lua_call () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #16 0x00007ffff79a02d1 in get_instance_value (L=0x6859f0) at src/object_rep.cpp:165 
> #17 luabind::detail::(anonymous namespace)::get_instance_value (L=0x6859f0) at src/object_rep.cpp:148 
> #18 0x00007ffff7bb5e2b in luaD_precall () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #19 0x00007ffff7bb60c1 in luaD_call () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #20 0x00007ffff7bc2df4 in callTMres () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #21 0x00007ffff7bc30fc in luaV_gettable () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> ---Type <return> to continue, or q <return> to quit--- 
> #22 0x00007ffff7bc4384 in luaV_execute () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #23 0x00007ffff7bb60d6 in luaD_call () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #24 0x00007ffff7bb02e3 in f_call () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #25 0x00007ffff7bb508f in luaD_rawrunprotected () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #26 0x00007ffff7bb64f5 in luaD_pcall () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #27 0x00007ffff7bb038d in lua_pcall () from /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 
> #28 0x0000000000434f6d in luabind::detail::proxy_function_void_caller<boost::tuples::tuple<boost::reference_wrapper<game::ServerMonster> const*, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::~proxy_function_void_caller (this=0x7fffe2741ca0, __in_chrg=<optimized out>) 
> at /usr/include/luabind/detail/call_function.hpp:262 
> #29 0x00000000004323f4 in game::ServerMonster::Update (this=0x693a50) at server_monster.cc:78 
> #30 0x0000000000433e57 in game::MonsterArea::Update (this=0x693460, time=1333612531, dt=3.719329833984375e-05) 
> at server_monster.cc:469 
> #31 0x0000000000448867 in game::MonsterManager::Run (this=0x66cde0) at server.cc:127 
> #32 0x00007fffe4641cee in mel::layers::threads::ThreadFunc (th=0x66cde0) at pthreads.cc:99 
> #33 0x00007fffe34c8b50 in start_thread (arg=<optimized out>) at pthread_create.c:304 
> #34 0x00007fffe3abd90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 
> #35 0x0000000000000000 in ?? () 
> 
> 
> ----- Mail original ----- 
> De: "Ryan Pavlik" < [email protected] > 
> À: [email protected] 
> Envoyé: Jeudi 5 Avril 2012 00:33:46 
> Objet: Re: [luabind] luabind and g++ 4.7 
> 
> 
> Unfortunately this isn't very much information to go on. Does it fail at compile time or runtime? Are any warnings or error messages printed? 
> 
> 
> Ryan 
> 
> 
> On Wed, Apr 4, 2012 at 10:19 AM, < [email protected] > wrote: 
> 
> 
> 
> Hello, 
> 
> my program using luabind stopped to work when compiled with g++ 4.7. 
> If I switch back to g++ 4.6 it works again. 
> 
> Is it a know issue ? 
> 
> For the moment it is not easy for me to know where exactly the thing 
> hurts. 
> 
> Regards, 
> 
> dAgeCKo 
> 
> ------------------------------------------------------------------------------ 
> Better than sec? Nothing is better than sec when it comes to 
> monitoring Big Data applications. Try Boundary one-second 
> resolution app monitoring today. Free. 
> http://p.sf.net/sfu/Boundary-dev2dev 
> _______________________________________________ 
> luabind-user mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/luabind-user 
> 
> 
> 
> 
> -- 
> Ryan Pavlik 
> HCI Graduate Student 
> Virtual Reality Applications Center 
> Iowa State University 
> 
> [email protected] 
> http://academic.cleardefinition.com 
> 
> ------------------------------------------------------------------------------ 
> Better than sec? Nothing is better than sec when it comes to 
> monitoring Big Data applications. Try Boundary one-second 
> resolution app monitoring today. Free. 
> http://p.sf.net/sfu/Boundary-dev2dev 
> _______________________________________________ 
> luabind-user mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/luabind-user 
> 
> ------------------------------------------------------------------------------ 
> Better than sec? Nothing is better than sec when it comes to 
> monitoring Big Data applications. Try Boundary one-second 
> resolution app monitoring today. Free. 
> http://p.sf.net/sfu/Boundary-dev2dev 
> _______________________________________________ 
> luabind-user mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/luabind-user 


------------------------------------------------------------------------------ 
Better than sec? Nothing is better than sec when it comes to 
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free. 
http://p.sf.net/sfu/Boundary-dev2dev 
_______________________________________________ 
luabind-user mailing list 
[email protected] 
https://lists.sourceforge.net/lists/listinfo/luabind-user 




-- 
Ryan Pavlik 
HCI Graduate Student 
Virtual Reality Applications Center 
Iowa State University 

[email protected] 
http://academic.cleardefinition.com 

------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
luabind-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/luabind-user

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
luabind-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/luabind-user