补充:
发现另外一种崩溃时的堆栈:
#0 0x00007f547ee5c1bc in snapshot_framelinks (topslot=0x415c3f6d " \v", J=0x416e7558, map=0x41396700) at lj_snap.c:124
#1 snapshot_stack (nsnapmap=431, snap=0x415c3f68, J=0x416e7558) at lj_snap.c:163
#2 lj_snap_add (J=0x416e7558) at lj_snap.c:191
#3 0x00007f547ee614df in lj_record_ins (J=0x416e7558) at lj_record.c:2023
#4 0x00007f547ee77495 in trace_state (L=0x416e7378, dummy=<optimized out>, ud=0x416e7558) at lj_trace.c:670
#5 0x00007f547ee38f56 in lj_vm_cpcall () from /usr/local/marco/luajit/lib/libluajit-5.1.so.2
#6 0x00007f547ee765df in lj_trace_ins (J=0x416e7558, pc=<optimized out>) at lj_trace.c:729
#7 0x00007f547ee42b0a in lj_dispatch_call (L=0x416e7378, pc=0x4156e0ec) at lj_dispatch.c:493
#8 0x00007f547ee3a5ca in lj_vm_hotcall () from /usr/local/marco/luajit/lib/libluajit-5.1.so.2
#9 0x00007f547ee4807d in lua_pcall (L=<optimized out>, nargs=<optimized out>, nresults=<optimized out>, errfunc=<optimized out>) at lj_api.c:1129
#10 0x0000000000555f2e in ngx_http_lua_cache_load_code (log=0x543b2d8, L=0x416e7378, key=0x1687448 "nhli_fff835480c574b40e7fa56e821097732")
at /root/alex/marco/deps/lua-nginx-module-0.10.11h/src/ngx_http_lua_cache.c:56
#11 0x0000000000556105 in ngx_http_lua_cache_loadbuffer (log=0x543b2d8, L=0x416e7378, src=0x16873e8 "\n if not ngx.is_subrequest then\n return \"1\"\n end\n",
src_len=62, cache_key=0x1687448 "nhli_fff835480c574b40e7fa56e821097732", name=0x6c613b "=set_by_lua")
at /root/alex/marco/deps/lua-nginx-module-0.10.11h/src/ngx_http_lua_cache.c:148
#12 0x000000000054b7aa in ngx_http_lua_filter_set_by_lua_inline (r=0x5411050, val=0x7ffc50cff4e0, v=0x541fae8, data=0x1687428)
#define frame_prevl(f) ((f) - (1+LJ_FR2+bc_a(frame_pc(f)[-1])))
#define frame_pc(f) (mref((f)->fr.tp.pcr, const BCIns))
#define mref(r, t) ((t *)(void *)(uintptr_t)(r).ptr32)
(gdb) p frame.fr.tp.pcr
$7 = {ptr32 = 4294967284}
貌似这个值被写乱了?