NEURON
debug.cpp
Go to the documentation of this file.
1 #include <../../nrnconf.h>
2 /* /local/src/master/nrn/src/oc/debug.cpp,v 1.7 1996/04/09 16:39:14 hines Exp */
3 #include "hoc.h"
4 #include "code.h"
5 #include "equation.h"
6 #include <stdio.h>
7 int zzdebug;
8 
9 #if DOS
10 #define prcod(c1,c2) else if (p->pf == c1) Printf("%p %p %s", p, p->pf, c2);
11 #else
12 #define prcod(c1,c2) else if (p->pf == c1) Printf("%p %p %s", p, p->pf, c2);
13 #endif
14 
15 void debug(void) /* print the machine */
16 {
17  if (zzdebug == 0)
18  zzdebug = 1;
19  else
20  zzdebug = 0;
21 }
22 
23 void debugzz(Inst* p) /* running copy of calls to execute */
24 {
25 #if !OCSMALL
26  {
27  if(p->in == STOP) Printf("STOP\n");
28  prcod(nopop, "POP\n")
29  prcod(eval, "EVAL\n")
30  prcod(add, "ADD\n")
31  prcod(hoc_sub, "SUB\n")
32  prcod(mul, "MUL\n")
33  prcod(hoc_div, "DIV\n")
34  prcod(negate, "NEGATE\n")
35  prcod(power, "POWER\n")
36  prcod(assign, "ASSIGN\n")
37  prcod(bltin, "BLTIN\n")
38  prcod(varpush, "VARPUSH\n")
39  prcod(constpush, "CONSTPUSH\n")
40  prcod(pushzero, "PUSHZERO\n")
41  prcod(print, "PRINT\n")
42  prcod(varread, "VARREAD\n")
43  prcod(prexpr, "PREXPR\n")
44  prcod(prstr,"PRSTR\n")
45  prcod(gt, "GT\n")
46  prcod(lt, "LT\n")
47  prcod(eq, "EQ\n")
48  prcod(ge, "GE\n")
49  prcod(le, "LE\n")
50  prcod(ne, "NE\n")
51  prcod(hoc_and, "AND\n")
52  prcod(hoc_or, "OR\n")
53  prcod(hoc_not, "NOT\n")
54  prcod(ifcode, "IFCODE\n")
55  prcod(forcode, "FORCODE\n")
56  prcod(shortfor, "SHORTFOR\n")
57  prcod(call, "CALL\n")
58  prcod(arg, "ARG\n")
59  prcod(argassign, "ARGASSIGN\n")
60  prcod(funcret, "FUNCRET\n")
61  prcod(procret, "PROCRET\n")
62  prcod(hocobjret, "HOCOBJRET\n")
63 #if DOS
64 /* no room for all this stuff */
65 #else
66  prcod(hoc_iterator_stmt, "hoc_iterator_stmt\n")
67  prcod(hoc_iterator, "hoc_iterator\n")
68  prcod(hoc_argrefasgn, "ARGREFASSIGN\n")
69  prcod(hoc_argref, "ARGREF\n")
70  prcod(hoc_stringarg, "STRINGARG\n")
71  prcod(hoc_push_string, "push_string\n")
72  prcod(Break, "Break\n")
73  prcod(Continue, "Continue\n")
74  prcod(Stop, "Stop()\n")
75  prcod(assstr, "assstr\n")
76  prcod(hoc_evalpointer, "evalpointer\n")
77  prcod(hoc_newline, "newline\n")
78  prcod(hoc_delete_symbol, "delete_symbol\n")
79  prcod(hoc_cyclic, "cyclic\n")
80  prcod(hoc_parallel_begin, "parallel_begin\n")
81  prcod(hoc_parallel_end, "parallel_end\n")
82 
83  prcod(dep_make, "DEPENDENT\n")
84  prcod(eqn_name, "EQUATION\n")
85  prcod(eqn_init, "eqn_init()\n")
86  prcod(eqn_lhs, "eqn_lhs()\n")
87  prcod(eqn_rhs, "eqn_rhs()\n")
88 /*OOP*/
89  prcod(hoc_push_current_object, "hoc_push_current_object\n")
90  prcod(hoc_objectvar, "objectvar\n")
91  prcod(hoc_object_component, "objectcomponent()\n")
92  prcod(hoc_object_eval, "objecteval\n")
93  prcod(hoc_object_asgn, "objectasgn\n")
94  prcod(hoc_objvardecl, "objvardecl\n")
95  prcod(hoc_cmp_otype, "cmp_otype\n")
96  prcod(hoc_newobj, "newobject\n")
97  prcod(hoc_asgn_obj_to_str, "assignobj2str\n")
98  prcod(hoc_known_type, "known_type\n")
99  prcod(hoc_push_string, "push_string\n")
100  prcod(hoc_objectarg, "hoc_objectarg\n")
101  prcod(hoc_ob_pointer, "hoc_ob_pointer\n")
102  prcod(hoc_constobject, "hoc_constobject\n")
103 
104 /*NEWCABLE*/
105  prcod(connect_obsec_syntax, "connect_obsec_syntax()\n")
106  prcod(connectsection, "connectsection()\n")
107  prcod(simpleconnectsection, "simpleconnectsection()\n")
108  prcod(connectpointer, "connectpointer()\n")
109  prcod(add_section, "add_section()\n")
110  prcod(range_const, "range_const()\n")
111  prcod(range_interpolate, "range_interpolate()\n")
112  prcod(range_interpolate_single, "range_interpolate_single()\n")
113  prcod(rangevareval, "rangevareval()\n")
114  prcod(rangepoint, "rangepoint()\n")
115  prcod(sec_access, "sec_access()\n")
116  prcod(ob_sec_access, "ob_sec_access()\n")
117  prcod(mech_access, "mech_access()\n")
118  prcod(for_segment, "forsegment()\n")
119  prcod(sec_access_push, "sec_access_push()\n")
120  prcod(sec_access_pop, "sec_access_pop()\n")
121  prcod(forall_section, "forall_section()\n")
122  prcod(hoc_ifsec, "hoc_ifsec()\n")
123  prcod(hoc_ifseclist, "hocifseclist()\n")
124  prcod(forall_sectionlist, "forall_sectionlist()\n")
125  prcod(connect_point_process_pointer, "connect_point_process_pointer\n")
126  prcod(nrn_cppp, "nrn_cppp()\n")
127  prcod(rangevarevalpointer, "rangevarevalpointer\n")
128  prcod(sec_access_object, "sec_access_object\n")
129  prcod(mech_uninsert, "mech_uninsert\n")
130 #endif
131  else
132  {
133  size_t offset = (size_t)p->in;
134  if (offset < 1000)
135  Printf("relative %d\n", p->i);
136  else {
137  offset = (size_t)(p->in) - (size_t)p;
138  if (offset > (size_t)prog - (size_t)p
139  && offset < (size_t)(&prog[2000]) - (size_t)p )
140  Printf("relative %ld\n", p->in - p);
141  else if (p->sym->name != (char *) 0)
142  {
143  if (p->sym->name[0] == '\0') {
144  Printf("constant or string pointer\n");
145 /*Printf("value=%g\n", p->sym->u.val);*/
146  }
147  else
148  Printf("%s\n", p->sym->name);
149  }
150  else
151  Printf("symbol without name\n");
152  }
153  }
154  p++;
155  }
156 #endif /*OCSMALL*/
157 }
void sec_access_pop(void)
Definition: cabcode.cpp:144
void hoc_stringarg(void)
Definition: code.cpp:1639
#define Printf
Definition: model.h:252
void connect_obsec_syntax(void)
HocStruct Symbol * sym
Definition: hocdec.h:61
void nrn_cppp(void)
Definition: point.cpp:317
#define bltin
Definition: redef.h:33
void Stop(void)
Definition: code.cpp:1275
void hoc_argref(void)
Definition: code.cpp:1705
void hoc_cmp_otype(void)
#define forcode
Definition: redef.h:62
void sec_access_object(void)
Definition: cabcode.cpp:721
if(status)
#define procret
Definition: redef.h:111
void hoc_div(void)
Definition: code.cpp:2035
#define assstr
Definition: redef.h:31
void hoc_ifseclist(void)
Definition: seclist.cpp:343
#define ge
Definition: redef.h:73
void hoc_newobj(void)
Definition: hoc_oop.cpp:665
void rangevareval(void)
Definition: cabcode.cpp:1455
void debugzz(Inst *p)
Definition: debug.cpp:23
size_t p
void hoc_objectarg(void)
char * name
Definition: model.h:72
void forall_sectionlist(void)
Definition: seclist.cpp:297
void hoc_known_type(void)
void hoc_not(void)
Definition: code.cpp:2199
#define print
Definition: redef.h:109
#define Continue
Definition: redef.h:7
void hoc_object_component()
Definition: hoc_oop.cpp:1032
void rangepoint(void)
Definition: cabcode.cpp:1464
void hoc_cyclic(void)
Definition: code.cpp:2056
void forall_section(void)
Definition: cabcode.cpp:2151
void sec_access_push(void)
Definition: cabcode.cpp:738
Definition: hocdec.h:51
#define mul
Definition: redef.h:93
void hoc_argrefasgn(void)
Definition: code.cpp:1684
void hoc_asgn_obj_to_str(void)
#define eqn_rhs
Definition: redef.h:54
void hoc_iterator(void)
Definition: code.cpp:1016
void hoc_constobject(void)
Definition: hoc_oop.cpp:936
#define lt
Definition: redef.h:91
void hoc_objvardecl(void)
void ob_sec_access(void)
Definition: cabcode.cpp:827
void connectsection(void)
Definition: cabcode.cpp:664
void simpleconnectsection(void)
Definition: cabcode.cpp:655
Inst * prog
Definition: code.cpp:136
#define argassign
Definition: redef.h:29
void add_section(void)
Definition: cabcode.cpp:185
#define STOP
Definition: hocdec.h:66
#define eqn_name
Definition: redef.h:53
void hoc_and(void)
Definition: code.cpp:2183
#define dep_make
Definition: redef.h:47
#define assign
Definition: redef.h:30
void connectpointer(void)
Definition: cabcode.cpp:1125
#define negate
Definition: redef.h:95
#define power
Definition: redef.h:107
#define nopop
Definition: redef.h:106
void hoc_objectvar()
Definition: hoc_oop.cpp:888
#define Break
Definition: _defines.h:55
void debug(void)
Definition: debug.cpp:15
void hoc_iterator_stmt(void)
Definition: code.cpp:1063
void hoc_push_string()
Definition: code.cpp:671
void for_segment(void)
Definition: code.cpp:1237
double * hoc_evalpointer()
Definition: code.cpp:1891
void hoc_or(void)
Definition: code.cpp:2191
void range_interpolate(void)
Definition: cabcode.cpp:1195
#define eq
Definition: redef.h:49
#define le
Definition: redef.h:88
void hoc_push_current_object(void)
#define varread
Definition: redef.h:132
#define eqn_init
Definition: redef.h:51
#define ne
Definition: redef.h:94
void hoc_delete_symbol(void)
Definition: code.cpp:2528
#define funcret
Definition: redef.h:68
void sec_access(void)
Definition: cabcode.cpp:709
#define call
Definition: redef.h:34
#define pushzero
Definition: redef.h:42
void hoc_parallel_end(void)
void hoc_newline(void)
Definition: code.cpp:2559
void mech_uninsert(void)
Definition: cabcode.cpp:907
#define prcod(c1, c2)
Definition: debug.cpp:12
#define prexpr
Definition: redef.h:108
#define prstr
Definition: redef.h:117
void hoc_parallel_begin(void)
#define eqn_lhs
Definition: redef.h:52
void rangevarevalpointer(void)
Definition: cabcode.cpp:1410
void connect_point_process_pointer(void)
Definition: point.cpp:321
#define eval
Definition: redef.h:57
void hoc_object_eval(void)
Definition: hoc_oop.cpp:1318
#define shortfor
Definition: redef.h:63
void hoc_ob_pointer(void)
void hoc_ifsec(void)
Definition: cabcode.cpp:2221
void hoc_sub(void)
Definition: code.cpp:1980
#define ifcode
Definition: redef.h:76
#define varpush
Definition: redef.h:131
int zzdebug
Definition: debug.cpp:7
void range_interpolate_single(void)
Definition: cabcode.cpp:1153
void hoc_object_asgn(void)
#define gt
Definition: redef.h:75
#define arg
Definition: redef.h:28
void hocobjret(void)
Definition: code.cpp:1503
void mech_access(void)
Definition: cabcode.cpp:839
#define add
Definition: redef.h:24
void range_const(void)
Definition: cabcode.cpp:1052
#define constpush
Definition: redef.h:41
int i
Definition: hocdec.h:63
HocUnion Inst * in
Definition: hocdec.h:60