VirtualBox

Changeset 53699 in vbox for trunk


Ignore:
Timestamp:
Jan 2, 2015 12:42:54 PM (10 years ago)
Author:
vboxsync
Message:

VBoxDTrace: Debugging the parser. (r76)

Location:
trunk/src/VBox/ExtPacks/VBoxDTrace
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/ExtPacks/VBoxDTrace/VBoxDTrace/Makefile.kmk

    r53664 r53699  
    3535VBoxDTrace_TEMPLATE = VBOXR3NPEXE
    3636VBoxDTrace_DEFS = RTMEM_WRAP_TO_EF_APIS
     37#VBoxDTrace_DEFS += YYDEBUG
    3738VBoxDTrace_SDKS = VBOX_ZLIB
    3839ifn1of ($(KBUILD_TARGET), win)
  • trunk/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_cc.c

    r53665 r53699  
    21712171         * we optionally display the parse tree if debugging is enabled.
    21722172         */
     2173fprintf(stderr, "debug: calling yyparse\n"); /* REMOVE ME */
    21732174        if (yyparse() != 0 || yypcb->pcb_root == NULL)
    2174                 xyerror(D_EMPTY, "empty D program translation unit\n");
     2175                xyerror(D_EMPTY, "empty D program translation unit (#1)\n");  /* REMOVE (#1) */
    21752176
    21762177        yybegin(YYS_DONE);
     
    22032204                if ((dnp = yypcb->pcb_root->dn_list) == NULL &&
    22042205                    !(yypcb->pcb_cflags & DTRACE_C_EMPTY))
    2205                         xyerror(D_EMPTY, "empty D program translation unit\n");
     2206                        xyerror(D_EMPTY, "empty D program translation unit (#2)\n"); /* REMOVE (#2) */
    22062207
    22072208                if ((yypcb->pcb_prog = dt_program_create(dtp)) == NULL)
  • trunk/src/VBox/ExtPacks/VBoxDTrace/onnv/lib/libdtrace/common/dt_lex.l

    r53654 r53699  
    5959                        size_t off = yypcb->pcb_strptr - yypcb->pcb_string; \
    6060                        if (off < yypcb->pcb_strlen) { \
     61            off = yypcb->pcb_strlen - off; \
    6162                                result = max_size; \
    62                                 if ((size_t)result > yypcb->pcb_strlen) \
    63                                         result = (int)yypcb->pcb_strlen; \
     63                                if ((size_t)result > off) \
     64                                        result = (int)off; \
    6465                                memcpy(buf, yypcb->pcb_strptr, result); \
    6566                                yypcb->pcb_strptr += result; \
    66                         } else \
    67                                 result = 0; \
     67            fprintf(stderr, "yy_input -> %d '%.*s'\n", result, result, buf); /* REMOVE ME */ \
     68         } else { \
     69            buf[0] = '\0'; \
     70            result = (YYSTATE) == S0; \
     71            fprintf(stderr, "yy_input -> %d\n", result); /* REMOVE ME */ \
     72         } \
    6873                } \
    6974        } while (0)
     
    594599<S0>{RGX_WS}    ; /* discard */
    595600<S0>"\\"\n      ; /* discard */
     601    /* VBOX - START */
     602<S0>"\0" {
     603            fprintf(stderr, "<S0>\\0\n");
     604            return (DT_TOK_EOF);
     605         }
     606    /* VBOX - END */
    596607<S0>.           yyerror("syntax error near \"%c\"\n", yytext[0]);
    597608
    598609<S1>"/*"        yyerror("/* encountered inside a comment\n");
    599610<S1>"*/"        BEGIN(yypcb->pcb_cstate);
     611 /* VBOX - START */
     612<S1>"\0"        yyerror("end-of-file encountered before matching */\n");
     613 /* VBOX - END */
    600614<S1>.|\n        ; /* discard */
    601615
     
    657671
    658672<S2>{RGX_WS}    ; /* discard */
     673 /* VBOX - START */
     674<S2>"\0" {
     675            fprintf(stderr, "<S2>\\0\n");
     676            return (DT_TOK_EOF);
     677         }
     678 /* VBOX - END */
    659679<S2>.           yyerror("syntax error near \"%c\"\n", yytext[0]);
    660680
     
    686706                }
    687707
     708 /* VBOX - BEGIN */
     709<S3>"\0"        yyerror("end-of-file encountered before end of control line\n");
     710 /* VBOX - END */
    688711<S3>.           yyerror("syntax error near \"%c\"\n", yytext[0]);
    689712
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette