aboutsummaryrefslogtreecommitdiff
path: root/ldebug.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2018-02-17 17:29:29 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2018-02-17 17:29:29 -0200
commit422318f6777d8d3bac13ade797d9c8eaa38686b6 (patch)
tree5cfabc21fcebb714daf237bff783fe9630e70582 /ldebug.c
parent49dae52d0808776f5861eb33efa1d13b05e44512 (diff)
downloadlua-422318f6777d8d3bac13ade797d9c8eaa38686b6.tar.gz
lua-422318f6777d8d3bac13ade797d9c8eaa38686b6.tar.bz2
lua-422318f6777d8d3bac13ade797d9c8eaa38686b6.zip
two new fields 'fTransfer'/'nTransfer' in 'lua_Debug' structure
(for information about values being given and returned in function calls)
Diffstat (limited to 'ldebug.c')
-rw-r--r--ldebug.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/ldebug.c b/ldebug.c
index 3ddac547..bede7e37 100644
--- a/ldebug.c
+++ b/ldebug.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ldebug.c,v 2.153 2018/02/06 19:16:56 roberto Exp roberto $ 2** $Id: ldebug.c,v 2.154 2018/02/09 15:16:06 roberto Exp roberto $
3** Debug Interface 3** Debug Interface
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -356,6 +356,14 @@ static int auxgetinfo (lua_State *L, const char *what, lua_Debug *ar,
356 } 356 }
357 break; 357 break;
358 } 358 }
359 case 'r': {
360 if (ci == NULL || !(ci->callstatus & CIST_TRAN))
361 ar->fTransfer = ar->nTransfer = 0;
362 else {
363 ar->fTransfer = ci->u2.transferinfo.fTransfer;
364 ar->nTransfer = ci->u2.transferinfo.nTransfer;
365 }
366 }
359 case 'L': 367 case 'L':
360 case 'f': /* handled by lua_getinfo */ 368 case 'f': /* handled by lua_getinfo */
361 break; 369 break;
@@ -790,7 +798,7 @@ void luaG_traceexec (lua_State *L) {
790 if (!isIT(*(ci->u.l.savedpc - 1))) 798 if (!isIT(*(ci->u.l.savedpc - 1)))
791 L->top = ci->top; /* prepare top */ 799 L->top = ci->top; /* prepare top */
792 if (counthook) 800 if (counthook)
793 luaD_hook(L, LUA_HOOKCOUNT, -1); /* call count hook */ 801 luaD_hook(L, LUA_HOOKCOUNT, -1, 0, 0); /* call count hook */
794 if (mask & LUA_MASKLINE) { 802 if (mask & LUA_MASKLINE) {
795 Proto *p = ci_func(ci)->p; 803 Proto *p = ci_func(ci)->p;
796 const Instruction *npc = ci->u.l.savedpc; 804 const Instruction *npc = ci->u.l.savedpc;
@@ -799,7 +807,7 @@ void luaG_traceexec (lua_State *L) {
799 npc <= L->oldpc || /* when jump back (loop), or when */ 807 npc <= L->oldpc || /* when jump back (loop), or when */
800 changedline(p, pcRel(L->oldpc, p), npci)) { /* enter new line */ 808 changedline(p, pcRel(L->oldpc, p), npci)) { /* enter new line */
801 int newline = luaG_getfuncline(p, npci); /* new line */ 809 int newline = luaG_getfuncline(p, npci); /* new line */
802 luaD_hook(L, LUA_HOOKLINE, newline); /* call line hook */ 810 luaD_hook(L, LUA_HOOKLINE, newline, 0, 0); /* call line hook */
803 } 811 }
804 L->oldpc = npc; 812 L->oldpc = npc;
805 } 813 }