mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-17 01:11:45 +00:00
[qwaq] Start work on displaying local defs
The names show for the first function, but there are problems after that.
This commit is contained in:
parent
6ec7b96693
commit
bd8d09479f
1 changed files with 48 additions and 10 deletions
|
@ -1,5 +1,7 @@
|
||||||
#include <Array.h>
|
|
||||||
#include <QF/keys.h>
|
#include <QF/keys.h>
|
||||||
|
#include <Array.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <types.h>
|
||||||
|
|
||||||
#include "qwaq-app.h"
|
#include "qwaq-app.h"
|
||||||
#include "qwaq-curses.h"
|
#include "qwaq-curses.h"
|
||||||
|
@ -118,16 +120,52 @@ update_current_func (Debugger *self, unsigned fnum)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
qdb_get_data (debug_target, func.local_data, func.local_size, local_data);
|
qdb_get_data (debug_target, func.local_data, func.local_size, local_data);
|
||||||
[locals_view mvprintf:{0,0}, "%d", func.local_size];
|
if (!local_defs) {
|
||||||
for (int y = 1; y < [locals_view size].height; y++) {
|
[locals_view mvprintf:{0,0}, "%d", func.local_size];
|
||||||
unsigned ind = (y - 1) * 4;
|
for (int y = 1; y < [locals_view size].height; y++) {
|
||||||
if (ind < func.local_size) {
|
unsigned ind = (y - 1) * 4;
|
||||||
[locals_view mvprintf:{0, y}, "%02x", ind];
|
if (ind < func.local_size) {
|
||||||
for (int x = 0; x < 4 && ind < func.local_size; x++, ind++) {
|
[locals_view mvprintf:{0, y}, "%02x", ind];
|
||||||
[locals_view mvprintf:{x * 9 + 3, y}, "%08x", local_data[ind]];
|
for (int x = 0; x < 4 && ind < func.local_size; x++, ind++) {
|
||||||
|
[locals_view mvprintf:{x * 9 + 3, y}, "%08x",
|
||||||
|
local_data[ind]];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
break;
|
} else {
|
||||||
|
for (int y = 0; y < [locals_view size].height; y++) {
|
||||||
|
if (y >= aux_func.num_locals) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
qdb_def_t *def = local_defs + y;
|
||||||
|
[locals_view mvprintf:{0, y}, "%s",
|
||||||
|
qdb_get_string (debug_target, def.name)];
|
||||||
|
string valstr = "--";
|
||||||
|
printf ("def type_size %d\n", def.type_size);
|
||||||
|
switch (def.type_size & 0xffff) {
|
||||||
|
case ev_void:
|
||||||
|
case ev_invalid:
|
||||||
|
case ev_type_count:
|
||||||
|
break;
|
||||||
|
case ev_string:
|
||||||
|
case ev_float:
|
||||||
|
case ev_vector:
|
||||||
|
case ev_entity:
|
||||||
|
case ev_field:
|
||||||
|
case ev_func:
|
||||||
|
case ev_pointer:
|
||||||
|
case ev_quat:
|
||||||
|
case ev_integer:
|
||||||
|
case ev_uinteger:
|
||||||
|
case ev_short:
|
||||||
|
case ev_double:
|
||||||
|
valstr = sprintf ("%d", def.type_size >> 16);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
int x = [locals_view size].width - strlen (valstr) - 1;
|
||||||
|
[locals_view mvaddstr:{x, y}, valstr];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
[TextContext refresh];
|
[TextContext refresh];
|
||||||
|
|
Loading…
Reference in a new issue