mirror of https://github.com/geohot/qira
refactoring is happening
This commit is contained in:
parent
96edb8713b
commit
83a4aab93e
|
@ -66,6 +66,7 @@ function highlight_addresses(a) {
|
|||
d = d.replace(a, "<span class='h"+cl+"'>"+a+"</span>");
|
||||
});
|
||||
}
|
||||
// does this work outside templates?
|
||||
return new Handlebars.SafeString(d);
|
||||
}
|
||||
|
||||
|
@ -85,6 +86,21 @@ function abs_maxclnum() {
|
|||
return ret;
|
||||
}
|
||||
|
||||
function rehighlight() {
|
||||
var clnum = Session.get("clnum");
|
||||
var iaddr = Session.get("iaddr");
|
||||
var daddr = Session.get("daddr");
|
||||
$(".autohighlight").removeClass("autohighlight");
|
||||
$(".clnum_"+clnum).addClass("autohighlight");
|
||||
$(".iaddr_"+iaddr).addClass("autohighlight");
|
||||
$(".daddr_"+daddr).addClass("autohighlight");
|
||||
}
|
||||
|
||||
Deps.autorun(function() { DA("rehighlight");
|
||||
rehighlight();
|
||||
});
|
||||
|
||||
|
||||
function update_maxclnum(clnum) {
|
||||
//p("update maxclnum "+clnum);
|
||||
var old_maxclnum = Session.get("max_clnum");
|
||||
|
|
|
@ -58,8 +58,28 @@ Template.idump.instruction = function() { return highlight_addresses(this.instru
|
|||
// ** should move these to idump.js **
|
||||
|
||||
function on_instructions(msg) { DS("instructions");
|
||||
$('#idump')[0].innerHTML = "";
|
||||
UI.insert(UI.renderWithData(Template.idump, {instructions: msg}), $('#idump')[0]);
|
||||
var clnum = Session.get("clnum");
|
||||
var idump = "";
|
||||
|
||||
var iaddr = Session.get("iaddr");
|
||||
for (var i = 0; i<msg.length;i++) {
|
||||
var ins = msg[i];
|
||||
|
||||
if (ins.clnum === clnum) {
|
||||
Session.set('iaddr', ins.address);
|
||||
}
|
||||
|
||||
// compute the dynamic stuff
|
||||
idump +=
|
||||
'<div class="instruction" style="margin-left: '+(ins.depth*10)+'px">'+
|
||||
'<div class="change '+(ins.slice ? "halfhighlight": "")+' clnum clnum_'+ins.clnum+'">'+ins.clnum+'</div> '+
|
||||
'<span class="datainstruction iaddr iaddr_'+ins.address+'">'+ins.address+'</span> '+
|
||||
'<div class="instructiondesc">'+highlight_addresses(ins.instruction)+'</div> '+
|
||||
'<span class="comment">'+(ins.comment !== undefined ? ins.comment : "")+'</span>'+
|
||||
'</div>';
|
||||
}
|
||||
$('#idump').html(idump);
|
||||
rehighlight();
|
||||
} stream.on('instructions', on_instructions);
|
||||
|
||||
Deps.autorun(function() { DA("emit getinstructions");
|
||||
|
|
|
@ -77,8 +77,7 @@ function on_memory(msg) { DS("memory");
|
|||
var me = v.toString(16);
|
||||
//while (me.length != 8) me = "0" + me;
|
||||
me = "0x"+me;
|
||||
var exclass = "";
|
||||
if (addr+i == daddr) { exclass = "highlight"; }
|
||||
var exclass = "daddr daddr_"+hex(addr+i);
|
||||
html += '<td colspan="'+PTRSIZE+'" class="data '+a+' '+exclass+'" id=data_'+hex(addr+i)+">"+me+"</td>";
|
||||
} else {
|
||||
for (var j = 0; j < PTRSIZE; j++) {
|
||||
|
@ -89,8 +88,7 @@ function on_memory(msg) { DS("memory");
|
|||
var me = ii.toString(16);
|
||||
if (me.length == 1) me = "0" + me;
|
||||
}
|
||||
var exclass = "";
|
||||
if (addr+i+j == daddr) { exclass = "highlight"; }
|
||||
var exclass = "daddr daddr_"+hex(addr+i+j);
|
||||
html += '<td class="data '+exclass+'" id=data_'+hex(addr+i+j)+">"+me+"</td>";
|
||||
}
|
||||
}
|
||||
|
@ -115,6 +113,7 @@ function on_memory(msg) { DS("memory");
|
|||
html += "</tr></table>";
|
||||
$("#hexdump")[0].innerHTML = html;
|
||||
redraw_reg_flags();
|
||||
rehighlight();
|
||||
} stream.on('memory', on_memory);
|
||||
|
||||
|
||||
|
@ -157,6 +156,7 @@ Deps.autorun(function() { DA("emit getregisters");
|
|||
});
|
||||
|
||||
function on_registers(msg) { DS("registers");
|
||||
return;
|
||||
current_regs = msg;
|
||||
redraw_reg_flags();
|
||||
$('#regviewer')[0].innerHTML = "";
|
||||
|
@ -200,6 +200,8 @@ Deps.autorun(function() { DA("emit getclnum for datachanges");
|
|||
|
||||
// TODO: misleading name
|
||||
function on_clnum(msg) { DS("clnum");
|
||||
return;
|
||||
$('#datachanges')[0].innerHTML = "";
|
||||
UI.insert(UI.renderWithData(Template.datachanges, {memactions: msg}), $('#datachanges')[0]);
|
||||
} stream.on('clnum', on_clnum);
|
||||
|
||||
|
|
|
@ -13,8 +13,17 @@ function redraw_strace() {
|
|||
var sview = Session.get('sview');
|
||||
if (traces[forknum] === undefined) return;
|
||||
var msg = traces[forknum].slice(sview[0], sview[1])
|
||||
$('#strace')[0].innerHTML = "";
|
||||
UI.insert(UI.renderWithData(Template.strace, {strace: msg}), $('#strace')[0]);
|
||||
|
||||
var strace = "";
|
||||
for (i in msg) {
|
||||
var st = msg[i];
|
||||
strace += '<div class="syscall">'+
|
||||
'<div class="change clnum clnum_'+st.clnum+'">'+st.clnum+'</div>'+
|
||||
highlight_addresses(st.sc)+
|
||||
'</div>';
|
||||
}
|
||||
p(strace);
|
||||
$('#strace').html(strace);
|
||||
}
|
||||
|
||||
Deps.autorun(function() { DA("redrawing strace");
|
||||
|
|
|
@ -39,6 +39,10 @@ body {
|
|||
background-color: #FF7777 !important;
|
||||
}
|
||||
|
||||
.autohighlight {
|
||||
background-color: #FF7777 !important;
|
||||
}
|
||||
|
||||
.halfhighlight {
|
||||
background: rgba(255, 119, 119, 0.3);
|
||||
}
|
||||
|
@ -286,8 +290,7 @@ body {
|
|||
#strace {
|
||||
font-family: monospace;
|
||||
height: 150px;
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
overflow: hidden;
|
||||
padding: 10px;
|
||||
white-space: nowrap;
|
||||
width: 604px;
|
||||
|
|
Loading…
Reference in New Issue