64-bit fixup

This commit is contained in:
George Hotz 2014-07-23 13:30:04 -07:00
parent 3740395052
commit df3474107a
3 changed files with 21 additions and 10 deletions

View File

@ -154,7 +154,7 @@ def getmemory(forknum, clnum, address, ln):
if ss <= ri and ri < se:
dat[ri] = ord(trace.base_memory[(ss,se)][ri-ss])
ret = {'address': address, 'len': ln, 'dat': dat}
ret = {'address': address, 'len': ln, 'dat': dat, 'is_big_endian': program.tregs[2], 'ptrsize': program.tregs[1]}
emit('memory', ret)
@socketio.on('getregisters', namespace='/qira')

View File

@ -8,7 +8,7 @@
#include "qiradb.h"
#define MP make_pair
#define PAGE_MASK 0xFFFFF000
#define PAGE_MASK 0xFFFFFFFFFFFFF000LL
#define INVALID_CLNUM 0xFFFFFFFF
void *thread_entry(void *trace_class) {

View File

@ -18,11 +18,11 @@ Meteor.startup(function() {
});
});
var PTRSIZE = 4;
stream.on('memory', function(msg) {
// render the hex editor
var addr = msg['address'];
var PTRSIZE = msg['ptrsize'];
html = "<table><tr>";
for (var i = 0; i < msg['len']; i += PTRSIZE) {
if ((i&0xF) == 0) html += "</tr><tr><td>"+hex(addr+i)+":</td>";
@ -30,14 +30,25 @@ stream.on('memory', function(msg) {
// check if it's an address
var v = 0;
for (var j = PTRSIZE-1; j >= 0; j--) {
if (addr+i+j == Session.get('daddr')) {
exclass = "highlight";
if (msg['is_big_endian']) {
for (var j = 0; j < PTRSIZE; j++) {
if (addr+i+j == Session.get('daddr')) {
exclass = "highlight";
}
v *= 0x100;
var t = msg['dat'][addr+i+j];
if (t !== undefined) v += t;
}
} else {
for (var j = PTRSIZE-1; j >= 0; j--) {
if (addr+i+j == Session.get('daddr')) {
exclass = "highlight";
}
v *= 0x100;
var t = msg['dat'][addr+i+j];
if (t !== undefined) v += t;
}
v *= 0x100;
var t = msg['dat'][addr+i+j];
if (t !== undefined) v += t;
}
var a = get_data_type(v);
if (a !== "") {