diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1995-10-17 12:12:45 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1995-10-17 12:12:45 -0200 |
commit | d80659759bcbcabf8b964356e5c9c867cd55effd (patch) | |
tree | 0b5df11f98eda46d3d2517402659f0863ef1dcab | |
parent | d24253d92f1579032c7a6a30e50bba75ca56d4fe (diff) | |
download | lua-d80659759bcbcabf8b964356e5c9c867cd55effd.tar.gz lua-d80659759bcbcabf8b964356e5c9c867cd55effd.tar.bz2 lua-d80659759bcbcabf8b964356e5c9c867cd55effd.zip |
new module luadebug.h.
-rw-r--r-- | iolib.c | 33 | ||||
-rw-r--r-- | lua.h | 4 | ||||
-rw-r--r-- | makefile | 8 | ||||
-rw-r--r-- | opcode.c | 7 |
4 files changed, 42 insertions, 10 deletions
@@ -3,7 +3,7 @@ | |||
3 | ** Input/output library to LUA | 3 | ** Input/output library to LUA |
4 | */ | 4 | */ |
5 | 5 | ||
6 | char *rcs_iolib="$Id: iolib.c,v 1.22 1995/10/04 13:53:10 roberto Exp roberto $"; | 6 | char *rcs_iolib="$Id: iolib.c,v 1.23 1995/10/11 20:50:56 roberto Exp roberto $"; |
7 | 7 | ||
8 | #include <stdio.h> | 8 | #include <stdio.h> |
9 | #include <ctype.h> | 9 | #include <ctype.h> |
@@ -14,6 +14,7 @@ char *rcs_iolib="$Id: iolib.c,v 1.22 1995/10/04 13:53:10 roberto Exp roberto $"; | |||
14 | #include <stdlib.h> | 14 | #include <stdlib.h> |
15 | 15 | ||
16 | #include "lua.h" | 16 | #include "lua.h" |
17 | #include "luadebug.h" | ||
17 | #include "lualib.h" | 18 | #include "lualib.h" |
18 | 19 | ||
19 | static FILE *in=stdin, *out=stdout; | 20 | static FILE *in=stdin, *out=stdout; |
@@ -580,7 +581,7 @@ static void io_exit (void) | |||
580 | { | 581 | { |
581 | lua_Object o = lua_getparam(1); | 582 | lua_Object o = lua_getparam(1); |
582 | if (lua_isstring(o)) | 583 | if (lua_isstring(o)) |
583 | printf("%s\n", lua_getstring(o)); | 584 | fprintf(stderr, "%s\n", lua_getstring(o)); |
584 | exit(1); | 585 | exit(1); |
585 | } | 586 | } |
586 | 587 | ||
@@ -600,6 +601,33 @@ static void io_debug (void) | |||
600 | } | 601 | } |
601 | } | 602 | } |
602 | 603 | ||
604 | |||
605 | static void print_message (void) | ||
606 | { | ||
607 | lua_Object o = lua_getparam(1); | ||
608 | char *s = lua_isstring(o) ? lua_getstring(o) : "(no messsage)"; | ||
609 | int level = 0; | ||
610 | lua_Object func; | ||
611 | fprintf(stderr, "lua: %s\n", s); | ||
612 | fprintf(stderr, "Active Stack:\n"); | ||
613 | while ((func = lua_stackedfunction(level++)) != LUA_NOOBJECT) | ||
614 | { | ||
615 | char *filename; char *funcname; | ||
616 | char *objname; int linedefined; | ||
617 | lua_funcinfo(func, &filename, &funcname, &objname, &linedefined); | ||
618 | if (objname == NULL) | ||
619 | if (funcname) | ||
620 | fprintf(stderr, "\t%s\n", funcname); | ||
621 | else | ||
622 | { | ||
623 | fprintf(stderr, "\tmain of %s\n", filename); | ||
624 | } | ||
625 | else | ||
626 | fprintf(stderr, "\t%s:%s\n", objname, funcname); | ||
627 | /* fprintf(stderr, "\t(in file: %s)\n", filename); */ | ||
628 | } | ||
629 | } | ||
630 | |||
603 | /* | 631 | /* |
604 | ** Open io library | 632 | ** Open io library |
605 | */ | 633 | */ |
@@ -619,4 +647,5 @@ void iolib_open (void) | |||
619 | lua_register ("beep", io_beep); | 647 | lua_register ("beep", io_beep); |
620 | lua_register ("exit", io_exit); | 648 | lua_register ("exit", io_exit); |
621 | lua_register ("debug", io_debug); | 649 | lua_register ("debug", io_debug); |
650 | lua_setfallback("error", print_message); | ||
622 | } | 651 | } |
@@ -2,7 +2,7 @@ | |||
2 | ** LUA - Linguagem para Usuarios de Aplicacao | 2 | ** LUA - Linguagem para Usuarios de Aplicacao |
3 | ** Grupo de Tecnologia em Computacao Grafica | 3 | ** Grupo de Tecnologia em Computacao Grafica |
4 | ** TeCGraf - PUC-Rio | 4 | ** TeCGraf - PUC-Rio |
5 | ** $Id: lua.h,v 3.16 1995/01/27 17:19:06 celes Exp roberto $ | 5 | ** $Id: lua.h,v 3.17 1995/10/06 14:11:10 roberto Exp roberto $ |
6 | */ | 6 | */ |
7 | 7 | ||
8 | 8 | ||
@@ -24,6 +24,8 @@ typedef enum | |||
24 | LUA_T_ARRAY = -4, | 24 | LUA_T_ARRAY = -4, |
25 | LUA_T_FUNCTION = -5, | 25 | LUA_T_FUNCTION = -5, |
26 | LUA_T_CFUNCTION= -6, | 26 | LUA_T_CFUNCTION= -6, |
27 | LUA_T_MARK = -7, | ||
28 | LUA_T_CMARK = -8, | ||
27 | LUA_T_USERDATA = 0 | 29 | LUA_T_USERDATA = 0 |
28 | } lua_Type; | 30 | } lua_Type; |
29 | 31 | ||
@@ -1,4 +1,4 @@ | |||
1 | # $Id: makefile,v 1.13 1995/10/04 19:19:46 roberto Exp roberto $ | 1 | # $Id: makefile,v 1.13 1995/10/09 18:51:49 roberto Exp roberto $ |
2 | 2 | ||
3 | #configuration | 3 | #configuration |
4 | 4 | ||
@@ -61,7 +61,7 @@ clear : | |||
61 | rcsclean | 61 | rcsclean |
62 | rm -f *.o | 62 | rm -f *.o |
63 | rm -f parser.c parser.h | 63 | rm -f parser.c parser.h |
64 | co lua.h lualib.h | 64 | co lua.h lualib.h luadebug.h |
65 | 65 | ||
66 | % : RCS/%,v | 66 | % : RCS/%,v |
67 | co $@ | 67 | co $@ |
@@ -72,14 +72,14 @@ func.o : func.c table.h tree.h types.h opcode.h lua.h func.h mem.h | |||
72 | hash.o : hash.c mem.h opcode.h lua.h types.h tree.h func.h hash.h table.h | 72 | hash.o : hash.c mem.h opcode.h lua.h types.h tree.h func.h hash.h table.h |
73 | inout.o : inout.c mem.h opcode.h lua.h types.h tree.h func.h hash.h inout.h \ | 73 | inout.o : inout.c mem.h opcode.h lua.h types.h tree.h func.h hash.h inout.h \ |
74 | table.h | 74 | table.h |
75 | iolib.o : iolib.c lua.h lualib.h | 75 | iolib.o : iolib.c lua.h lualib.h luadebug.h |
76 | lex.o : lex.c mem.h tree.h types.h table.h opcode.h lua.h func.h inout.h parser.h \ | 76 | lex.o : lex.c mem.h tree.h types.h table.h opcode.h lua.h func.h inout.h parser.h \ |
77 | ugly.h | 77 | ugly.h |
78 | lua.o : lua.c lua.h lualib.h | 78 | lua.o : lua.c lua.h lualib.h |
79 | mathlib.o : mathlib.c lualib.h lua.h | 79 | mathlib.o : mathlib.c lualib.h lua.h |
80 | mem.o : mem.c mem.h lua.h | 80 | mem.o : mem.c mem.h lua.h |
81 | opcode.o : opcode.c mem.h opcode.h lua.h types.h tree.h func.h hash.h inout.h \ | 81 | opcode.o : opcode.c mem.h opcode.h lua.h types.h tree.h func.h hash.h inout.h \ |
82 | table.h fallback.h | 82 | table.h fallback.h luadebug.h |
83 | parser.o : parser.c mem.h opcode.h lua.h types.h tree.h func.h hash.h inout.h \ | 83 | parser.o : parser.c mem.h opcode.h lua.h types.h tree.h func.h hash.h inout.h \ |
84 | table.h | 84 | table.h |
85 | strlib.o : strlib.c lua.h lualib.h | 85 | strlib.o : strlib.c lua.h lualib.h |
@@ -3,7 +3,7 @@ | |||
3 | ** TecCGraf - PUC-Rio | 3 | ** TecCGraf - PUC-Rio |
4 | */ | 4 | */ |
5 | 5 | ||
6 | char *rcs_opcode="$Id: opcode.c,v 3.43 1995/10/13 15:16:25 roberto Exp roberto $"; | 6 | char *rcs_opcode="$Id: opcode.c,v 3.44 1995/10/17 11:58:41 roberto Exp roberto $"; |
7 | 7 | ||
8 | #include <setjmp.h> | 8 | #include <setjmp.h> |
9 | #include <stdlib.h> | 9 | #include <stdlib.h> |
@@ -11,6 +11,7 @@ char *rcs_opcode="$Id: opcode.c,v 3.43 1995/10/13 15:16:25 roberto Exp roberto $ | |||
11 | #include <string.h> | 11 | #include <string.h> |
12 | #include <math.h> | 12 | #include <math.h> |
13 | 13 | ||
14 | #include "luadebug.h" | ||
14 | #include "mem.h" | 15 | #include "mem.h" |
15 | #include "opcode.h" | 16 | #include "opcode.h" |
16 | #include "hash.h" | 17 | #include "hash.h" |
@@ -353,7 +354,7 @@ void lua_error (char *s) | |||
353 | } | 354 | } |
354 | 355 | ||
355 | 356 | ||
356 | lua_Object luaD_stackedfunction (int level) | 357 | lua_Object lua_stackedfunction (int level) |
357 | { | 358 | { |
358 | Object *p = top; | 359 | Object *p = top; |
359 | while (--p >= stack) | 360 | while (--p >= stack) |
@@ -364,7 +365,7 @@ lua_Object luaD_stackedfunction (int level) | |||
364 | } | 365 | } |
365 | 366 | ||
366 | 367 | ||
367 | void luaD_funcInfo (lua_Object func, char **filename, char **funcname, | 368 | void lua_funcinfo (lua_Object func, char **filename, char **funcname, |
368 | char **objname, int *linedefined) | 369 | char **objname, int *linedefined) |
369 | { | 370 | { |
370 | return luaI_funcInfo(Address(func), filename, funcname, objname, linedefined); | 371 | return luaI_funcInfo(Address(func), filename, funcname, objname, linedefined); |