undid changes to debugger runtime
This commit is contained in:
@@ -677,21 +677,19 @@ double readDouble()
|
|||||||
|
|
||||||
void dbg_1(uint32_t dbg_fn, uint64_t arg1, uint64_t arg2)
|
void dbg_1(uint32_t dbg_fn, uint64_t arg1, uint64_t arg2)
|
||||||
{
|
{
|
||||||
#ifdef RCBASIC_DEBUG
|
//#ifdef RCBASIC_DEBUG
|
||||||
//output_debug_message();
|
//output_debug_message();
|
||||||
|
|
||||||
switch(dbg_fn)
|
switch(dbg_fn)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
current_src_file = arg1;
|
//current_src_file = arg1;
|
||||||
current_src_line = arg2;
|
//current_src_line = arg2;
|
||||||
std::string dfile = dbg_files[current_src_file];
|
std::cout << "file: " << arg1 << " line: " << arg2 << std::endl;
|
||||||
//std::cerr << "file: " << arg1 << " line: " << arg2 << std::endl;
|
|
||||||
//std::cerr << "file: " << dfile << " -> line: " << current_src_line << std::endl;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // RCBASIC_DEBUG
|
//#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
|
|
||||||
void mov_32(int n1, int n2)
|
void mov_32(int n1, int n2)
|
||||||
@@ -706,71 +704,40 @@ void mov_33(int n1, double val)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void mov_34(int n1, uint64_t nid)
|
void mov_34(int n1, uint64_t nid)
|
||||||
{
|
{
|
||||||
#ifdef RCBASIC_DEBUG
|
|
||||||
uint64_t byref_offset = num_var[nid].byref_offset;
|
|
||||||
if(byref_offset >= num_var[nid].nref[0].value.size())
|
|
||||||
{
|
|
||||||
dbg_error_found = true;
|
|
||||||
dbg_error_message = DBG_INDEX_EXCEEDS_SIZE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
vm_n[n1].value = num_var[nid].nref[0].value[byref_offset];
|
|
||||||
vm_n[n1].r = num_var[nid].nref;
|
|
||||||
vm_n[n1].r_index = byref_offset;
|
|
||||||
|
|
||||||
|
|
||||||
if(!num_var[nid].is_debug_var)
|
|
||||||
return;
|
|
||||||
|
|
||||||
rcbasic_debug_access_status tmp_stat;
|
|
||||||
tmp_stat.type = RCBASIC_DEBUG_ACCESS_GET;
|
|
||||||
tmp_stat.dimensions = num_var[nid].dimensions;
|
|
||||||
tmp_stat.dim[0] = byref_offset;
|
|
||||||
tmp_stat.num_val = vm_n[n1].value;
|
|
||||||
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
|
||||||
|
|
||||||
return;
|
|
||||||
#else
|
|
||||||
|
|
||||||
uint64_t byref_offset = num_var[nid].byref_offset;
|
uint64_t byref_offset = num_var[nid].byref_offset;
|
||||||
vm_n[n1].value = num_var[nid].nref[0].value[byref_offset];
|
vm_n[n1].value = num_var[nid].nref[0].value[byref_offset];
|
||||||
vm_n[n1].r = num_var[nid].nref;
|
vm_n[n1].r = num_var[nid].nref;
|
||||||
vm_n[n1].r_index = byref_offset;
|
vm_n[n1].r_index = byref_offset;
|
||||||
|
|
||||||
|
#ifdef RCBASIC_DEBUG
|
||||||
|
if(!num_var[nid].is_debug_var)
|
||||||
|
return;
|
||||||
|
rcbasic_debug_access_status tmp_stat;
|
||||||
|
tmp_stat.type = RCBASIC_DEBUG_ACCESS_GET;
|
||||||
|
tmp_stat.dimensions = num_var[nid].dimensions;
|
||||||
|
tmp_stat.dim[0] = byref_offset;
|
||||||
|
tmp_stat.num_val = vm_n[n1].value;
|
||||||
|
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
|
|
||||||
//cout << "n" << n1 << " = " << vm_n[n1].value << endl;
|
//cout << "n" << n1 << " = " << vm_n[n1].value << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mov_35(uint64_t nid, int n1)
|
void mov_35(uint64_t nid, int n1)
|
||||||
{
|
{
|
||||||
#ifdef RCBASIC_DEBUG
|
|
||||||
uint64_t byref_offset = num_var[nid].byref_offset;
|
|
||||||
|
|
||||||
if(byref_offset >= num_var[nid].nref[0].value.size())
|
|
||||||
{
|
|
||||||
dbg_error_found = true;
|
|
||||||
dbg_error_message = DBG_INDEX_EXCEEDS_SIZE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
num_var[nid].nref[0].value[byref_offset] = vm_n[n1].value;
|
|
||||||
|
|
||||||
if(!num_var[nid].is_debug_var)
|
|
||||||
return;
|
|
||||||
rcbasic_debug_access_status tmp_stat;
|
|
||||||
tmp_stat.type = RCBASIC_DEBUG_ACCESS_SET;
|
|
||||||
tmp_stat.dimensions = num_var[nid].dimensions;
|
|
||||||
tmp_stat.dim[0] = byref_offset;
|
|
||||||
tmp_stat.num_val = vm_n[n1].value;
|
|
||||||
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
|
||||||
return;
|
|
||||||
#else
|
|
||||||
|
|
||||||
uint64_t byref_offset = num_var[nid].byref_offset;
|
uint64_t byref_offset = num_var[nid].byref_offset;
|
||||||
num_var[nid].nref[0].value[byref_offset] = vm_n[n1].value;
|
num_var[nid].nref[0].value[byref_offset] = vm_n[n1].value;
|
||||||
|
|
||||||
|
#ifdef RCBASIC_DEBUG
|
||||||
|
if(!num_var[nid].is_debug_var)
|
||||||
|
return;
|
||||||
|
rcbasic_debug_access_status tmp_stat;
|
||||||
|
tmp_stat.type = RCBASIC_DEBUG_ACCESS_SET;
|
||||||
|
tmp_stat.dimensions = num_var[nid].dimensions;
|
||||||
|
tmp_stat.dim[0] = byref_offset;
|
||||||
|
tmp_stat.num_val = vm_n[n1].value;
|
||||||
|
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
|
|
||||||
//cout << "n" << n1 << " = " << vm_n[n1].value << endl;
|
//cout << "n" << n1 << " = " << vm_n[n1].value << endl;
|
||||||
@@ -796,70 +763,38 @@ void movS_37(int s1, uint64_t str_addr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void movS_38(int s1, uint64_t sid)
|
void movS_38(int s1, uint64_t sid)
|
||||||
{
|
{
|
||||||
#ifdef RCBASIC_DEBUG
|
|
||||||
uint64_t byref_offset = str_var[sid].byref_offset;
|
|
||||||
|
|
||||||
if(byref_offset >= str_var[sid].sref[0].value.size())
|
|
||||||
{
|
|
||||||
dbg_error_found = true;
|
|
||||||
dbg_error_message = DBG_INDEX_EXCEEDS_SIZE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
vm_s[s1].value = str_var[sid].sref[0].value[byref_offset];
|
|
||||||
vm_s[s1].r = str_var[sid].sref;
|
|
||||||
vm_s[s1].r_index = byref_offset;
|
|
||||||
|
|
||||||
if(!str_var[sid].is_debug_var)
|
|
||||||
return;
|
|
||||||
|
|
||||||
rcbasic_debug_access_status tmp_stat;
|
|
||||||
tmp_stat.type = RCBASIC_DEBUG_ACCESS_GET;
|
|
||||||
tmp_stat.dimensions = str_var[sid].dimensions;
|
|
||||||
tmp_stat.dim[0] = byref_offset;
|
|
||||||
tmp_stat.str_val = vm_s[s1].value;
|
|
||||||
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
|
||||||
return;
|
|
||||||
#else
|
|
||||||
|
|
||||||
uint64_t byref_offset = str_var[sid].byref_offset;
|
uint64_t byref_offset = str_var[sid].byref_offset;
|
||||||
vm_s[s1].value = str_var[sid].sref[0].value[byref_offset];
|
vm_s[s1].value = str_var[sid].sref[0].value[byref_offset];
|
||||||
vm_s[s1].r = str_var[sid].sref;
|
vm_s[s1].r = str_var[sid].sref;
|
||||||
vm_s[s1].r_index = byref_offset;
|
vm_s[s1].r_index = byref_offset;
|
||||||
|
|
||||||
|
#ifdef RCBASIC_DEBUG
|
||||||
|
if(!str_var[sid].is_debug_var)
|
||||||
|
return;
|
||||||
|
rcbasic_debug_access_status tmp_stat;
|
||||||
|
tmp_stat.type = RCBASIC_DEBUG_ACCESS_GET;
|
||||||
|
tmp_stat.dimensions = str_var[sid].dimensions;
|
||||||
|
tmp_stat.dim[0] = byref_offset;
|
||||||
|
tmp_stat.str_val = vm_s[s1].value;
|
||||||
|
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
|
|
||||||
void movS_39(uint64_t sid, int s1)
|
void movS_39(uint64_t sid, int s1)
|
||||||
{
|
{
|
||||||
#ifdef RCBASIC_DEBUG
|
|
||||||
uint64_t byref_offset = str_var[sid].byref_offset;
|
|
||||||
|
|
||||||
if(byref_offset >= str_var[sid].sref[0].value.size())
|
|
||||||
{
|
|
||||||
dbg_error_found = true;
|
|
||||||
dbg_error_message = DBG_INDEX_EXCEEDS_SIZE;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
str_var[sid].sref[0].value[byref_offset] = vm_s[s1].value;
|
|
||||||
|
|
||||||
if(!str_var[sid].is_debug_var)
|
|
||||||
return;
|
|
||||||
|
|
||||||
rcbasic_debug_access_status tmp_stat;
|
|
||||||
tmp_stat.type = RCBASIC_DEBUG_ACCESS_SET;
|
|
||||||
tmp_stat.dimensions = str_var[sid].dimensions;
|
|
||||||
tmp_stat.dim[0] = byref_offset;
|
|
||||||
tmp_stat.str_val = vm_s[s1].value;
|
|
||||||
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
|
||||||
return;
|
|
||||||
#else
|
|
||||||
|
|
||||||
uint64_t byref_offset = str_var[sid].byref_offset;
|
uint64_t byref_offset = str_var[sid].byref_offset;
|
||||||
str_var[sid].sref[0].value[byref_offset] = vm_s[s1].value;
|
str_var[sid].sref[0].value[byref_offset] = vm_s[s1].value;
|
||||||
|
|
||||||
|
#ifdef RCBASIC_DEBUG
|
||||||
|
if(!str_var[sid].is_debug_var)
|
||||||
|
return;
|
||||||
|
rcbasic_debug_access_status tmp_stat;
|
||||||
|
tmp_stat.type = RCBASIC_DEBUG_ACCESS_SET;
|
||||||
|
tmp_stat.dimensions = str_var[sid].dimensions;
|
||||||
|
tmp_stat.dim[0] = byref_offset;
|
||||||
|
tmp_stat.str_val = vm_s[s1].value;
|
||||||
|
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -867,10 +802,7 @@ void mov_r_40(int n1, int n2)
|
|||||||
{
|
{
|
||||||
vm_n[n1].r[0].value[ vm_n[n1].r_index ] = vm_n[n2].value;
|
vm_n[n1].r[0].value[ vm_n[n1].r_index ] = vm_n[n2].value;
|
||||||
|
|
||||||
#ifdef RCBASIC_DEBUG
|
#ifdef RCBASIC_DEBUG
|
||||||
if(vm_n[n1].dbg_var_index < 0 || vm_n[n1].dbg_var_index >= dbg_vars.size())
|
|
||||||
return;
|
|
||||||
|
|
||||||
for(int i = 0; i < dbg_vars[vm_n[n1].dbg_var_index].usage_data.size(); i++)
|
for(int i = 0; i < dbg_vars[vm_n[n1].dbg_var_index].usage_data.size(); i++)
|
||||||
{
|
{
|
||||||
if(dbg_vars[vm_n[n1].dbg_var_index].usage_data[i].reg==n1)
|
if(dbg_vars[vm_n[n1].dbg_var_index].usage_data[i].reg==n1)
|
||||||
@@ -887,10 +819,7 @@ void mov_rS_41(int s1, int s2)
|
|||||||
{
|
{
|
||||||
vm_s[s1].r[0].value[ vm_s[s1].r_index ] = vm_s[s2].value;
|
vm_s[s1].r[0].value[ vm_s[s1].r_index ] = vm_s[s2].value;
|
||||||
|
|
||||||
#ifdef RCBASIC_DEBUG
|
#ifdef RCBASIC_DEBUG
|
||||||
if(vm_s[s1].dbg_var_index < 0 || vm_s[s1].dbg_var_index >= dbg_vars.size())
|
|
||||||
return;
|
|
||||||
|
|
||||||
for(int i = 0; i < dbg_vars[vm_s[s1].dbg_var_index].usage_data.size(); i++)
|
for(int i = 0; i < dbg_vars[vm_s[s1].dbg_var_index].usage_data.size(); i++)
|
||||||
{
|
{
|
||||||
if(dbg_vars[vm_s[s1].dbg_var_index].usage_data[i].reg==s1)
|
if(dbg_vars[vm_s[s1].dbg_var_index].usage_data[i].reg==s1)
|
||||||
@@ -1127,9 +1056,7 @@ void obj_num_73(uint64_t nid)
|
|||||||
tmp_stat.is_error = true;
|
tmp_stat.is_error = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
tmp_stat.num_val = num_var[nid].nid_value[0].value[num_object.index];
|
||||||
tmp_stat.num_val = num_var[nid].nref[0].value[num_object.index];
|
|
||||||
}
|
|
||||||
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
@@ -1169,7 +1096,7 @@ void obj_num1_74(uint64_t nid, int n1)
|
|||||||
tmp_stat.is_error = true;
|
tmp_stat.is_error = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp_stat.num_val = num_var[nid].nref[0].value[num_object.index];
|
tmp_stat.num_val = num_var[nid].nid_value[0].value[num_object.index];
|
||||||
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
@@ -1210,7 +1137,7 @@ void obj_num2_75(uint64_t nid, int n1, int n2)
|
|||||||
tmp_stat.is_error = true;
|
tmp_stat.is_error = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp_stat.num_val = num_var[nid].nref[0].value[num_object.index];
|
tmp_stat.num_val = num_var[nid].nid_value[0].value[num_object.index];
|
||||||
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
@@ -1252,7 +1179,7 @@ void obj_num3_76(uint64_t nid, int n1, int n2, int n3)
|
|||||||
tmp_stat.is_error = true;
|
tmp_stat.is_error = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp_stat.num_val = num_var[nid].nref[0].value[num_object.index];
|
tmp_stat.num_val = num_var[nid].nid_value[0].value[num_object.index];
|
||||||
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[num_var[nid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
@@ -1290,7 +1217,7 @@ void obj_str_77(uint64_t sid)
|
|||||||
tmp_stat.is_error = true;
|
tmp_stat.is_error = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp_stat.str_val = str_var[sid].sref[0].value[str_object.index];
|
tmp_stat.str_val = str_var[sid].sid_value[0].value[str_object.index];
|
||||||
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
@@ -1327,7 +1254,7 @@ void obj_str1_78(uint64_t sid, int n1)
|
|||||||
tmp_stat.is_error = true;
|
tmp_stat.is_error = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp_stat.str_val = str_var[sid].sref[0].value[str_object.index];
|
tmp_stat.str_val = str_var[sid].sid_value[0].value[str_object.index];
|
||||||
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
@@ -1368,7 +1295,7 @@ void obj_str2_79(uint64_t sid, int n1, int n2)
|
|||||||
tmp_stat.is_error = true;
|
tmp_stat.is_error = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp_stat.str_val = str_var[sid].sref[0].value[str_object.index];
|
tmp_stat.str_val = str_var[sid].sid_value[0].value[str_object.index];
|
||||||
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
@@ -1410,7 +1337,7 @@ void obj_str3_80(uint64_t sid, int n1, int n2, int n3)
|
|||||||
tmp_stat.is_error = true;
|
tmp_stat.is_error = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
tmp_stat.str_val = str_var[sid].sref[0].value[str_object.index];
|
tmp_stat.str_val = str_var[sid].sid_value[0].value[str_object.index];
|
||||||
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[str_var[sid].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
}
|
}
|
||||||
@@ -2092,7 +2019,7 @@ void next_118(uint64_t f_addr)
|
|||||||
tmp_stat.dim[1] = loop_stack.top().counter_dim[1];
|
tmp_stat.dim[1] = loop_stack.top().counter_dim[1];
|
||||||
tmp_stat.dim[2] = loop_stack.top().counter_dim[2];
|
tmp_stat.dim[2] = loop_stack.top().counter_dim[2];
|
||||||
tmp_stat.type = RCBASIC_DEBUG_ACCESS_SET;
|
tmp_stat.type = RCBASIC_DEBUG_ACCESS_SET;
|
||||||
tmp_stat.num_val = loop_stack.top().counter[0].nref[0].value[byref_offset];
|
tmp_stat.num_val = loop_stack.top().counter[0].nid_value[0].value[byref_offset];
|
||||||
dbg_vars[loop_stack.top().counter[0].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[loop_stack.top().counter[0].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
}
|
}
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
@@ -2111,7 +2038,7 @@ void next_118(uint64_t f_addr)
|
|||||||
tmp_stat.dim[1] = loop_stack.top().counter_dim[1];
|
tmp_stat.dim[1] = loop_stack.top().counter_dim[1];
|
||||||
tmp_stat.dim[2] = loop_stack.top().counter_dim[2];
|
tmp_stat.dim[2] = loop_stack.top().counter_dim[2];
|
||||||
tmp_stat.type = RCBASIC_DEBUG_ACCESS_SET;
|
tmp_stat.type = RCBASIC_DEBUG_ACCESS_SET;
|
||||||
tmp_stat.num_val = loop_stack.top().counter[0].nref[0].value[byref_offset];
|
tmp_stat.num_val = loop_stack.top().counter[0].nid_value[0].value[byref_offset];
|
||||||
dbg_vars[loop_stack.top().counter[0].dbg_var_index].usage_data.push_back(tmp_stat);
|
dbg_vars[loop_stack.top().counter[0].dbg_var_index].usage_data.push_back(tmp_stat);
|
||||||
}
|
}
|
||||||
#endif // RCBASIC_DEBUG
|
#endif // RCBASIC_DEBUG
|
||||||
@@ -4474,7 +4401,7 @@ int main(int argc, char * argv[])
|
|||||||
|
|
||||||
if(rc_filename.compare("--version")==0)
|
if(rc_filename.compare("--version")==0)
|
||||||
{
|
{
|
||||||
cout << "RCBASIC Runtime v4.9" << endl;
|
cout << "RCBASIC Runtime v4.8" << endl;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user