/* pr_debug.h progs debug info Copyright (C) 2001 Bill Currie Author: Bill Currie Date: 2001/7/12 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to: Free Software Foundation, Inc. 59 Temple Place - Suite 330 Boston, MA 02111-1307, USA */ #ifndef __QF_pr_debug_h #define __QF_pr_debug_h #ifndef __QFCC__ #include "QF/progs/pr_comp.h" typedef struct pr_compunit_s { pr_uint_t unit_name; pr_uint_t basedir; pr_uint_t num_files; pr_uint_t files[1]; } pr_compunit_t; typedef struct pr_auxfunction_s { pr_uint_t function; // function def this aux info is for pr_uint_t source_line; // first source line for this function pr_uint_t line_info; // index to first lineno entry pr_uint_t local_defs; // index to the first local def pr_uint_t num_locals; // number of local defs pr_uint_t return_type; // return type of this function } pr_auxfunction_t; typedef struct pr_lineno_s { union { pr_uint_t func; // (line==0) index of function aux info pr_uint_t addr; // (line!=0) dstatement_t address } fa; pr_uint_t line; } pr_lineno_t; #define PROG_DEBUG_VERSION 0x00001004 // MMmmmRRR 0.001.004 (hex) typedef struct pr_debug_header_s { pr_int_t version; pr_ushort_t crc; // of the progs.dat this progs.sym file is for pr_ushort_t you_tell_me_and_we_will_both_know; pr_uint_t auxfunctions; pr_uint_t num_auxfunctions; pr_uint_t linenos; pr_uint_t num_linenos; pr_uint_t locals; pr_uint_t num_locals; pr_uint_t debug_defs; pr_uint_t num_debug_defs; pr_uint_t debug_data; pr_uint_t debug_data_size; } pr_debug_header_t; extern const char *prdebug_names[]; #endif typedef enum prdebug_e { prd_none, prd_trace, prd_breakpoint, prd_watchpoint, prd_subenter, prd_subexit, // current invocation of PR_ExecuteProgram finished prd_begin, // not sent by VM prd_terminate, // not sent by VM prd_runerror, prd_error, // lower level error thann prd_runerror } prdebug_t; #endif//__QF_pr_debug_h