refactoring is happening

This commit is contained in:
George Hotz 2014-08-19 13:01:08 -07:00
parent 96edb8713b
commit 83a4aab93e
5 changed files with 60 additions and 10 deletions

View File

@ -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");

View File

@ -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");

View File

@ -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);

View File

@ -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");

View File

@ -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;