ref: 6966e8d72ae8fb72ebf98909acbd464aff84a3cc
parent: 5dd326f865b4c1a3d02214ce81740e7cbf7f87a9
author: 9ferno <gophone2015@gmail.com>
date: Thu Sep 9 09:44:54 EDT 2021
more debugging messages
--- a/libinterp/string.c
+++ b/libinterp/string.c
@@ -32,8 +32,10 @@
l = ss->len;
DP("indc string %s len %d v %zd\n", string2c(ss), l, v);
if(l < 0) {
- if(v >= -l)
+ if(v >= -l){
+ print("indc string %s len %d v %zd\n", string2c(ss), l, v);
e: error(exBounds);
+ }
l = ss->Srune[v];
}
else {
@@ -80,8 +82,10 @@
ss->Srune[v] = r;
}
else {
- if(v != l)
+ if(v != l){
+ print("insc\n");
error(exBounds);
+ }
ns = newstring((v + 1 + v/4)*sizeof(Rune));
memmove(ns->Srune, ss->Srune, -ss->len*sizeof(Rune));
ns->Srune[v] = r;
--- a/libinterp/xec.c
+++ b/libinterp/xec.c
@@ -221,8 +221,10 @@
a = A(s);
i = W(d);
DP("indx a %p a->len %zd i %zd\n", a, a->len, i);
- if(a == H || i >= a->len)
+ if(a == H || i >= a->len){
+ print("indx a %p a->len %zd i %zd\n", a, a->len, i);
error(exBounds);
+ }
W(m) = (WORD)(a->data+i*a->t->size);
}
OP(indw)
@@ -233,8 +235,10 @@
a = A(s);
i = W(d);
DP("indw a %p a->len %zd i %zd\n", a, a->len, i);
- if(a == H || i >= a->len)
+ if(a == H || i >= a->len){
+ print("indw a %p a->len %zd i %zd\n", a, a->len, i);
error(exBounds);
+ }
W(m) = (WORD)(a->data+i*sizeof(WORD));
}
OP(indf)
@@ -245,8 +249,10 @@
a = A(s);
i = W(d);
DP("indf a %p a->len %zd i %zd\n", a, a->len, i);
- if(a == H || i >= a->len)
+ if(a == H || i >= a->len){
+ print("indf a %p a->len %zd i %zd\n", a, a->len, i);
error(exBounds);
+ }
W(m) = (WORD)(a->data+i*sizeof(REAL));
}
OP(indl)
@@ -257,8 +263,10 @@
a = A(s);
i = W(d);
DP("indl a %p a->len %zd i %zd\n", a, a->len, i);
- if(a == H || i >= a->len)
+ if(a == H || i >= a->len){
+ print("indl a %p a->len %zd i %zd\n", a, a->len, i);
error(exBounds);
+ }
W(m) = (WORD)(a->data+i*sizeof(LONG));
}
OP(indb)
@@ -269,8 +277,10 @@
a = A(s);
i = W(d);
DP("indb a %p a->len %zd a->data 0x%p i %zd\n", a, a->len, a->data, i);
- if(a == H || i >= a->len)
+ if(a == H || i >= a->len){
+ print("indb a %p a->len %zd a->data 0x%p i %zd\n", a, a->len, a->data, i);
error(exBounds);
+ }
W(m) = (WORD)(a->data+i*sizeof(BYTE));
}
OP(movp)
@@ -858,6 +868,7 @@
l = 0;
if(a != H)
l = a->len;
+ DP("lena after A(s) l %zd a->len %zd\n", l, a->len);
W(d) = l;
}
OP(lenl)