亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ldebug.c

?? 這個是一個嵌入式腳本支持引擎, 體積十分小巧
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** $Id: ldebug.c,v 2.29.1.6 2008/05/08 16:56:26 roberto Exp $** Debug Interface** See Copyright Notice in lua.h*/#include <stdarg.h>#include <stddef.h>#include <string.h>#define ldebug_c#define LUA_CORE#include "lua.h"#include "lapi.h"#include "lcode.h"#include "ldebug.h"#include "ldo.h"#include "lfunc.h"#include "lobject.h"#include "lopcodes.h"#include "lstate.h"#include "lstring.h"#include "ltable.h"#include "ltm.h"#include "lvm.h"static const char *getfuncname (lua_State *L, CallInfo *ci, const char **name);static int currentpc (lua_State *L, CallInfo *ci) {  if (!isLua(ci)) return -1;  /* function is not a Lua function? */  if (ci == L->ci)    ci->savedpc = L->savedpc;  return pcRel(ci->savedpc, ci_func(ci)->l.p);}static int currentline (lua_State *L, CallInfo *ci) {  int pc = currentpc(L, ci);  if (pc < 0)    return -1;  /* only active lua functions have current-line information */  else    return getline(ci_func(ci)->l.p, pc);}/*** this function can be called asynchronous (e.g. during a signal)*/LUA_API int lua_sethook (lua_State *L, lua_Hook func, int mask, int count) {  if (func == NULL || mask == 0) {  /* turn off hooks? */    mask = 0;    func = NULL;  }  L->hook = func;  L->basehookcount = count;  resethookcount(L);  L->hookmask = cast_byte(mask);  return 1;}LUA_API lua_Hook lua_gethook (lua_State *L) {  return L->hook;}LUA_API int lua_gethookmask (lua_State *L) {  return L->hookmask;}LUA_API int lua_gethookcount (lua_State *L) {  return L->basehookcount;}LUA_API int lua_getstack (lua_State *L, int level, lua_Debug *ar) {  int status;  CallInfo *ci;  lua_lock(L);  for (ci = L->ci; level > 0 && ci > L->base_ci; ci--) {    level--;    if (f_isLua(ci))  /* Lua function? */      level -= ci->tailcalls;  /* skip lost tail calls */  }  if (level == 0 && ci > L->base_ci) {  /* level found? */    status = 1;    ar->i_ci = cast_int(ci - L->base_ci);  }  else if (level < 0) {  /* level is of a lost tail call? */    status = 1;    ar->i_ci = 0;  }  else status = 0;  /* no such level */  lua_unlock(L);  return status;}static Proto *getluaproto (CallInfo *ci) {  return (isLua(ci) ? ci_func(ci)->l.p : NULL);}static const char *findlocal (lua_State *L, CallInfo *ci, int n) {  const char *name;  Proto *fp = getluaproto(ci);  if (fp && (name = luaF_getlocalname(fp, n, currentpc(L, ci))) != NULL)    return name;  /* is a local variable in a Lua function */  else {    StkId limit = (ci == L->ci) ? L->top : (ci+1)->func;    if (limit - ci->base >= n && n > 0)  /* is 'n' inside 'ci' stack? */      return "(*temporary)";    else      return NULL;  }}LUA_API const char *lua_getlocal (lua_State *L, const lua_Debug *ar, int n) {  CallInfo *ci = L->base_ci + ar->i_ci;  const char *name = findlocal(L, ci, n);  lua_lock(L);  if (name)      luaA_pushobject(L, ci->base + (n - 1));  lua_unlock(L);  return name;}LUA_API const char *lua_setlocal (lua_State *L, const lua_Debug *ar, int n) {  CallInfo *ci = L->base_ci + ar->i_ci;  const char *name = findlocal(L, ci, n);  lua_lock(L);  if (name)      setobjs2s(L, ci->base + (n - 1), L->top - 1);  L->top--;  /* pop value */  lua_unlock(L);  return name;}static void funcinfo (lua_Debug *ar, Closure *cl) {  if (cl->c.isC) {    ar->source = "=[C]";    ar->linedefined = -1;    ar->lastlinedefined = -1;    ar->what = "C";  }  else {    ar->source = getstr(cl->l.p->source);    ar->linedefined = cl->l.p->linedefined;    ar->lastlinedefined = cl->l.p->lastlinedefined;    ar->what = (ar->linedefined == 0) ? "main" : "Lua";  }  luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE);}static void info_tailcall (lua_Debug *ar) {  ar->name = ar->namewhat = "";  ar->what = "tail";  ar->lastlinedefined = ar->linedefined = ar->currentline = -1;  ar->source = "=(tail call)";  luaO_chunkid(ar->short_src, ar->source, LUA_IDSIZE);  ar->nups = 0;}static void collectvalidlines (lua_State *L, Closure *f) {  if (f == NULL || f->c.isC) {    setnilvalue(L->top);  }  else {    Table *t = luaH_new(L, 0, 0);    int *lineinfo = f->l.p->lineinfo;    int i;    for (i=0; i<f->l.p->sizelineinfo; i++)      setbvalue(luaH_setnum(L, t, lineinfo[i]), 1);    sethvalue(L, L->top, t);   }  incr_top(L);}static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar,                    Closure *f, CallInfo *ci) {  int status = 1;  if (f == NULL) {    info_tailcall(ar);    return status;  }  for (; *what; what++) {    switch (*what) {      case 'S': {        funcinfo(ar, f);        break;      }      case 'l': {        ar->currentline = (ci) ? currentline(L, ci) : -1;        break;      }      case 'u': {        ar->nups = f->c.nupvalues;        break;      }      case 'n': {        ar->namewhat = (ci) ? getfuncname(L, ci, &ar->name) : NULL;        if (ar->namewhat == NULL) {          ar->namewhat = "";  /* not found */          ar->name = NULL;        }        break;      }      case 'L':      case 'f':  /* handled by lua_getinfo */        break;      default: status = 0;  /* invalid option */    }  }  return status;}LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) {  int status;  Closure *f = NULL;  CallInfo *ci = NULL;  lua_lock(L);  if (*what == '>') {    StkId func = L->top - 1;    luai_apicheck(L, ttisfunction(func));    what++;  /* skip the '>' */    f = clvalue(func);    L->top--;  /* pop function */  }  else if (ar->i_ci != 0) {  /* no tail call? */    ci = L->base_ci + ar->i_ci;    lua_assert(ttisfunction(ci->func));    f = clvalue(ci->func);  }  status = auxgetinfo(L, what, ar, f, ci);  if (strchr(what, 'f')) {    if (f == NULL) setnilvalue(L->top);    else setclvalue(L, L->top, f);    incr_top(L);  }  if (strchr(what, 'L'))    collectvalidlines(L, f);  lua_unlock(L);  return status;}/*** {======================================================** Symbolic Execution and code checker** =======================================================*/#define check(x)		if (!(x)) return 0;#define checkjump(pt,pc)	check(0 <= pc && pc < pt->sizecode)#define checkreg(pt,reg)	check((reg) < (pt)->maxstacksize)static int precheck (const Proto *pt) {  check(pt->maxstacksize <= MAXSTACK);  check(pt->numparams+(pt->is_vararg & VARARG_HASARG) <= pt->maxstacksize);  check(!(pt->is_vararg & VARARG_NEEDSARG) ||              (pt->is_vararg & VARARG_HASARG));  check(pt->sizeupvalues <= pt->nups);  check(pt->sizelineinfo == pt->sizecode || pt->sizelineinfo == 0);  check(pt->sizecode > 0 && GET_OPCODE(pt->code[pt->sizecode-1]) == OP_RETURN);  return 1;}#define checkopenop(pt,pc)	luaG_checkopenop((pt)->code[(pc)+1])int luaG_checkopenop (Instruction i) {  switch (GET_OPCODE(i)) {    case OP_CALL:    case OP_TAILCALL:    case OP_RETURN:    case OP_SETLIST: {      check(GETARG_B(i) == 0);      return 1;    }    default: return 0;  /* invalid instruction after an open call */  }}static int checkArgMode (const Proto *pt, int r, enum OpArgMask mode) {  switch (mode) {    case OpArgN: check(r == 0); break;    case OpArgU: break;    case OpArgR: checkreg(pt, r); break;    case OpArgK:      check(ISK(r) ? INDEXK(r) < pt->sizek : r < pt->maxstacksize);      break;  }  return 1;}static Instruction symbexec (const Proto *pt, int lastpc, int reg) {  int pc;  int last;  /* stores position of last instruction that changed `reg' */  last = pt->sizecode-1;  /* points to final return (a `neutral' instruction) */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区视频在线播放| 亚洲资源中文字幕| 极品尤物av久久免费看| 日韩一区二区麻豆国产| 天天色综合成人网| 3d动漫精品啪啪一区二区竹菊| 亚洲va欧美va国产va天堂影院| 欧美肥妇free| 久久99国产精品久久| 久久精品无码一区二区三区| 国产成人亚洲综合色影视| 中文字幕电影一区| 一本色道综合亚洲| 一区二区三区在线观看国产 | 国产精品一区免费在线观看| 精品国产123| 不卡av在线网| 亚洲妇女屁股眼交7| 日韩一区二区精品在线观看| 成人视屏免费看| 亚洲影院在线观看| 日韩精品中午字幕| 成人精品一区二区三区四区 | 欧美日韩成人在线| 麻豆久久久久久久| 国产精品私人自拍| 欧美午夜片在线看| 精一区二区三区| 亚洲精品视频一区| 91精品国产高清一区二区三区蜜臀| 国产一区二区精品久久91| 国产精品久久久久影院| 欧美日韩国产精选| 国产精品538一区二区在线| 一区二区欧美在线观看| 日韩网站在线看片你懂的| 波多野结衣91| 麻豆精品视频在线观看| 中文字幕日本不卡| 在线不卡一区二区| 国产成人av一区| 午夜视黄欧洲亚洲| 亚洲国产精品成人综合色在线婷婷 | 精彩视频一区二区三区| 一区二区三区在线播| 欧美va亚洲va| 欧美日韩综合一区| 成人激情av网| 精品亚洲免费视频| 亚洲在线视频一区| 欧美国产日韩精品免费观看| 欧美一级午夜免费电影| 91免费视频观看| 国产伦精品一区二区三区视频青涩| 午夜av区久久| 一区二区在线观看不卡| 国产欧美一区二区三区沐欲| 日韩午夜在线播放| 欧美三级电影在线观看| 成人午夜精品在线| 极品美女销魂一区二区三区| 日韩主播视频在线| 一区二区三区在线不卡| 最新国产精品久久精品| 久久久久国产一区二区三区四区| 8x8x8国产精品| 欧美日本国产视频| 欧美影院精品一区| 99riav久久精品riav| 懂色av中文字幕一区二区三区| 久国产精品韩国三级视频| 日韩成人精品视频| 亚洲一级在线观看| 一区二区在线看| 亚洲精品久久久蜜桃| 亚洲视频狠狠干| 国产精品全国免费观看高清 | 激情综合五月婷婷| 喷水一区二区三区| 全国精品久久少妇| 日韩专区欧美专区| 日本在线不卡视频一二三区| 日日夜夜免费精品| 日韩中文字幕av电影| 午夜精品福利一区二区三区av| 日韩精品成人一区二区三区 | 亚洲午夜私人影院| 亚洲精品日韩一| 亚洲精品免费视频| 亚洲美女视频在线| 亚洲综合小说图片| 亚洲一级在线观看| 日韩电影免费在线看| 免费在线观看不卡| 国产一区二区调教| 成人激情免费电影网址| 色噜噜狠狠一区二区三区果冻| 欧美性一二三区| 91麻豆精品国产91| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产清纯在线一区二区www| 日本一区二区三区在线观看| 亚洲视频精选在线| 调教+趴+乳夹+国产+精品| 美女精品自拍一二三四| 国产专区欧美精品| 9人人澡人人爽人人精品| 在线免费观看日韩欧美| 91精品国产麻豆| 国产日韩欧美综合在线| 亚洲免费在线视频一区 二区| 五月激情六月综合| 极品瑜伽女神91| av成人免费在线| 在线看不卡av| 欧美麻豆精品久久久久久| 久久你懂得1024| 国产精品全国免费观看高清| 一区二区三区免费在线观看| 亚洲1区2区3区视频| 另类小说色综合网站| 喷水一区二区三区| 国产激情视频一区二区三区欧美 | 韩国av一区二区| 91丨九色丨蝌蚪丨老版| 成人毛片在线观看| 91精品国产91热久久久做人人| 精品粉嫩超白一线天av| 国产精品久久久久aaaa| 亚洲一区在线观看视频| 蜜桃av一区二区| 成人av免费在线| 欧美人体做爰大胆视频| 26uuu精品一区二区在线观看| 国产精品高潮呻吟| 亚洲.国产.中文慕字在线| 免费观看久久久4p| 成人黄色片在线观看| 欧美精品xxxxbbbb| 国产亚洲精品7777| 亚洲综合视频在线观看| 国产精品一线二线三线精华| 欧美亚洲国产一区在线观看网站| 日韩精品在线一区| 国产三级欧美三级日产三级99| 中文字幕精品—区二区四季| 天堂精品中文字幕在线| 一道本成人在线| 精品精品国产高清一毛片一天堂| 国产精品美女久久久久高潮| 日韩av一级电影| 99国产精品国产精品毛片| 久久久久久黄色| 日韩av在线发布| 色狠狠色噜噜噜综合网| 久久久久国产一区二区三区四区| 首页国产丝袜综合| 在线精品视频一区二区三四| 国产精品萝li| 精品一区二区三区日韩| 欧美性猛片aaaaaaa做受| 精品国产一区二区三区久久久蜜月 | 欧美一级搡bbbb搡bbbb| 亚洲视频小说图片| 成人av手机在线观看| 久久久综合视频| 视频一区中文字幕| 99视频国产精品| 国产网站一区二区| 亚洲成人av免费| 欧美日韩国产小视频在线观看| 一区二区三区在线视频免费观看| 成人av在线观| 中文字幕 久热精品 视频在线 | 亚洲一区二区三区中文字幕 | 色国产精品一区在线观看| 国产午夜亚洲精品午夜鲁丝片 | 麻豆精品视频在线观看免费| 在线观看一区日韩| 亚洲午夜三级在线| 一本色道久久综合亚洲91| 国产精品色哟哟| 丁香婷婷综合五月| 欧美日韩中文一区| 香蕉加勒比综合久久| 69堂精品视频| 日韩国产在线观看一区| 欧美日韩在线三级| 亚洲国产日韩精品| 欧美日韩一区二区三区视频| 午夜国产不卡在线观看视频| 色香色香欲天天天影视综合网| 亚洲国产成人高清精品| 欧美四级电影网| 亚洲一区二区三区四区不卡| 4hu四虎永久在线影院成人| 国产一区二区三区蝌蚪| 久久欧美一区二区| 成人精品高清在线| 亚洲日韩欧美一区二区在线|