[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows
From: |
Ronald Lamprecht |
Subject: |
Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows |
Date: |
Thu, 29 Jun 2006 17:35:46 +0200 |
User-agent: |
Mozilla Thunderbird 1.0.7 (Windows/20050923) |
Hi,
Daniel Heck schrieb:
It would also explain the consistancy. The quickest way to tell is to
use --disable-nls.
I tested that. Besides a few small tweaks that are needed to make it
compile
using with that, it worked.
The resulting exe also crashed.
So my next guess is an uncaught C++ exception.
A few weeks ago I managed to compile Enigma using the Visual Studio Express. I
have not checked in all the changes that were necessary, but I can try to
reproduce this error to see if it is actually a mingw bug. I will be back in
Germany on Saturday, so maybe I can take a look at it during the weekend.
This crosscheck would be helpfull.
Meanwhile I succeeded in running Enigma on Windows under the control of
gdb (still just with the commandline interface).
I examined the switch callback function situation with a call of
enigma.GetAttrib(sender, "notexisting")
Please find attached the backtrace and a step protocol that starts after
world.cc 1405 called lua::CallFunc at the end of processing
lua.cc 664.
The segmentation fault occurs at
luaO_pushvfstring (L=0x5d03c48, fmt=0x878103 "%s:%d: ", argp=0x22eb90 "(£}")
at lobject.c:166
somewhere in the lua error handling routines where Lua reallocs memory
and handles strings.
At least in this case it looks like a serious bug in Lua that happens to
show up by chance only on Windows.
@Tacvek - can you read more out of the step protocol? Can you
communicate this problem to the Lua community?
- Ronald
Switch Callback with notexisting attribute call.
(gdb) backtrace
#0 0x778b7e75 in ?? ()
#1 0x0070ca9c in _Unwind_SjLj_RaiseException ()
#2 0x00702b75 in __cxa_throw ()
#3 0x0049a717 in world::PerformAction(world::Object*, bool) (o=0x5f10e10,
onoff=true) at world.cc:1406
#4 0x0077ec8e in (anonymous namespace)::SwitchStone::set_on(bool) (
this=0x5f10e10, newon=true) at st_switches.cc:61
#5 0x0077ecf3 in (anonymous
namespace)::SwitchStone::actor_hit(world::StoneContact const&) (this=0x5f10e10)
at st_switches.cc:49
#6 0x00496b06 in world::World::handle_stone_contact(world::StoneContact&) (
this=0x5e3e508, address@hidden) at world.cc:823
#7 0x0049779a in world::World::handle_contacts(unsigned) (this=0x5e3e508,
actoridx=0) at world.cc:941
#8 0x00497acc in world::World::move_actors(double) (this=0x5e3e508,
dtime=0.01) at world.cc:978
#9 0x00495420 in world::World::tick(double) (this=0x5e3e508, dtime=0.01)
at world.cc:503
#10 0x0049c4fd in world::Tick(double) (dtime=0.01) at world.cc:1754
#11 0x0046d3e4 in gametick(double) (dtime=0.01) at server.cc:172
#12 0x0046dffd in enigma_server::Tick(double) (dtime=0.01) at server.cc:293
#13 0x00429e52 in enigma_game::StartGame(enigma_levels::LevelPack*, unsigned) (
lp=0x395e2b0, ilevel=8) at game.cc:90
#14 0x004bb7bd in enigma::gui::LevelMenu::on_action(enigma::gui::Widget*) (
this=0x22fa40, w=0x5e227a8) at gui/LevelMenu.cc:207
#15 0x004bfec0 in enigma::gui::LevelWidget::trigger_action() (this=0x5e227a8)
at gui/LevelWidget.cc:250
#16 0x004c1b32 in enigma::gui::LevelWidget::handle_mousedown(SDL_Event const*)
(this=0x5e227a8, e=0x22f9b0) at gui/LevelWidget.cc:589
#17 0x004c17e2 in enigma::gui::LevelWidget::on_event(SDL_Event const&) (
this=0x5e227a8, address@hidden) at gui/LevelWidget.cc:562
#18 0x004bb66b in enigma::gui::LevelMenu::on_event(SDL_Event const&) (
this=0x22fa40, address@hidden) at gui/LevelMenu.cc:174
#19 0x004c6319 in enigma::gui::Menu::handle_event(SDL_Event const&) (
this=0x22fa40, address@hidden) at gui/Menu.cc:115
#20 0x004c5eba in enigma::gui::Menu::manage() (this=0x22fa40) at gui/Menu.cc:69
#21 0x004c3c3d in enigma::gui::MainMenu::on_action(enigma::gui::Widget*) (
this=0x22fd10, w=0x5da87b0) at gui/MainMenu.cc:171
#22 0x004d0a4c in enigma::gui::Widget::invoke_listener() (this=0x5da87b0)
at gui/widgets.cc:59
#23 0x004d3326 in enigma::gui::PushButton::on_event(SDL_Event const&) (
this=0x5da87b0, address@hidden) at gui/widgets.cc:576
#24 0x004c64c6 in enigma::gui::Menu::handle_event(SDL_Event const&) (
this=0x22fd10, address@hidden) at gui/Menu.cc:145
#25 0x004c5eba in enigma::gui::Menu::manage() (this=0x22fd10) at gui/Menu.cc:69
#26 0x004c5a8a in enigma::gui::ShowMainMenu() () at gui/MainMenu.cc:408
#27 0x00455bc1 in SDL_main (argc=1, argv=0x22fe70) at main.cc:634
#28 0x006ff590 in console_main (argc=1, argv=0x22fe70)
at win32/SDL_win32_main.c:249
#29 0x006ff755 in WinMain (hInst=0x400000, hPrev=0x0, szCmdLine=0x233159 "",
sw=10) at win32/SDL_win32_main.c:361
#30 0x006ff08a in main ()
(gdb)
Stepprotcol:
starts after world.cc 1405 called lua::CallFunc at the end of processing
lua.cc 664
[...]
458 if (ttisstring(gkey(n)) && rawtsvalue(gkey(n)) == key)
(gdb)
463 }
(gdb)
luaH_get (t=0x5c227e8, key=0x22ef00) at ltable.c:491
491 }
(gdb)
luaV_gettable (L=0x5d03c48, t=0x5d03c90, key=0x22ef00, val=0x5ceb210)
at lvm.c:117
117 if (!ttisnil(res) || /* result is no nil? */
(gdb)
119 setobj2s(L, val, res);
(gdb)
133 }
(gdb)
lua_getfield (L=0x5d03c48, idx=-10002, k=0x5d13e34 "test") at lapi.c:545
545 api_incr_top(L);
(gdb)
546 lua_unlock(L);
(gdb)
lua::CallFunc(lua_State*, char const*, enigma::Value const&, world::Object*) (
L=0x5d03c48, funcname=0x5d13e34 "test", address@hidden, obj=0x5d13b90)
at lua.cc:665
665 push_value(L, arg);
Current language: auto; currently c++
(gdb)
push_value(lua_State*, enigma::Value const&) (L=0x5d03c48, address@hidden)
at lua.cc:108
108 switch (val.get_type()) {
(gdb)
enigma::Value::get_type() const (this=0x22f030) at enigma.hh:141
141 Type get_type() const { return type; }
(gdb)
push_value(lua_State*, enigma::Value const&) (L=0x5d03c48, address@hidden)
at lua.cc:110
110 case Value::DOUBLE: lua_pushnumber(L, to_double(val)); break;
(gdb)
enigma::to_double(enigma::Value const&) (address@hidden) at enigma.cc:228
228 switch (v.get_type()) {
(gdb)
enigma::Value::get_type() const (this=0x22f030) at enigma.hh:141
141 Type get_type() const { return type; }
(gdb)
enigma::to_double(enigma::Value const&) (address@hidden) at enigma.cc:229
229 case Value::DOUBLE: return v.get_double();
(gdb)
enigma::Value::get_double() const (this=0x22f030) at enigma.cc:155
155 assert(type == DOUBLE);
(gdb)
156 return val.dval;
(gdb)
157 }
(gdb)
enigma::to_double(enigma::Value const&) (address@hidden) at enigma.cc:233
233 }
(gdb)
lua_pushnumber (L=0x5d03c48, n=1) at lapi.c:422
422 LUA_API void lua_pushnumber (lua_State *L, lua_Number n) {
Current language: auto; currently c
(gdb)
424 setnvalue(L->top, n);
(gdb)
425 api_incr_top(L);
(gdb)
424 setnvalue(L->top, n);
(gdb)
426 lua_unlock(L);
(gdb)
push_value(lua_State*, enigma::Value const&) (L=0x5d03c48, address@hidden)
at lua.cc:113
113 }
Current language: auto; currently c++
(gdb)
lua::CallFunc(lua_State*, char const*, enigma::Value const&, world::Object*) (
L=0x5d03c48, funcname=0x5d13e34 "test", address@hidden, obj=0x5d13b90)
at lua.cc:666
666 pushobject(L, obj);
(gdb)
pushobject(lua_State*, world::Object*) (L=0x5d03c48, obj=0x5d13b90)
at lua.cc:153
153 if (obj == 0)
(gdb)
157 udata=(Object**)lua_newuserdata(L,sizeof(int));
(gdb)
lua_newuserdata (L=0x5d03c48, size=4) at lapi.c:1015
1015 LUA_API void *lua_newuserdata (lua_State *L, size_t size) {
Current language: auto; currently c
(gdb)
1018 luaC_checkGC(L);
(gdb)
1019 u = luaS_newudata(L, size, getcurrenv(L));
(gdb)
getcurrenv (L=0x5d03c48) at lapi.c:79
79 static Table *getcurrenv (lua_State *L) {
(gdb)
80 if (L->ci == L->base_ci) /* no enclosing function? */
(gdb)
79 static Table *getcurrenv (lua_State *L) {
(gdb)
getcurrenv (L=0x5d03c48) at lapi.c:80
80 if (L->ci == L->base_ci) /* no enclosing function? */
(gdb)
getcurrenv (L=0x5d03c48) at lapi.c:81
81 return hvalue(gt(L)); /* use global table as environment */
(gdb)
86 }
(gdb)
luaS_newudata (L=0x5d03c48, s=4, e=0x5c227e8) at lstring.c:96
96 Udata *luaS_newudata (lua_State *L, size_t s, Table *e) {
(gdb)
98 if (s > MAX_SIZET - sizeof(Udata))
(gdb)
100 u = cast(Udata *, luaM_malloc(L, s + sizeof(Udata)));
(gdb)
luaM_realloc_ (L=0x5d03c48, block=0x0, osize=0, nsize=28) at lmem.c:77
77 global_State *g = G(L);
(gdb)
76 void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t
nsize) {
(gdb)
77 global_State *g = G(L);
(gdb)
79 block = (*g->frealloc)(g->ud, block, osize, nsize);
(gdb)
l_alloc (ud=0x0, ptr=0x0, osize=0, nsize=28) at lauxlib.c:622
622 static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
(gdb)
625 if (nsize == 0) {
(gdb)
630 return realloc(ptr, nsize);
(gdb)
631 }
(gdb)
l_alloc (ud=0x5d03c48, ptr=0x0, osize=0, nsize=28) at lauxlib.c:630
630 return realloc(ptr, nsize);
(gdb)
luaM_realloc_ (L=0x5d03c48, block=0x0, osize=0, nsize=28) at lmem.c:80
80 if (block == NULL && nsize > 0)
(gdb)
79 block = (*g->frealloc)(g->ud, block, osize, nsize);
(gdb)
80 if (block == NULL && nsize > 0)
(gdb)
83 g->totalbytes = (g->totalbytes - osize) + nsize;
(gdb)
85 }
(gdb)
luaS_newudata (L=0x5d03c48, s=4, e=0x5c227e8) at lstring.c:101
101 u->uv.marked = luaC_white(G(L)); /* is not finalized */
(gdb)
102 u->uv.tt = LUA_TUSERDATA;
(gdb)
103 u->uv.len = s;
(gdb)
104 u->uv.metatable = NULL;
(gdb)
101 u->uv.marked = luaC_white(G(L)); /* is not finalized */
(gdb)
105 u->uv.env = e;
(gdb)
107 u->uv.next = G(L)->mainthread->next;
(gdb)
108 G(L)->mainthread->next = obj2gco(u);
(gdb)
110 }
(gdb)
lua_newuserdata (L=0x5d03c48, size=4) at lapi.c:1020
1020 setuvalue(L, L->top, u);
(gdb)
1023 return u + 1;
(gdb)
1021 api_incr_top(L);
(gdb)
1020 setuvalue(L, L->top, u);
(gdb)
1024 }
(gdb)
pushobject(lua_State*, world::Object*) (L=0x5d03c48, obj=0x5d13b90)
at lua.cc:158
158 *udata=obj;
Current language: auto; currently c++
(gdb)
159 luaL_getmetatable(L, "_ENIGMAOBJECT");
(gdb)
lua_getfield (L=0x5d03c48, idx=-10000, k=0x86cb11 "_ENIGMAOBJECT")
at lapi.c:541
541 t = index2adr(L, idx);
Current language: auto; currently c
(gdb)
537 LUA_API void lua_getfield (lua_State *L, int idx, const char *k) {
(gdb)
541 t = index2adr(L, idx);
(gdb)
index2adr (L=0x22ffe0, idx=-10000) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
56 else if (idx > LUA_REGISTRYINDEX) {
(gdb)
60 else switch (idx) { /* pseudo-indices */
(gdb)
61 case LUA_REGISTRYINDEX: return registry(L);
(gdb)
76 }
(gdb)
index2adr (L=0x5d03c48, idx=97533120) at lapi.c:61
61 case LUA_REGISTRYINDEX: return registry(L);
(gdb)
76 }
(gdb)
lua_getfield (L=0x5d03c48, idx=-10000, k=0x86cb11 "_ENIGMAOBJECT")
at lapi.c:543
543 setsvalue(L, &key, luaS_new(L, k));
(gdb)
541 t = index2adr(L, idx);
(gdb)
543 setsvalue(L, &key, luaS_new(L, k));
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x86cb11 "_ENIGMAOBJECT", l=13) at lstring.c:77
77 unsigned int h = cast(unsigned int, l); /* seed */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
78 size_t step = (l>>5)+1; /* if string is too long, don't hash all its
chars */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb) 81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb) 81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb) 81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb) 81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb) 81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb) 81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
82 for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)];
(gdb)
86 if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) {
(gdb)
88 if (isdead(G(L), o)) changewhite(o);
(gdb)
93 }
(gdb)
51 unsigned int h) {
(gdb)
93 }
(gdb)
lua_getfield (L=0x5d03c48, idx=-10000, k=0x86cb11 "_ENIGMAOBJECT")
at lapi.c:544
544 luaV_gettable(L, t, &key, L->top);
(gdb)
543 setsvalue(L, &key, luaS_new(L, k));
(gdb)
544 luaV_gettable(L, t, &key, L->top);
(gdb)
luaV_gettable (L=0x994b7a88, t=0x5d03d20, key=0x5d03cc0, val=0x5c227e8)
at lvm.c:112
112 for (loop = 0; loop < MAXTAGLOOP; loop++) {
(gdb)
110 void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId
val) {
(gdb)
114 if (ttistable(t)) { /* `t' is a table? */
(gdb)
115 Table *h = hvalue(t);
(gdb)
116 const TValue *res = luaH_get(h, key); /* do a primitive get */
(gdb)
luaH_get (t=0x5c22858, key=0x22eee0) at ltable.c:469
469 const TValue *luaH_get (Table *t, const TValue *key) {
(gdb)
470 switch (ttype(key)) {
(gdb)
472 case LUA_TSTRING: return luaH_getstr(t, rawtsvalue(key));
(gdb)
luaH_getstr (t=0x5c22858, key=0x22eee0) at ltable.c:455
455 const TValue *luaH_getstr (Table *t, TString *key) {
(gdb)
456 Node *n = hashstr(t, key);
(gdb)
455 const TValue *luaH_getstr (Table *t, TString *key) {
(gdb)
456 Node *n = hashstr(t, key);
(gdb)
458 if (ttisstring(gkey(n)) && rawtsvalue(gkey(n)) == key)
(gdb)
463 }
(gdb)
luaH_get (t=0x5c22858, key=0x22eee0) at ltable.c:491
491 }
(gdb)
luaV_gettable (L=0x5d03c48, t=0x5d03d20, key=0x22eee0, val=0x5ceb240)
at lvm.c:117
117 if (!ttisnil(res) || /* result is no nil? */
(gdb)
119 setobj2s(L, val, res);
(gdb)
133 }
(gdb)
lua_getfield (L=0x5d03c48, idx=-10000, k=0x86cb11 "_ENIGMAOBJECT")
at lapi.c:545
545 api_incr_top(L);
(gdb)
546 lua_unlock(L);
(gdb)
pushobject(lua_State*, world::Object*) (L=0x5d03c48, obj=0x5d13b90)
at lua.cc:160
160 lua_setmetatable(L, -2);
Current language: auto; currently c++
(gdb)
lua_setmetatable (L=0x5d03c48, objindex=-2) at lapi.c:695
695 obj = index2adr(L, objindex);
Current language: auto; currently c
(gdb)
690 LUA_API int lua_setmetatable (lua_State *L, int objindex) {
(gdb)
698 mt = NULL;
(gdb)
695 obj = index2adr(L, objindex);
(gdb)
index2adr (L=0x5, idx=-2) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
56 else if (idx > LUA_REGISTRYINDEX) {
(gdb)
58 return L->top + idx;
(gdb)
76 }
(gdb)
index2adr (L=0x5d03c48, idx=-32) at lapi.c:58
58 return L->top + idx;
(gdb)
76 }
(gdb)
lua_setmetatable (L=0x5d03c48, objindex=-2) at lapi.c:697
697 if (ttisnil(L->top - 1))
(gdb)
695 obj = index2adr(L, objindex);
(gdb)
697 if (ttisnil(L->top - 1))
(gdb)
701 mt = hvalue(L->top - 1);
(gdb)
703 switch (ttype(obj)) {
(gdb)
711 uvalue(obj)->metatable = mt;
(gdb)
712 if (mt)
(gdb)
711 uvalue(obj)->metatable = mt;
(gdb)
712 if (mt)
(gdb)
713 luaC_objbarrier(L, rawuvalue(obj), mt);
(gdb)
721 L->top--;
(gdb)
724 }
(gdb)
pushobject(lua_State*, world::Object*) (L=0x5d03c48, obj=0x5d13b90)
at lua.cc:162
162 }
Current language: auto; currently c++
(gdb)
lua::CallFunc(lua_State*, char const*, enigma::Value const&, world::Object*) (
L=0x5d03c48, funcname=0x5d13e34 "test", address@hidden, obj=0x5d13b90)
at lua.cc:667
667 retval=lua_pcall(L,2,0,0);
(gdb)
lua_pcall (L=0x5d03c48, nargs=2, nresults=0, errfunc=0) at lapi.c:805
805 if (errfunc == 0)
Current language: auto; currently c
(gdb)
798 LUA_API int lua_pcall (lua_State *L, int nargs, int nresults, int
errfunc) {
(gdb)
805 if (errfunc == 0)
(gdb)
806 func = 0;
(gdb)
813 c.nresults = nresults;
(gdb)
812 c.func = L->top - (nargs+1); /* function to be called */
(gdb)
814 status = luaD_pcall(L, f_call, &c, savestack(L, c.func), func);
(gdb)
luaD_pcall (L=0x5d03c48, func=0x5076e0 <f_call>, u=0x22ef10, old_top=32, ef=0)
at ldo.c:455
455 unsigned short oldnCcalls = L->nCcalls;
(gdb)
456 ptrdiff_t old_ci = saveci(L, L->ci);
(gdb)
457 lu_byte old_allowhooks = L->allowhook;
(gdb)
458 ptrdiff_t old_errfunc = L->errfunc;
(gdb)
459 L->errfunc = ef;
(gdb)
460 status = luaD_rawrunprotected(L, func, u);
(gdb)
luaD_rawrunprotected (L=0x5d03c48, f=0x5076e0 <f_call>, ud=0x22ef10)
at ldo.c:113
113 lj.status = 0;
(gdb)
114 lj.previous = L->errorJmp; /* chain new error handler */
(gdb)
115 L->errorJmp = &lj;
(gdb)
116 LUAI_TRY(L, &lj,
(gdb)
f_call (L=0x5d03c48, ud=0x22ef10) at lapi.c:791
791 static void f_call (lua_State *L, void *ud) {
(gdb)
793 luaD_call(L, c->func, c->nresults);
(gdb)
luaD_call (L=0x5d03c48, func=0x5ceb210, nResults=0) at ldo.c:369
369 void luaD_call (lua_State *L, StkId func, int nResults) {
(gdb)
370 if (++L->nCcalls >= LUAI_MAXCCALLS) {
(gdb)
376 if (luaD_precall(L, func, nResults) == PCRLUA) /* is a Lua function?
*/
(gdb)
luaD_precall (L=0x5d03c48, func=0x5ceb210, nresults=0) at ldo.c:264
264 int luaD_precall (lua_State *L, StkId func, int nresults) {
(gdb)
267 if (!ttisfunction(func)) /* `func' is not a function? */
(gdb)
269 funcr = savestack(L, func);
(gdb)
270 cl = &clvalue(func)->l;
(gdb)
271 L->ci->savedpc = L->savedpc;
(gdb)
272 if (!cl->isC) { /* Lua function? prepare its call */
(gdb)
275 Proto *p = cl->p;
(gdb)
276 luaD_checkstack(L, p->maxstacksize);
(gdb)
275 Proto *p = cl->p;
(gdb)
276 luaD_checkstack(L, p->maxstacksize);
(gdb)
278 if (!p->is_vararg) { /* no varargs? */
(gdb)
277 func = restorestack(L, funcr);
(gdb)
278 if (!p->is_vararg) { /* no varargs? */
(gdb)
277 func = restorestack(L, funcr);
(gdb)
278 if (!p->is_vararg) { /* no varargs? */
(gdb)
280 if (L->top > base + p->numparams)
(gdb)
279 base = func + 1;
(gdb)
280 if (L->top > base + p->numparams)
(gdb)
288 ci = inc_ci(L); /* now `enter' new function */
(gdb)
289 ci->func = func;
(gdb)
290 L->base = ci->base = base;
(gdb)
291 ci->top = L->base + p->maxstacksize;
(gdb)
290 L->base = ci->base = base;
(gdb)
295 ci->nresults = nresults;
(gdb)
291 ci->top = L->base + p->maxstacksize;
(gdb)
294 ci->tailcalls = 0;
(gdb)
295 ci->nresults = nresults;
(gdb)
291 ci->top = L->base + p->maxstacksize;
(gdb)
293 L->savedpc = p->code; /* starting point */
(gdb)
296 for (st = L->top; st < ci->top; st++)
(gdb)
297 setnilvalue(st);
(gdb)
296 for (st = L->top; st < ci->top; st++)
(gdb)
297 setnilvalue(st);
(gdb)
296 for (st = L->top; st < ci->top; st++)
(gdb)
297 setnilvalue(st);
(gdb)
296 for (st = L->top; st < ci->top; st++)
(gdb)
298 L->top = ci->top;
(gdb)
299 if (L->hookmask & LUA_MASKCALL) {
(gdb)
298 L->top = ci->top;
(gdb)
299 if (L->hookmask & LUA_MASKCALL) {
(gdb)
304 return PCRLUA;
(gdb)
328 }
(gdb)
luaD_call (L=0x5d03c48, func=0x5ceb210, nResults=0) at ldo.c:377
377 luaV_execute(L, 1); /* call it */
(gdb)
luaV_execute (L=0x5d03c48, nexeccalls=1) at lvm.c:379
379 pc = L->savedpc;
(gdb)
380 cl = &clvalue(L->ci->func)->l;
(gdb)
379 pc = L->savedpc;
(gdb)
380 cl = &clvalue(L->ci->func)->l;
(gdb)
382 k = cl->p->k;
(gdb)
381 base = L->base;
(gdb)
382 k = cl->p->k;
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
397 ra = RA(i);
(gdb)
401 switch (GET_OPCODE(i)) {
(gdb)
430 sethvalue(L, &g, cl->env);
(gdb)
429 TValue *rb = KBx(i);
(gdb)
430 sethvalue(L, &g, cl->env);
(gdb)
429 TValue *rb = KBx(i);
(gdb)
430 sethvalue(L, &g, cl->env);
(gdb)
429 TValue *rb = KBx(i);
(gdb)
430 sethvalue(L, &g, cl->env);
(gdb)
432 Protect(luaV_gettable(L, &g, rb, ra));
(gdb)
430 sethvalue(L, &g, cl->env);
(gdb)
432 Protect(luaV_gettable(L, &g, rb, ra));
(gdb)
luaV_gettable (L=0x78001532, t=0x22ede0, key=0x5988f98, val=0x5988f98)
at lvm.c:112
112 for (loop = 0; loop < MAXTAGLOOP; loop++) {
(gdb)
110 void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId
val) {
(gdb)
114 if (ttistable(t)) { /* `t' is a table? */
(gdb)
115 Table *h = hvalue(t);
(gdb)
116 const TValue *res = luaH_get(h, key); /* do a primitive get */
(gdb)
luaH_get (t=0x5c227e8, key=0x5cfd3a8) at ltable.c:469
469 const TValue *luaH_get (Table *t, const TValue *key) {
(gdb)
470 switch (ttype(key)) {
(gdb)
472 case LUA_TSTRING: return luaH_getstr(t, rawtsvalue(key));
(gdb)
luaH_getstr (t=0x5c227e8, key=0x5cfd3a8) at ltable.c:455
455 const TValue *luaH_getstr (Table *t, TString *key) {
(gdb)
456 Node *n = hashstr(t, key);
(gdb)
455 const TValue *luaH_getstr (Table *t, TString *key) {
(gdb)
456 Node *n = hashstr(t, key);
(gdb)
458 if (ttisstring(gkey(n)) && rawtsvalue(gkey(n)) == key)
(gdb)
463 }
(gdb)
luaH_get (t=0x5c227e8, key=0x5cfd3a8) at ltable.c:491
491 }
(gdb)
luaV_gettable (L=0x5d03c48, t=0x22ede0, key=0x5cfd3a8, val=0x5ceb240)
at lvm.c:117
117 if (!ttisnil(res) || /* result is no nil? */
(gdb)
119 setobj2s(L, val, res);
(gdb)
133 }
(gdb)
luaV_execute (L=0x5d03c48, nexeccalls=1) at lvm.c:735
735 Protect(luaC_checkGC(L));
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
397 ra = RA(i);
(gdb)
401 switch (GET_OPCODE(i)) {
(gdb)
436 Protect(luaV_gettable(L, RB(i), RKC(i), ra));
(gdb)
luaV_gettable (L=0x5d03c48, t=0x5ceb240, key=0x5cfd3a8, val=0x5ceb240)
at lvm.c:112
112 for (loop = 0; loop < MAXTAGLOOP; loop++) {
(gdb)
110 void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId
val) {
(gdb)
114 if (ttistable(t)) { /* `t' is a table? */
(gdb)
115 Table *h = hvalue(t);
(gdb)
116 const TValue *res = luaH_get(h, key); /* do a primitive get */
(gdb)
luaH_get (t=0x5c442d8, key=0x5cfd3b8) at ltable.c:469
469 const TValue *luaH_get (Table *t, const TValue *key) {
(gdb)
470 switch (ttype(key)) {
(gdb)
472 case LUA_TSTRING: return luaH_getstr(t, rawtsvalue(key));
(gdb)
luaH_getstr (t=0x5c442d8, key=0x5cfd3b8) at ltable.c:455
455 const TValue *luaH_getstr (Table *t, TString *key) {
(gdb)
456 Node *n = hashstr(t, key);
(gdb)
455 const TValue *luaH_getstr (Table *t, TString *key) {
(gdb)
456 Node *n = hashstr(t, key);
(gdb)
458 if (ttisstring(gkey(n)) && rawtsvalue(gkey(n)) == key)
(gdb)
463 }
(gdb)
luaH_get (t=0x5c442d8, key=0x5cfd3b8) at ltable.c:491
491 }
(gdb)
luaV_gettable (L=0x5d03c48, t=0x5ceb240, key=0x5cfd3b8, val=0x5ceb240)
at lvm.c:117
117 if (!ttisnil(res) || /* result is no nil? */
(gdb)
119 setobj2s(L, val, res);
(gdb)
133 }
(gdb)
luaV_execute (L=0x5d03c48, nexeccalls=1) at lvm.c:551
551 Protect(
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
397 ra = RA(i);
(gdb)
401 switch (GET_OPCODE(i)) {
(gdb)
403 setobjs2s(L, ra, RB(i));
(gdb)
424 setobj2s(L, ra, cl->upvals[b]->v);
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
397 ra = RA(i);
(gdb)
401 switch (GET_OPCODE(i)) {
(gdb)
407 setobj2s(L, ra, KBx(i));
(gdb)
424 setobj2s(L, ra, cl->upvals[b]->v);
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
385 const Instruction i = *pc++;
(gdb)
387 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
(gdb)
397 ra = RA(i);
(gdb)
401 switch (GET_OPCODE(i)) {
(gdb)
583 int nresults = GETARG_C(i) - 1;
(gdb)
584 if (b != 0) L->top = ra+b; /* else previous instruction set
top */
(gdb)
585 L->savedpc = pc;
(gdb)
586 switch (luaD_precall(L, ra, nresults)) {
(gdb)
luaD_precall (L=0x5d03c48, func=0x5ceb240, nresults=0) at ldo.c:264
264 int luaD_precall (lua_State *L, StkId func, int nresults) {
(gdb)
267 if (!ttisfunction(func)) /* `func' is not a function? */
(gdb)
269 funcr = savestack(L, func);
(gdb)
270 cl = &clvalue(func)->l;
(gdb)
271 L->ci->savedpc = L->savedpc;
(gdb)
272 if (!cl->isC) { /* Lua function? prepare its call */
(gdb)
309 luaD_checkstack(L, LUA_MINSTACK); /* ensure minimum stack size */
(gdb)
310 ci = inc_ci(L); /* now `enter' new function */
(gdb)
311 ci->func = restorestack(L, funcr);
(gdb)
310 ci = inc_ci(L); /* now `enter' new function */
(gdb)
311 ci->func = restorestack(L, funcr);
(gdb)
315 ci->nresults = nresults;
(gdb)
311 ci->func = restorestack(L, funcr);
(gdb)
315 ci->nresults = nresults;
(gdb)
311 ci->func = restorestack(L, funcr);
(gdb)
312 L->base = ci->base = ci->func + 1;
(gdb)
313 ci->top = L->top + LUA_MINSTACK;
(gdb)
316 if (L->hookmask & LUA_MASKCALL)
(gdb)
319 n = (*curr_func(L)->c.f)(L); /* do the actual call */
(gdb)
en_get_attrib(lua_State*) (L=0x5d03c48) at lua.cc:201
201 Object *obj = to_object(L,1);
Current language: auto; currently c++
(gdb)
to_object(lua_State*, int) (L=0x5d03c48, idx=1) at lua.cc:137
137 if (lua_isnil(L,idx))
(gdb)
lua_type (L=0x5d03c48, idx=1) at lapi.c:235
235 LUA_API int lua_type (lua_State *L, int idx) {
Current language: auto; currently c
(gdb)
236 StkId o = index2adr(L, idx);
(gdb)
index2adr (L=0x5d03c48, idx=1) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
51 TValue *o = L->base + (idx - 1);
(gdb)
53 if (o >= L->top) return cast(TValue *, luaO_nilobject);
(gdb)
54 else return o;
(gdb)
76 }
(gdb)
lua_type (L=0x5d03c48, idx=1) at lapi.c:237
237 return (o == luaO_nilobject) ? LUA_TNONE : ttype(o);
(gdb)
238 }
(gdb)
to_object(lua_State*, int) (L=0x5d03c48, idx=1) at lua.cc:140
140 if (!is_object(L,idx)) {
Current language: auto; currently c++
(gdb)
is_object(lua_State*, int) (L=0x5d03c48, idx=1) at lua.cc:131
131 return lua_isuserdata(L,idx) &&
luaL_checkudata(L,idx,"_ENIGMAOBJECT");
(gdb)
lua_isuserdata (L=0x5d03c48, idx=1) at lapi.c:266
266 LUA_API int lua_isuserdata (lua_State *L, int idx) {
Current language: auto; currently c
(gdb)
267 const TValue *o = index2adr(L, idx);
(gdb)
index2adr (L=0x5d03c48, idx=1) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
51 TValue *o = L->base + (idx - 1);
(gdb)
53 if (o >= L->top) return cast(TValue *, luaO_nilobject);
(gdb)
54 else return o;
(gdb)
76 }
(gdb)
lua_isuserdata (L=0x5d03c48, idx=1) at lapi.c:269
269 }
(gdb)
lua_isuserdata (L=0x5d03c48, idx=1) at lapi.c:268
268 return (ttisuserdata(o) || ttislightuserdata(o));
(gdb)
269 }
(gdb)
luaL_checkudata (L=0x5d03c48, ud=1, tname=0x86cb11 "_ENIGMAOBJECT")
at lauxlib.c:125
125 void *p = lua_touserdata(L, ud);
(gdb)
lua_touserdata (L=0x5d03c48, idx=1) at lapi.c:378
378 LUA_API void *lua_touserdata (lua_State *L, int idx) {
(gdb)
379 StkId o = index2adr(L, idx);
(gdb)
index2adr (L=0x5d03c48, idx=1) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
51 TValue *o = L->base + (idx - 1);
(gdb)
53 if (o >= L->top) return cast(TValue *, luaO_nilobject);
(gdb)
54 else return o;
(gdb)
76 }
(gdb)
lua_touserdata (L=0x5d03c48, idx=1) at lapi.c:380
380 switch (ttype(o)) {
(gdb)
383 default: return NULL;
(gdb)
380 switch (ttype(o)) {
(gdb)
381 case LUA_TUSERDATA: return (rawuvalue(o) + 1);
(gdb)
385 }
(gdb)
luaL_checkudata (L=0x5d03c48, ud=1, tname=0x86cb11 "_ENIGMAOBJECT")
at lauxlib.c:126
126 lua_getfield(L, LUA_REGISTRYINDEX, tname); /* get correct metatable
*/
(gdb)
lua_getfield (L=0x5d03c48, idx=-10000, k=0x86cb11 "_ENIGMAOBJECT")
at lapi.c:541
541 t = index2adr(L, idx);
(gdb)
537 LUA_API void lua_getfield (lua_State *L, int idx, const char *k) {
(gdb)
541 t = index2adr(L, idx);
(gdb)
index2adr (L=0x5988fb0, idx=-10000) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
56 else if (idx > LUA_REGISTRYINDEX) {
(gdb)
60 else switch (idx) { /* pseudo-indices */
(gdb)
61 case LUA_REGISTRYINDEX: return registry(L);
(gdb)
76 }
(gdb)
index2adr (L=0x5d03c48, idx=97533120) at lapi.c:61
61 case LUA_REGISTRYINDEX: return registry(L);
(gdb)
76 }
(gdb)
lua_getfield (L=0x5d03c48, idx=-10000, k=0x86cb11 "_ENIGMAOBJECT")
at lapi.c:543
543 setsvalue(L, &key, luaS_new(L, k));
(gdb)
541 t = index2adr(L, idx);
(gdb)
543 setsvalue(L, &key, luaS_new(L, k));
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x86cb11 "_ENIGMAOBJECT", l=13) at lstring.c:77
77 unsigned int h = cast(unsigned int, l); /* seed */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
78 size_t step = (l>>5)+1; /* if string is too long, don't hash all its
chars */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
82 for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)];
(gdb)
86 if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) {
(gdb)
88 if (isdead(G(L), o)) changewhite(o);
(gdb)
93 }
(gdb)
51 unsigned int h) {
(gdb)
93 }
(gdb)
lua_getfield (L=0x5d03c48, idx=-10000, k=0x86cb11 "_ENIGMAOBJECT")
at lapi.c:544
544 luaV_gettable(L, t, &key, L->top);
(gdb)
543 setsvalue(L, &key, luaS_new(L, k));
(gdb)
544 luaV_gettable(L, t, &key, L->top);
(gdb)
luaV_gettable (L=0x994b7a88, t=0x5d03d20, key=0x5d03cc0, val=0x37a0000)
at lvm.c:112
112 for (loop = 0; loop < MAXTAGLOOP; loop++) {
(gdb)
110 void luaV_gettable (lua_State *L, const TValue *t, TValue *key, StkId
val) {
(gdb)
114 if (ttistable(t)) { /* `t' is a table? */
(gdb)
115 Table *h = hvalue(t);
(gdb)
116 const TValue *res = luaH_get(h, key); /* do a primitive get */
(gdb)
luaH_get (t=0x5c22858, key=0x22eba0) at ltable.c:469
469 const TValue *luaH_get (Table *t, const TValue *key) {
(gdb)
470 switch (ttype(key)) {
(gdb)
472 case LUA_TSTRING: return luaH_getstr(t, rawtsvalue(key));
(gdb)
luaH_getstr (t=0x5c22858, key=0x22eba0) at ltable.c:455
455 const TValue *luaH_getstr (Table *t, TString *key) {
(gdb)
456 Node *n = hashstr(t, key);
(gdb)
455 const TValue *luaH_getstr (Table *t, TString *key) {
(gdb)
456 Node *n = hashstr(t, key);
(gdb)
458 if (ttisstring(gkey(n)) && rawtsvalue(gkey(n)) == key)
(gdb)
463 }
(gdb)
luaH_get (t=0x5c22858, key=0x22eba0) at ltable.c:491
491 }
(gdb)
luaV_gettable (L=0x5d03c48, t=0x5d03d20, key=0x22eba0, val=0x5ceb270)
at lvm.c:117
117 if (!ttisnil(res) || /* result is no nil? */
(gdb)
119 setobj2s(L, val, res);
(gdb)
133 }
(gdb)
lua_getfield (L=0x5d03c48, idx=-10000, k=0x86cb11 "_ENIGMAOBJECT")
at lapi.c:545
545 api_incr_top(L);
(gdb)
546 lua_unlock(L);
(gdb)
luaL_checkudata (L=0x5d03c48, ud=1, tname=0x86cb11 "_ENIGMAOBJECT")
at lauxlib.c:127
127 if (p == NULL || !lua_getmetatable(L, ud) || !lua_rawequal(L, -1, -2))
(gdb)
lua_getmetatable (L=0x5d03c48, objindex=1) at lapi.c:580
580 LUA_API int lua_getmetatable (lua_State *L, int objindex) {
(gdb)
585 obj = index2adr(L, objindex);
(gdb)
index2adr (L=0x5, idx=1) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
51 TValue *o = L->base + (idx - 1);
(gdb)
53 if (o >= L->top) return cast(TValue *, luaO_nilobject);
(gdb)
54 else return o;
(gdb)
76 }
(gdb)
lua_getmetatable (L=0x5d03c48, objindex=1) at lapi.c:586
586 switch (ttype(obj)) {
(gdb)
591 mt = uvalue(obj)->metatable;
(gdb)
598 res = 0;
(gdb)
597 if (mt == NULL)
(gdb)
600 sethvalue(L, L->top, mt);
(gdb)
601 api_incr_top(L);
(gdb)
600 sethvalue(L, L->top, mt);
(gdb)
602 res = 1;
(gdb)
606 }
(gdb)
lua_rawequal (L=0x5d03c48, index1=-1, index2=-2) at lapi.c:273
273 StkId o1 = index2adr(L, index1);
(gdb)
index2adr (L=0xffffffff, idx=-1) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
56 else if (idx > LUA_REGISTRYINDEX) {
(gdb)
58 return L->top + idx;
(gdb)
76 }
(gdb)
index2adr (L=0x5d03c48, idx=-16) at lapi.c:58
58 return L->top + idx;
(gdb)
76 }
(gdb)
lua_rawequal (L=0x5d03c48, index1=-1, index2=-2) at lapi.c:274
274 StkId o2 = index2adr(L, index2);
(gdb)
index2adr (L=0x5d03c48, idx=-2) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
56 else if (idx > LUA_REGISTRYINDEX) {
(gdb)
58 return L->top + idx;
(gdb)
76 }
(gdb)
index2adr (L=0x5d03c48, idx=-32) at lapi.c:58
58 return L->top + idx;
(gdb)
76 }
(gdb)
lua_rawequal (L=0x5d03c48, index1=-1, index2=-2) at lapi.c:275
275 return (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0
(gdb)
277 }
(gdb)
275 return (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0
(gdb)
277 }
(gdb)
lua_rawequal (L=0x5d03c48, index1=1, index2=8833809) at lapi.c:275
275 return (o1 == luaO_nilobject || o2 == luaO_nilobject) ? 0
(gdb)
luaO_rawequalObj (t1=0x5d03c48, t2=0x1) at lobject.c:72
72 int luaO_rawequalObj (const TValue *t1, const TValue *t2) {
(gdb)
73 if (ttype(t1) != ttype(t2)) return 0;
(gdb)
72 int luaO_rawequalObj (const TValue *t1, const TValue *t2) {
(gdb)
73 if (ttype(t1) != ttype(t2)) return 0;
(gdb)
74 else switch (ttype(t1)) {
(gdb)
85 return gcvalue(t1) == gcvalue(t2);
(gdb)
87 }
(gdb)
luaL_checkudata (L=0x5d03c48, ud=1, tname=0x86cb11 "_ENIGMAOBJECT")
at lauxlib.c:129
129 lua_pop(L, 2); /* remove both metatables */
(gdb)
lua_settop (L=0x5d03c48, idx=-3) at lapi.c:160
160 LUA_API void lua_settop (lua_State *L, int idx) {
(gdb)
162 if (idx >= 0) {
(gdb)
170 L->top += idx+1; /* `subtract' index (index is negative) */
(gdb)
173 }
(gdb)
luaL_checkudata (L=0x5d03c48, ud=1, tname=0x86cb11 "_ENIGMAOBJECT")
at lauxlib.c:131
131 }
(gdb)
is_object(lua_State*, int) (L=0x5d03c48, idx=1) at lua.cc:132
132 }
Current language: auto; currently c++
(gdb)
to_object(lua_State*, int) (L=0x5d03c48, idx=1) at lua.cc:144
144 return
static_cast<Object*>(*(static_cast<void**>(lua_touserdata(L,idx))));
(gdb)
lua_touserdata (L=0x5d03c48, idx=1) at lapi.c:378
378 LUA_API void *lua_touserdata (lua_State *L, int idx) {
Current language: auto; currently c
(gdb)
379 StkId o = index2adr(L, idx);
(gdb)
index2adr (L=0x5ceb270, idx=1) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
51 TValue *o = L->base + (idx - 1);
(gdb)
53 if (o >= L->top) return cast(TValue *, luaO_nilobject);
(gdb)
54 else return o;
(gdb)
76 }
(gdb)
lua_touserdata (L=0x5d03c48, idx=1) at lapi.c:380
380 switch (ttype(o)) {
(gdb)
383 default: return NULL;
(gdb)
380 switch (ttype(o)) {
(gdb)
381 case LUA_TUSERDATA: return (rawuvalue(o) + 1);
(gdb)
385 }
(gdb)
to_object(lua_State*, int) (L=0x5d03c48, idx=1) at lua.cc:145
145 }
Current language: auto; currently c++
(gdb)
en_get_attrib(lua_State*) (L=0x5d03c48) at lua.cc:202
202 const char *key = lua_tostring(L,2);
(gdb)
lua_tolstring (L=0x5d03c48, idx=2, len=0x0) at lapi.c:337
337 StkId o = index2adr(L, idx);
Current language: auto; currently c
(gdb)
336 LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) {
(gdb)
337 StkId o = index2adr(L, idx);
(gdb)
336 LUA_API const char *lua_tolstring (lua_State *L, int idx, size_t *len) {
(gdb)
337 StkId o = index2adr(L, idx);
(gdb)
index2adr (L=0x5988fb0, idx=2) at lapi.c:49
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb)
49 static TValue *index2adr (lua_State *L, int idx) {
(gdb)
50 if (idx > 0) {
(gdb) 51 TValue *o = L->base + (idx - 1);
(gdb)
53 if (o >= L->top) return cast(TValue *, luaO_nilobject);
(gdb)
54 else return o;
(gdb)
76 }
(gdb)
lua_tolstring (L=0x5d03c48, idx=2, len=0x0) at lapi.c:338
338 if (!ttisstring(o)) {
(gdb)
337 StkId o = index2adr(L, idx);
(gdb)
338 if (!ttisstring(o)) {
(gdb)
349 if (len != NULL) *len = tsvalue(o)->len;
(gdb)
350 return svalue(o);
(gdb)
351 }
(gdb)
en_get_attrib(lua_State*) (L=0x5d03c48) at lua.cc:204
204 if (!obj) {
Current language: auto; currently c++
(gdb)
208 if (!key) {
(gdb)
213 if (0 == strcmp(key, "kind")) {
(gdb)
218 const Value *v = obj->get_attrib(key);
(gdb)
world::Object::get_attrib(std::string const&) const (this=0x5d13b90,
address@hidden) at objects.cc:124
124 AttribMap::const_iterator i = attribs.find(key);
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:54
54 const_iterator i=this->begin(), e=this->end();
(gdb)
std::list<std::pair<std::string, enigma::Value>,
std::allocator<std::pair<std::string, enigma::Value> > >::begin() const
(this=0x5d13b94)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:607
607 { return this->_M_impl._M_node._M_next; }
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::_List_const_iterator(std::_List_node_base const*) (this=0x22ebe4,
__x=0x5d13bc8)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:201
201 : _M_node(__x) { }
(gdb)
0x007bc836 in std::list<std::pair<std::string, enigma::Value>,
std::allocator<std::pair<std::string, enigma::Value> > >::begin() const
(this=0x5d13b94)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:607
607 { return this->_M_impl._M_node._M_next; }
(gdb)
std::list<std::pair<std::string, enigma::Value>,
std::allocator<std::pair<std::string, enigma::Value> > >::end() const
(this=0x5d13b94)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:624
624 { return &this->_M_impl._M_node; }
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::_List_const_iterator(std::_List_node_base const*) (this=0x22ebe4,
__x=0x5d13b94)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:201
201 : _M_node(__x) { }
(gdb)
0x007bc814 in std::list<std::pair<std::string, enigma::Value>,
std::allocator<std::pair<std::string, enigma::Value> > >::end() const
(this=0x5d13b94)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:624
624 { return &this->_M_impl._M_node; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:55
55 for (; i!=e; ++i)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::operator!=(std::_List_const_iterator<std::pair<std::string, enigma::Value> >
const&) const (
this=0x22ec04, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:252
252 { return _M_node != __x._M_node; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:56
56 if (i->first == key)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value> >::operator->()
const (this=0x22ec04)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:214
214 { return &static_cast<_Node*>(_M_node)->_M_data; }
(gdb)
bool 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&) (
address@hidden, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/basic_string.h:2054
2054 { return __lhs.compare(__rhs) == 0; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:55
55 for (; i!=e; ++i)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value> >::operator++()
(this=0x22ec04)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:219
219 _M_node = _M_node->_M_next;
(gdb)
220 return *this;
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::operator!=(std::_List_const_iterator<std::pair<std::string, enigma::Value> >
const&) const (
this=0x22ec04, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:252
252 { return _M_node != __x._M_node; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:56
56 if (i->first == key)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value> >::operator->()
const (this=0x22ec04)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:214
214 { return &static_cast<_Node*>(_M_node)->_M_data; }
(gdb)
bool 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&) (
address@hidden, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/basic_string.h:2054
2054 { return __lhs.compare(__rhs) == 0; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:55
55 for (; i!=e; ++i)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value> >::operator++()
(this=0x22ec04)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:219
219 _M_node = _M_node->_M_next;
(gdb)
220 return *this;
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::operator!=(std::_List_const_iterator<std::pair<std::string, enigma::Value> >
const&) const (
this=0x22ec04, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:252
252 { return _M_node != __x._M_node; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:56
56 if (i->first == key)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value> >::operator->()
const (this=0x22ec04)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:214
214 { return &static_cast<_Node*>(_M_node)->_M_data; }
(gdb)
bool 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&) (
address@hidden, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/basic_string.h:2054
2054 { return __lhs.compare(__rhs) == 0; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:55
55 for (; i!=e; ++i)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value> >::operator++()
(this=0x22ec04)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:219
219 _M_node = _M_node->_M_next;
(gdb)
220 return *this;
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::operator!=(std::_List_const_iterator<std::pair<std::string, enigma::Value> >
const&) const (
this=0x22ec04, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:252
252 { return _M_node != __x._M_node; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:56
56 if (i->first == key)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value> >::operator->()
const (this=0x22ec04)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:214
214 { return &static_cast<_Node*>(_M_node)->_M_data; }
(gdb)
bool 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&) (
address@hidden, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/basic_string.h:2054
2054 { return __lhs.compare(__rhs) == 0; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:55
55 for (; i!=e; ++i)
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value> >::operator++()
(this=0x22ec04)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:219
219 _M_node = _M_node->_M_next;
(gdb)
220 return *this;
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::operator!=(std::_List_const_iterator<std::pair<std::string, enigma::Value> >
const&) const (
this=0x22ec04, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:252
252 { return _M_node != __x._M_node; }
(gdb)
ecl::AssocList<std::string, enigma::Value>::find(std::string const&) const (
this=0x5d13b94, address@hidden) at ../lib-src/enigma-core/ecl_alist.hh:58
58 return i;
(gdb)
world::Object::get_attrib(std::string const&) const (this=0x5d13b90,
address@hidden) at objects.cc:125
125 if (i == attribs.end())
(gdb)
std::list<std::pair<std::string, enigma::Value>,
std::allocator<std::pair<std::string, enigma::Value> > >::end() const
(this=0x5d13b94)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:624
624 { return &this->_M_impl._M_node; }
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::_List_const_iterator(std::_List_node_base const*) (this=0x22ec04,
__x=0x5d13b94)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:201
201 : _M_node(__x) { }
(gdb)
0x007bc814 in std::list<std::pair<std::string, enigma::Value>,
std::allocator<std::pair<std::string, enigma::Value> > >::end() const
(this=0x5d13b94)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:624
624 { return &this->_M_impl._M_node; }
(gdb)
std::_List_const_iterator<std::pair<std::string, enigma::Value>
>::operator==(std::_List_const_iterator<std::pair<std::string, enigma::Value> >
const&) const (
this=0x22ec24, address@hidden)
at
D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/c++/3.4.2/bits/stl_list.h:248
248 { return _M_node == __x._M_node; }
(gdb)
world::Object::get_attrib(std::string const&) const (this=0x5d13b90,
address@hidden) at objects.cc:126
126 return 0;
(gdb)
129 }
(gdb)
en_get_attrib(lua_State*) (L=0x5d03c48) at lua.cc:219
219 if (!v) {
(gdb)
220 luaL_error(L, strf("GetAttrib: unknown attribute '%s'",
key).c_str());
(gdb)
ecl::strf(char const*, ...) (
format=0x86cc00 "GetAttrib: unknown attribute '%s'") at ecl_util.cc:85
85 va_start(argPtr, format);
(gdb)
86 string result = vstrf(format, argPtr);
(gdb)
(anonymous namespace)::vstrf(char const*, char*) (
format=0x86cc00 "GetAttrib: unknown attribute '%s'",
argPtr=0x22ec38 "\020ÒÏ\005hê\"") at ecl_util.cc:59
59 static char *buffer = new char[buf_size];
(gdb)
63 if (!buffer) {
(gdb)
68 length = vsnprintf(buffer, buf_size, format, argPtr);
(gdb)
vsnprintf (s=0x3861b98 "Ihre Zeit: 2:59", n=128,
format=0x86cc00 "GetAttrib: unknown attribute '%s'",
arg=0x22ec38 "\020ÒÏ\005hê\"")
at D:/MinGW/bin/../lib/gcc/mingw32/3.4.2/../../../../include/stdio.h:219
219 { return _vsnprintf ( s, n, format, arg); }
(gdb)
(anonymous namespace)::vstrf(char const*, char*) (
format=0x86cc00 "GetAttrib: unknown attribute '%s'",
argPtr=0x22ec38 "\020ÒÏ\005hê\"") at ecl_util.cc:69
69 if (length < buf_size) break; // string fits into current
buffer
(gdb)
78 return string(buffer, length);
(gdb)
79 }
(gdb)
ecl::strf(char const*, ...) (
format=0x86cc00 "GetAttrib: unknown attribute '%s'") at ecl_util.cc:90
90 }
(gdb)
luaL_error (L=0x5d03c48, fmt=0x5c44b58 "") at lauxlib.c:86
86 LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) {
Current language: auto; currently c
(gdb)
89 luaL_where(L, 1);
(gdb)
86 LUALIB_API int luaL_error (lua_State *L, const char *fmt, ...) {
(gdb)
luaL_error (L=0x5d03c48,
fmt=0x5be455c "GetAttrib: unknown attribute 'notexisting'") at lauxlib.c:88
88 va_start(argp, fmt);
(gdb)
89 luaL_where(L, 1);
(gdb)
luaL_where (L=0x5d03c48, level=1) at lauxlib.c:75
75 if (lua_getstack(L, level, &ar)) { /* check function at level */
(gdb)
73 LUALIB_API void luaL_where (lua_State *L, int level) {
(gdb)
75 if (lua_getstack(L, level, &ar)) { /* check function at level */
(gdb)
lua_getstack (L=0x5d03c48, level=1, ar=0x22eb90) at ldebug.c:84
84 LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar) {
(gdb)
88 for (ci = L->ci; level > 0 && ci > L->base_ci; ci--) {
(gdb)
90 if (f_isLua(ci)) /* Lua function? */
(gdb)
89 level--;
(gdb)
90 if (f_isLua(ci)) /* Lua function? */
(gdb)
88 for (ci = L->ci; level > 0 && ci > L->base_ci; ci--) {
(gdb)
93 if (level == 0 && ci > L->base_ci) { /* level found? */
(gdb)
95 ar->i_ci = cast_int(ci - L->base_ci);
(gdb)
94 status = 1;
(gdb)
95 ar->i_ci = cast_int(ci - L->base_ci);
(gdb)
104 }
(gdb)
luaL_where (L=0x5d03c48, level=1) at lauxlib.c:76
76 lua_getinfo(L, "Sl", &ar); /* get info about it */
(gdb)
lua_getinfo (L=0x5d03c48, what=0x878100 "Sl", ar=0x22eb90) at ldebug.c:232
232 LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar)
{
(gdb)
234 Closure *f = NULL;
(gdb)
235 CallInfo *ci = NULL;
(gdb)
237 if (*what == '>') {
(gdb)
244 else if (ar->i_ci != 0) { /* no tail call? */
(gdb)
245 ci = L->base_ci + ar->i_ci;
(gdb)
247 f = clvalue(ci->func);
(gdb)
195 int status = 1;
(gdb)
196 if (f == NULL) {
(gdb)
194 Closure *f, CallInfo *ci) {
(gdb)
196 if (f == NULL) {
(gdb)
200 for (; *what; what++) {
(gdb)
201 switch (*what) {
(gdb)
151 if (cl->c.isC) {
(gdb)
158 ar->source = getstr(cl->l.p->source);
(gdb)
159 ar->linedefined = cl->l.p->linedefined;
(gdb)
160 ar->lastlinedefined = cl->l.p->lastlinedefined;
(gdb)
161 ar->what = (ar->linedefined == 0) ? "main" : "Lua";
(gdb)
160 ar->lastlinedefined = cl->l.p->lastlinedefined;
(gdb)
161 ar->what = (ar->linedefined == 0) ? "main" : "Lua";
(gdb)
163 luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE);
(gdb)
200 for (; *what; what++) {
(gdb)
163 luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE);
(gdb)
luaO_chunkid (out=0x22ebb4 "0üo",
source=0x5cec020 "\nlevelw = 20\nlevelh = 13\n\ncreate_world( levelw,
levelh)\ndraw_border(\"st-wood\")\nfill_floor(\"fl-leavesb\",
0,0,levelw,levelh)\n\noxyd( 4,4)\noxyd( 14,4)\n\nset_actor(\"ac-blackball\", 4,
11)\n\nset_stone(\"st-swit"..., bufflen=60) at lobject.c:182
182 void luaO_chunkid (char *out, const char *source, size_t bufflen) {
(gdb)
183 if (*source == '=') {
(gdb)
188 if (*source == '@') {
(gdb)
201 size_t len = strcspn(source, "\n\r"); /* stop at first newline */
(gdb)
202 bufflen -= sizeof(" [string \"...\"] ");
(gdb)
201 size_t len = strcspn(source, "\n\r"); /* stop at first newline */
(gdb)
203 if (len > bufflen) len = bufflen;
(gdb)
204 strcpy(out, "[string \"");
(gdb)
205 if (source[len] != '\0') { /* must truncate? */
(gdb)
206 strncat(out, source, len);
(gdb)
207 strcat(out, "...");
(gdb)
211 strcat(out, "\"]");
(gdb)
214 }
(gdb)
lua_getinfo (L=0x5d03c48, what=0x878100 "Sl", ar=0x22eb90) at ldebug.c:200
200 for (; *what; what++) {
(gdb)
201 switch (*what) {
(gdb)
207 ar->currentline = (ci) ? currentline(L, ci) : -1;
(gdb)
currentline (L=0x5d03c48, ci=0x3c) at ldebug.c:44
44 static int currentline (lua_State *L, CallInfo *ci) {
(gdb)
45 int pc = currentpc(L, ci);
(gdb)
currentpc (L=0x5cda5c8, ci=0x5cda5c8) at ldebug.c:36
36 static int currentpc (lua_State *L, CallInfo *ci) {
(gdb)
37 if (!isLua(ci)) return -1; /* function is not a Lua function? */
(gdb)
38 if (ci == L->ci)
(gdb)
41 }
(gdb)
40 return pcRel(ci->savedpc, ci_func(ci)->l.p);
(gdb)
41 }
(gdb)
currentpc (L=0x5cfd2cc, ci=0x5cda5c8) at ldebug.c:40
40 return pcRel(ci->savedpc, ci_func(ci)->l.p);
(gdb)
41 }
(gdb)
currentline (L=0x4, ci=0x5cda5c8) at ldebug.c:46
46 if (pc < 0)
(gdb)
47 return -1; /* only active lua functions have current-line
information */
(gdb)
46 if (pc < 0)
(gdb)
49 return getline(ci_func(ci)->l.p, pc);
(gdb)
50 }
(gdb)
lua_getinfo (L=0x5d03c48, what=0x878100 "Sl", ar=0x22eb90) at ldebug.c:200
200 for (; *what; what++) {
(gdb)
207 ar->currentline = (ci) ? currentline(L, ci) : -1;
(gdb)
200 for (; *what; what++) {
(gdb)
227 }
(gdb)
250 if (strchr(what, 'f')) {
(gdb)
255 if (strchr(what, 'L'))
(gdb)
259 }
(gdb)
luaL_where (L=0x5d03c48, level=1) at lauxlib.c:77
77 if (ar.currentline > 0) { /* is there info? */
(gdb)
78 lua_pushfstring(L, "%s:%d: ", ar.short_src, ar.currentline);
(gdb)
lua_pushfstring (L=0x5d03c48, fmt=0x878103 "%s:%d: ") at lapi.c:466
466 LUA_API const char *lua_pushfstring (lua_State *L, const char *fmt,
...) {
(gdb)
470 luaC_checkGC(L);
(gdb)
471 va_start(argp, fmt);
(gdb)
472 ret = luaO_pushvfstring(L, fmt, argp);
(gdb)
luaO_pushvfstring (L=0x5d03c48, fmt=0x878103 "%s:%d: ",
argp=0x22ebb4 "[string \"...\"]") at lobject.c:111
111 const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list
argp) {
(gdb)
113 pushstr(L, "");
(gdb)
111 const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list
argp) {
(gdb)
112 int n = 1;
(gdb)
111 const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list
argp) {
(gdb)
113 pushstr(L, "");
(gdb)
pushstr (L=0x5d03c48, str=0x8785f0 "") at lobject.c:105
105 setsvalue2s(L, L->top, luaS_new(L, str));
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x8785f0 "", l=0) at lstring.c:77
77 unsigned int h = cast(unsigned int, l); /* seed */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
78 size_t step = (l>>5)+1; /* if string is too long, don't hash all its
chars */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
82 for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)];
(gdb)
86 if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) {
(gdb)
88 if (isdead(G(L), o)) changewhite(o);
(gdb)
93 }
(gdb)
51 unsigned int h) {
(gdb)
93 }
(gdb)
pushstr (L=0x5d03c48, str=0x8785f0 "") at lobject.c:106
106 incr_top(L);
(gdb)
105 setsvalue2s(L, L->top, luaS_new(L, str));
(gdb)
106 incr_top(L);
(gdb)
luaO_pushvfstring (L=0x5d03c48, fmt=0x878103 "%s:%d: ", argp=0x22eb88 "´ë\"")
at lobject.c:115
115 const char *e = strchr(fmt, '%');
(gdb)
116 if (e == NULL) break;
(gdb)
117 setsvalue2s(L, L->top, luaS_newlstr(L, fmt, e-fmt));
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x878103 "%s:%d: ", l=0) at lstring.c:77
77 unsigned int h = cast(unsigned int, l); /* seed */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
78 size_t step = (l>>5)+1; /* if string is too long, don't hash all its
chars */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
82 for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)];
(gdb)
86 if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) {
(gdb)
88 if (isdead(G(L), o)) changewhite(o);
(gdb)
93 }
(gdb)
51 unsigned int h) {
(gdb)
93 }
(gdb)
luaO_pushvfstring (L=0x5d03c48, fmt=0x878103 "%s:%d: ", argp=0x22eb88 "´ë\"")
at lobject.c:118
118 incr_top(L);
(gdb)
117 setsvalue2s(L, L->top, luaS_newlstr(L, fmt, e-fmt));
(gdb)
118 incr_top(L);
(gdb)
119 switch (*(e+1)) {
(gdb)
118 incr_top(L);
(gdb)
119 switch (*(e+1)) {
(gdb)
121 const char *s = va_arg(argp, char *);
(gdb)
122 if (s == NULL) s = "(null)";
(gdb)
158 pushstr(L, buff);
(gdb)
pushstr (L=0x5d03c48, str=0x22ebb4 "[string \"...\"]") at lobject.c:105
105 setsvalue2s(L, L->top, luaS_new(L, str));
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x22ebb4 "[string \"...\"]", l=14)
at lstring.c:77
77 unsigned int h = cast(unsigned int, l); /* seed */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
78 size_t step = (l>>5)+1; /* if string is too long, don't hash all its
chars */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
82 for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)];
(gdb)
86 if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) {
(gdb)
54 if (l+1 > (MAX_SIZET - sizeof(TString))/sizeof(char))
(gdb)
56 ts = cast(TString *, luaM_malloc(L,
(l+1)*sizeof(char)+sizeof(TString)));
(gdb)
luaM_realloc_ (L=0x5d03c48, block=0x0, osize=0, nsize=31) at lmem.c:77
77 global_State *g = G(L);
(gdb)
76 void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t
nsize) {
(gdb)
77 global_State *g = G(L);
(gdb)
79 block = (*g->frealloc)(g->ud, block, osize, nsize);
(gdb)
l_alloc (ud=0x0, ptr=0x0, osize=0, nsize=31) at lauxlib.c:622
622 static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
(gdb)
625 if (nsize == 0) {
(gdb)
630 return realloc(ptr, nsize);
(gdb)
631 }
(gdb)
l_alloc (ud=0x5d03c48, ptr=0x0, osize=0, nsize=31) at lauxlib.c:630
630 return realloc(ptr, nsize);
(gdb)
luaM_realloc_ (L=0x5d03c48, block=0x0, osize=0, nsize=31) at lmem.c:80
80 if (block == NULL && nsize > 0)
(gdb)
79 block = (*g->frealloc)(g->ud, block, osize, nsize);
(gdb)
80 if (block == NULL && nsize > 0)
(gdb)
83 g->totalbytes = (g->totalbytes - osize) + nsize;
(gdb)
85 }
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x22ebb4 "[string \"...\"]", l=14)
at lstring.c:57
57 ts->tsv.len = l;
(gdb)
58 ts->tsv.hash = h;
(gdb)
59 ts->tsv.marked = luaC_white(G(L));
(gdb)
60 ts->tsv.tt = LUA_TSTRING;
(gdb)
61 ts->tsv.reserved = 0;
(gdb)
59 ts->tsv.marked = luaC_white(G(L));
(gdb)
62 memcpy(ts+1, str, l*sizeof(char));
(gdb)
63 ((char *)(ts+1))[l] = '\0'; /* ending 0 */
(gdb)
64 tb = &G(L)->strt;
(gdb)
65 h = lmod(h, tb->size);
(gdb)
64 tb = &G(L)->strt;
(gdb)
65 h = lmod(h, tb->size);
(gdb)
66 ts->tsv.next = tb->hash[h]; /* chain new entry */
(gdb)
67 tb->hash[h] = obj2gco(ts);
(gdb)
68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb)
68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb)
68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb)
93 }
(gdb)
51 unsigned int h) {
(gdb)
93 }
(gdb)
pushstr (L=0x5d03c48, str=0x22ebb4 "[string \"...\"]") at lobject.c:106
106 incr_top(L);
(gdb)
105 setsvalue2s(L, L->top, luaS_new(L, str));
(gdb)
106 incr_top(L);
(gdb)
luaO_pushvfstring (L=0x5d03c48, fmt=0x878103 "%s:%d: ", argp=0x22eb8c "\030")
at lobject.c:162
162 n += 2;
(gdb)
163 fmt = e+2;
(gdb)
115 const char *e = strchr(fmt, '%');
(gdb)
116 if (e == NULL) break;
(gdb)
117 setsvalue2s(L, L->top, luaS_newlstr(L, fmt, e-fmt));
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x878105 ":%d: ", l=1) at lstring.c:77
77 unsigned int h = cast(unsigned int, l); /* seed */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
78 size_t step = (l>>5)+1; /* if string is too long, don't hash all its
chars */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
82 for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)];
(gdb)
54 if (l+1 > (MAX_SIZET - sizeof(TString))/sizeof(char))
(gdb)
56 ts = cast(TString *, luaM_malloc(L,
(l+1)*sizeof(char)+sizeof(TString)));
(gdb)
luaM_realloc_ (L=0x5d03c48, block=0x0, osize=0, nsize=18) at lmem.c:77
77 global_State *g = G(L);
(gdb)
76 void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t
nsize) {
(gdb)
77 global_State *g = G(L);
(gdb)
79 block = (*g->frealloc)(g->ud, block, osize, nsize);
(gdb)
l_alloc (ud=0x0, ptr=0x0, osize=0, nsize=18) at lauxlib.c:622
622 static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
(gdb)
625 if (nsize == 0) {
(gdb)
630 return realloc(ptr, nsize);
(gdb)
631 }
(gdb)
l_alloc (ud=0x5d03c48, ptr=0x0, osize=0, nsize=18) at lauxlib.c:630
630 return realloc(ptr, nsize);
(gdb)
luaM_realloc_ (L=0x5d03c48, block=0x0, osize=0, nsize=18) at lmem.c:80
80 if (block == NULL && nsize > 0)
(gdb)
79 block = (*g->frealloc)(g->ud, block, osize, nsize);
(gdb)
80 if (block == NULL && nsize > 0)
(gdb)
83 g->totalbytes = (g->totalbytes - osize) + nsize;
(gdb)
85 }
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x878105 ":%d: ", l=1) at lstring.c:57
57 ts->tsv.len = l;
(gdb)
58 ts->tsv.hash = h;
(gdb)
59 ts->tsv.marked = luaC_white(G(L));
(gdb)
60 ts->tsv.tt = LUA_TSTRING;
(gdb)
61 ts->tsv.reserved = 0;
(gdb)
59 ts->tsv.marked = luaC_white(G(L));
(gdb)
62 memcpy(ts+1, str, l*sizeof(char));
(gdb)
63 ((char *)(ts+1))[l] = '\0'; /* ending 0 */
(gdb)
64 tb = &G(L)->strt;
(gdb)
65 h = lmod(h, tb->size);
(gdb)
64 tb = &G(L)->strt;
(gdb)
65 h = lmod(h, tb->size);
(gdb)
66 ts->tsv.next = tb->hash[h]; /* chain new entry */
(gdb)
67 tb->hash[h] = obj2gco(ts);
(gdb)
68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb)
68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb)
68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb)
93 }
(gdb)
51 unsigned int h) {
(gdb)
93 }
(gdb)
luaO_pushvfstring (L=0x5d03c48, fmt=0x878103 "%s:%d: ", argp=0x22eb8c "\030")
at lobject.c:118
118 incr_top(L);
(gdb)
117 setsvalue2s(L, L->top, luaS_newlstr(L, fmt, e-fmt));
(gdb)
118 incr_top(L);
(gdb)
119 switch (*(e+1)) {
(gdb)
118 incr_top(L);
(gdb)
119 switch (*(e+1)) {
(gdb)
139 setnvalue(L->top, cast_num(va_arg(argp, l_uacNumber)));
(gdb)
134 setnvalue(L->top, cast_num(va_arg(argp, int)));
(gdb)
139 setnvalue(L->top, cast_num(va_arg(argp, l_uacNumber)));
(gdb)
140 incr_top(L);
(gdb)
162 n += 2;
(gdb)
163 fmt = e+2;
(gdb)
115 const char *e = strchr(fmt, '%');
(gdb)
116 if (e == NULL) break;
(gdb)
165 pushstr(L, fmt);
(gdb)
pushstr (L=0x5d03c48, str=0x878108 ": ") at lobject.c:105
105 setsvalue2s(L, L->top, luaS_new(L, str));
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x878108 ": ", l=2) at lstring.c:77
77 unsigned int h = cast(unsigned int, l); /* seed */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
78 size_t step = (l>>5)+1; /* if string is too long, don't hash all its
chars */
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
81 h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1]));
(gdb)
80 for (l1=l; l1>=step; l1-=step) /* compute hash */
(gdb)
82 for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)];
(gdb)
54 if (l+1 > (MAX_SIZET - sizeof(TString))/sizeof(char))
(gdb)
56 ts = cast(TString *, luaM_malloc(L,
(l+1)*sizeof(char)+sizeof(TString)));
(gdb)
luaM_realloc_ (L=0x5d03c48, block=0x0, osize=0, nsize=19) at lmem.c:77
77 global_State *g = G(L);
(gdb)
76 void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t
nsize) {
(gdb)
77 global_State *g = G(L);
(gdb)
79 block = (*g->frealloc)(g->ud, block, osize, nsize);
(gdb)
l_alloc (ud=0x0, ptr=0x0, osize=0, nsize=19) at lauxlib.c:622
622 static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
(gdb)
625 if (nsize == 0) {
(gdb)
630 return realloc(ptr, nsize);
(gdb)
631 }
(gdb)
l_alloc (ud=0x5d03c48, ptr=0x0, osize=0, nsize=19) at lauxlib.c:630
630 return realloc(ptr, nsize);
(gdb)
luaM_realloc_ (L=0x5d03c48, block=0x0, osize=0, nsize=19) at lmem.c:80
80 if (block == NULL && nsize > 0)
(gdb)
79 block = (*g->frealloc)(g->ud, block, osize, nsize);
(gdb)
80 if (block == NULL && nsize > 0)
(gdb)
83 g->totalbytes = (g->totalbytes - osize) + nsize;
(gdb)
85 }
(gdb)
luaS_newlstr (L=0x5d03c48, str=0x878108 ": ", l=2) at lstring.c:57
57 ts->tsv.len = l;
(gdb)
58 ts->tsv.hash = h;
(gdb)
59 ts->tsv.marked = luaC_white(G(L));
(gdb)
60 ts->tsv.tt = LUA_TSTRING;
(gdb)
61 ts->tsv.reserved = 0;
(gdb)
59 ts->tsv.marked = luaC_white(G(L));
(gdb)
62 memcpy(ts+1, str, l*sizeof(char));
(gdb)
63 ((char *)(ts+1))[l] = '\0'; /* ending 0 */
(gdb)
64 tb = &G(L)->strt;
(gdb)
65 h = lmod(h, tb->size);
(gdb)
64 tb = &G(L)->strt;
(gdb)
65 h = lmod(h, tb->size);
(gdb)
66 ts->tsv.next = tb->hash[h]; /* chain new entry */
(gdb)
67 tb->hash[h] = obj2gco(ts);
(gdb)
68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb)
68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb) 68 tb->nuse++;
(gdb)
69 if (tb->nuse > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2)
(gdb)
93 }
(gdb)
51 unsigned int h) {
(gdb)
93 }
(gdb)
pushstr (L=0x5d03c48, str=0x878108 ": ") at lobject.c:106
106 incr_top(L);
(gdb)
105 setsvalue2s(L, L->top, luaS_new(L, str));
(gdb)
106 incr_top(L);
(gdb)
luaO_pushvfstring (L=0x5d03c48, fmt=0x878103 "%s:%d: ", argp=0x22eb90 "(£}")
at lobject.c:166
166 luaV_concat(L, n+1, cast_int(L->top - L->base) - 1);
(gdb)
Program received signal SIGSEGV, Segmentation fault.
0x40000060 in ?? ()
(gdb)
(gdb) Cannot find bounds of current function
- [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Ronald Lamprecht, 2006/06/23
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/23
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Ronald Lamprecht, 2006/06/26
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/26
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/28
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Ronald Lamprecht, 2006/06/28
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/28
- Re: Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Daniel Heck, 2006/06/28
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows,
Ronald Lamprecht <=
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/29
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/29
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Ronald Lamprecht, 2006/06/29
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Ronald Lamprecht, 2006/06/29
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/29
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/29
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Ronald Lamprecht, 2006/06/29
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Tacvek, 2006/06/29
- Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows, Ronald Lamprecht, 2006/06/30