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)
28  Printf("STOP\n");
29  prcod(nopop, "POP\n") prcod(eval, "EVAL\n") prcod(add, "ADD\n") prcod(hoc_sub, "SUB\n")
30  prcod(mul, "MUL\n") prcod(hoc_div, "DIV\n") prcod(negate, "NEGATE\n")
31  prcod(power, "POWER\n") prcod(assign, "ASSIGN\n") prcod(bltin, "BLTIN\n")
32  prcod(varpush, "VARPUSH\n") prcod(constpush, "CONSTPUSH\n")
33  prcod(pushzero, "PUSHZERO\n") prcod(print, "PRINT\n") prcod(varread,
34  "VARREAD\n")
35  prcod(prexpr, "PREXPR\n") prcod(prstr, "PRSTR\n") prcod(gt, "GT\n")
36  prcod(lt, "LT\n") prcod(eq, "EQ\n") prcod(ge, "GE\n")
37  prcod(le, "LE\n") prcod(ne, "NE\n") prcod(hoc_and, "AND\n")
38  prcod(hoc_or, "OR\n") prcod(hoc_not, "NOT\n")
39  prcod(ifcode, "IFCODE\n") prcod(forcode, "FORCODE\n")
40  prcod(shortfor, "SHORTFOR\n") prcod(call, "CALL\n")
41  prcod(arg, "ARG\n")
42  prcod(argassign, "ARGASSIGN\n")
43  prcod(funcret, "FUNCRET\n")
44  prcod(procret, "PROCRET\n")
45  prcod(hocobjret, "HOCOBJRET\n")
46 #if DOS
47 /* no room for all this stuff */
48 #else
49  prcod(
51  "hoc_iterator_stmt\n") prcod(hoc_iterator,
52  "hoc_iterator\n")
53  prcod(
55  "ARGREFASSIGN\n") prcod(hoc_argref,
56  "ARGREF\n") prcod(hoc_stringarg,
57  "STRINGARG\n")
58  prcod(
60  "push_"
61  "string\n") prcod(Break,
62  "Break\n")
63  prcod(
64  Continue,
65  "Continue"
66  "\n") prcod(Stop,
67  "Stop()\n")
68  prcod(
69  assstr,
70  "assstr"
71  "\n") prcod(hoc_evalpointer,
72  "evalpo"
73  "inter"
74  "\n") prcod(hoc_newline,
75  "newline\n")
76  prcod(
78  "de"
79  "le"
80  "te"
81  "_s"
82  "ym"
83  "bo"
84  "l"
85  "\n") prcod(hoc_cyclic,
86  "cyclic\n")
87  prcod(
89  "pa"
90  "ra"
91  "ll"
92  "el"
93  "_b"
94  "eg"
95  "in"
96  "\n") prcod(hoc_parallel_end,
97  "parallel_end\n")
98 
99  prcod(
100  dep_make,
101  "DEPENDENT\n")
102  prcod(
103  eqn_name,
104  "EQUATION\n")
105  prcod(
106  eqn_init,
107  "eqn_init()\n")
108  prcod(
109  eqn_lhs,
110  "eqn_lhs()\n")
111  prcod(
112  eqn_rhs,
113  "eqn_rhs()\n")
114  /*OOP*/
115  prcod(hoc_push_current_object, "hoc_push_current_object\n")
117  "objectcomponent()\n")
118  prcod(hoc_object_eval, "objecteval\n") prcod(hoc_object_asgn, "objectasgn\n")
119  prcod(hoc_objvardecl, "objvardecl\n") prcod(hoc_cmp_otype, "cmp_otype\n")
120  prcod(hoc_newobj, "newobject\n")
121  prcod(hoc_asgn_obj_to_str, "assignobj2str\n")
122  prcod(hoc_known_type, "known_type\n")
123  prcod(hoc_push_string, "push_string\n")
124  prcod(hoc_objectarg, "hoc_objectarg\n")
125  prcod(hoc_ob_pointer, "hoc_ob_pointer\n")
126  prcod(hoc_constobject, "hoc_constobject\n")
127 
128  /*NEWCABLE*/
129  prcod(connect_obsec_syntax, "connect_obsec_syntax()\n") prcod(connectsection,
130  "connectsection()\n")
131  prcod(simpleconnectsection, "simpleconnectsection()\n") prcod(connectpointer,
132  "connectpointer()\n")
133  prcod(add_section, "add_section()\n") prcod(range_const, "range_const()\n")
134  prcod(range_interpolate, "range_interpolate()\n") prcod(
136  "range_interpolate_single()\n") prcod(rangevareval, "rangevareval()\n")
137  prcod(rangepoint, "rangepoint()\n") prcod(sec_access, "sec_access()\n")
138  prcod(ob_sec_access, "ob_sec_access()\n")
139  prcod(mech_access, "mech_access()\n") prcod(for_segment,
140  "forsegment()\n")
141  prcod(sec_access_push, "sec_access_push()\n")
142  prcod(sec_access_pop, "sec_access_pop()\n")
143  prcod(forall_section, "forall_section()\n")
145  "hoc_ifsec()\n") prcod(hoc_ifseclist,
146  "hocifseclist()\n")
148  "forall_sectionlist()\n")
150  "connect_point_process_pointer\n")
151  prcod(nrn_cppp, "nrn_cppp()\n")
153  "rangevarevalpointer\n")
155  "sec_access_object\n")
157  "mech_uninsert\n")
158 #endif
159  else {
160  size_t offset = (size_t) p->in;
161  if (offset < 1000)
162  Printf("relative %d\n", p->i);
163  else {
164  offset = (size_t) (p->in) - (size_t) p;
165  if (offset > (size_t) prog - (size_t) p &&
166  offset < (size_t) (&prog[2000]) - (size_t) p)
167  Printf("relative %ld\n", p->in - p);
168  else if (p->sym->name != (char*) 0) {
169  if (p->sym->name[0] == '\0') {
170  Printf("constant or string pointer\n");
171  /*Printf("value=%g\n", p->sym->u.val);*/
172  } else
173  Printf("%s\n", p->sym->name);
174  } else
175  Printf("symbol without name\n");
176  }
177  }
178  p++;
179  }
180 #endif /*OCSMALL*/
181 }
#define Break
Definition: _defines.h:55
void rangevareval(void)
Definition: cabcode.cpp:1456
void range_const(void)
Definition: cabcode.cpp:1053
void ob_sec_access(void)
Definition: cabcode.cpp:831
void sec_access_pop(void)
Definition: cabcode.cpp:145
void mech_access(void)
Definition: cabcode.cpp:843
void simpleconnectsection(void)
Definition: cabcode.cpp:664
void range_interpolate(void)
Definition: cabcode.cpp:1195
void add_section(void)
Definition: cabcode.cpp:186
void forall_section(void)
Definition: cabcode.cpp:2137
void mech_uninsert(void)
Definition: cabcode.cpp:910
void connectsection(void)
Definition: cabcode.cpp:673
void sec_access(void)
Definition: cabcode.cpp:718
void range_interpolate_single(void)
Definition: cabcode.cpp:1153
void connectpointer(void)
Definition: cabcode.cpp:1125
void sec_access_push(void)
Definition: cabcode.cpp:747
void sec_access_object(void)
Definition: cabcode.cpp:730
void rangevarevalpointer(void)
Definition: cabcode.cpp:1410
void hoc_ifsec(void)
Definition: cabcode.cpp:2211
void rangepoint(void)
Definition: cabcode.cpp:1465
void hoc_argref(void)
Definition: code.cpp:1724
void hoc_cyclic(void)
Definition: code.cpp:2071
void hoc_delete_symbol(void)
Definition: code.cpp:2542
void hoc_div(void)
Definition: code.cpp:2050
void hoc_iterator_stmt(void)
Definition: code.cpp:1074
void hocobjret(void)
Definition: code.cpp:1518
void Stop(void)
Definition: code.cpp:1292
Inst * prog
Definition: code.cpp:143
void hoc_argrefasgn(void)
Definition: code.cpp:1703
void hoc_stringarg(void)
Definition: code.cpp:1658
void hoc_sub(void)
Definition: code.cpp:1998
void hoc_iterator(void)
Definition: code.cpp:1032
void for_segment(void)
Definition: code.cpp:1254
void hoc_newline(void)
Definition: code.cpp:2572
void hoc_not(void)
Definition: code.cpp:2212
void hoc_and(void)
Definition: code.cpp:2196
void hoc_or(void)
Definition: code.cpp:2204
void hoc_object_asgn(void)
void hoc_newobj(void)
Definition: hoc_oop.cpp:655
void hoc_asgn_obj_to_str(void)
void hoc_constobject(void)
Definition: hoc_oop.cpp:903
void hoc_cmp_otype(void)
void hoc_parallel_end(void)
void hoc_object_eval(void)
Definition: hoc_oop.cpp:1296
void hoc_parallel_begin(void)
void hoc_objvardecl(void)
void hoc_ob_pointer(void)
void connect_obsec_syntax(void)
void hoc_push_current_object(void)
void hoc_objectarg(void)
void hoc_known_type(void)
void debug(void)
Definition: debug.cpp:15
void debugzz(Inst *p)
Definition: debug.cpp:23
int zzdebug
Definition: debug.cpp:7
#define prcod(c1, c2)
Definition: debug.cpp:12
#define STOP
Definition: hocdec.h:66
#define Printf
Definition: model.h:237
if(status)
size_t p
void hoc_objectvar()
Definition: hoc_oop.cpp:855
double * hoc_evalpointer()
Definition: code.cpp:1909
void hoc_push_string()
Definition: code.cpp:685
void hoc_object_component()
Definition: hoc_oop.cpp:999
void nrn_cppp(void)
Definition: point.cpp:307
void connect_point_process_pointer(void)
Definition: point.cpp:311
#define varpush
Definition: redef.h:131
#define arg
Definition: redef.h:28
#define argassign
Definition: redef.h:29
#define lt
Definition: redef.h:91
#define add
Definition: redef.h:24
#define eqn_rhs
Definition: redef.h:54
#define Continue
Definition: redef.h:7
#define eqn_name
Definition: redef.h:53
#define le
Definition: redef.h:88
#define eqn_init
Definition: redef.h:51
#define ne
Definition: redef.h:94
#define assstr
Definition: redef.h:31
#define procret
Definition: redef.h:111
#define assign
Definition: redef.h:30
#define negate
Definition: redef.h:95
#define funcret
Definition: redef.h:68
#define varread
Definition: redef.h:132
#define eval
Definition: redef.h:57
#define ifcode
Definition: redef.h:76
#define mul
Definition: redef.h:93
#define prexpr
Definition: redef.h:108
#define constpush
Definition: redef.h:41
#define eqn_lhs
Definition: redef.h:52
#define nopop
Definition: redef.h:106
#define power
Definition: redef.h:107
#define gt
Definition: redef.h:75
#define forcode
Definition: redef.h:62
#define ge
Definition: redef.h:73
#define eq
Definition: redef.h:49
#define shortfor
Definition: redef.h:63
#define pushzero
Definition: redef.h:42
#define print
Definition: redef.h:109
#define dep_make
Definition: redef.h:47
#define prstr
Definition: redef.h:117
#define call
Definition: redef.h:34
#define bltin
Definition: redef.h:33
void forall_sectionlist(void)
Definition: seclist.cpp:282
void hoc_ifseclist(void)
Definition: seclist.cpp:330
Definition: hocdec.h:51