mirror of https://github.com/geohot/qira
put flat view in the cfg space (usable) and add tags view
This commit is contained in:
parent
31fedda718
commit
fac560bc00
|
@ -105,17 +105,12 @@ $(document).ready(function() {
|
|||
});
|
||||
$('body').on('mousewheel', '.flat', function(e) {
|
||||
var cdr = $(".flat").children();
|
||||
// TODO: HAXX!!!
|
||||
p(e.originalEvent.wheelDelta);
|
||||
if (e.originalEvent.wheelDelta < 0) {
|
||||
Session.set('iview', get_address_from_class(cdr[16].childNodes[0]));
|
||||
} else if (e.originalEvent.wheelDelta > 0) {
|
||||
Session.set('iview', get_address_from_class(cdr[14].childNodes[0]));
|
||||
}
|
||||
/*if (e.originalEvent.wheelDelta < 0) {
|
||||
Session.set('iview', bn_add(Session.get('iview'), -1));
|
||||
} else if (e.originalEvent.wheelDelta > 0) {
|
||||
Session.set('iview', bn_add(Session.get('iview'), 1));
|
||||
}*/
|
||||
}
|
||||
});
|
||||
$("#idump")[0].addEventListener("mousewheel", function(e) {
|
||||
//p("idump mousewheel");
|
||||
|
|
|
@ -7,12 +7,45 @@ Deps.autorun(function() { DA("update static view");
|
|||
var flat = Session.get('flat');
|
||||
if (iview === undefined) return;
|
||||
|
||||
var size = get_size("#flat-static");
|
||||
p(size);
|
||||
|
||||
var size = get_size("#cfg-static");
|
||||
stream.emit('getstaticview', iview, flat, [-5,size-5]);
|
||||
});
|
||||
|
||||
function draw_tags(addr, x) {
|
||||
var ret = "<table>"
|
||||
var keys = [];
|
||||
for (var key in x) { keys[keys.length] = key; }
|
||||
keys = keys.sort();
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
key = keys[i];
|
||||
if (x[key] !== null) {
|
||||
ret += "<tr>"
|
||||
ret += "<td>"+key+"</td>"
|
||||
if (key == "address") {
|
||||
ret += "<td><span class='hexnumber'>"+x[key]+"</span></td>"
|
||||
} else {
|
||||
ret += "<td>"+x[key]+"</td>"
|
||||
}
|
||||
ret += "</tr>"
|
||||
}
|
||||
}
|
||||
ret += "</table>"
|
||||
return ret;
|
||||
}
|
||||
|
||||
Deps.autorun(function() { DA("update itags view");
|
||||
var addr = Session.get('iaddr');
|
||||
async_tags_request([addr], function(x) {
|
||||
$("#itags-static").html(draw_tags(addr, x[0]));
|
||||
})
|
||||
});
|
||||
|
||||
Deps.autorun(function() { DA("update dtags view");
|
||||
var addr = Session.get('daddr');
|
||||
async_tags_request([addr], function(x) {
|
||||
$("#dtags-static").html(draw_tags(addr, x[0]));
|
||||
})
|
||||
});
|
||||
|
||||
// TODO: this code is replicated in idump.js
|
||||
function instruction_html_from_tags(ins) {
|
||||
|
@ -55,7 +88,7 @@ function display_flat(addrs) {
|
|||
idump += instruction_html_from_tags(addrs[i]);
|
||||
}
|
||||
idump += '</div>';
|
||||
$("#flat-static").html(idump);
|
||||
$("#cfg-static").html(idump);
|
||||
}
|
||||
|
||||
function on_flat(addrs) { DS("flat");
|
||||
|
|
|
@ -15,7 +15,7 @@ $(document).ready(function() {
|
|||
var cfgDef = $.Deferred();
|
||||
var memoryDef = $.Deferred();
|
||||
var straceDef = $.Deferred();
|
||||
var flatDef = $.Deferred();
|
||||
var tagsDef = $.Deferred();
|
||||
var controlDef = $.Deferred();
|
||||
var dynamicDef = $.Deferred();
|
||||
var idumpDef = $.Deferred();
|
||||
|
@ -64,10 +64,10 @@ $(document).ready(function() {
|
|||
},
|
||||
});
|
||||
|
||||
myDocker.registerPanelType('Flat', {
|
||||
myDocker.registerPanelType('Tags', {
|
||||
onCreate: function(myPanel, options) {
|
||||
myPanel.layout().addItem($("<div class='fill' id='flat-static'></div>"));
|
||||
flatDef.resolve();
|
||||
myPanel.layout().addItem($("<div class='fill' id='tags-static'><div class='tags' id='itags-static'></div><div class='tags' id='dtags-static'></div></div>"));
|
||||
tagsDef.resolve();
|
||||
},
|
||||
});
|
||||
|
||||
|
@ -88,7 +88,7 @@ $(document).ready(function() {
|
|||
controlPanel.maxSize(1000, 70);
|
||||
if (has_static) {
|
||||
var cfgPanel = myDocker.addPanel("Control Flow", wcDocker.DOCK.RIGHT, controlPanel);
|
||||
var flatPanel = myDocker.addPanel("Flat", wcDocker.DOCK.BOTTOM, cfgPanel, {h: 200});
|
||||
var flatPanel = myDocker.addPanel("Tags", wcDocker.DOCK.BOTTOM, cfgPanel, {h: 120});
|
||||
}
|
||||
|
||||
var idumpPanel = myDocker.addPanel("idump", wcDocker.DOCK.BOTTOM, controlPanel);
|
||||
|
@ -99,7 +99,6 @@ $(document).ready(function() {
|
|||
var stracePanel = myDocker.addPanel("strace", wcDocker.DOCK.BOTTOM, dynamicPanel, {h: 200});
|
||||
|
||||
|
||||
|
||||
// apply the panel defaults
|
||||
myDocker.findPanels().forEach(function(x) {
|
||||
x.title(false);
|
||||
|
@ -111,8 +110,6 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
//$.when(timelineDef, dynamicDef, cfgDef, flatDef, memoryDef, straceDef)
|
||||
function is_done() {
|
||||
p("loading UI");
|
||||
$.holdReady(true);
|
||||
|
@ -122,7 +119,7 @@ $(document).ready(function() {
|
|||
}
|
||||
|
||||
if (has_static) {
|
||||
$.when(timelineDef, idumpDef, memoryDef, straceDef, controlDef, dynamicDef, cfgDef, flatDef).done(is_done);
|
||||
$.when(timelineDef, idumpDef, memoryDef, straceDef, controlDef, dynamicDef, cfgDef, tagsDef).done(is_done);
|
||||
} else {
|
||||
$.when(timelineDef, idumpDef, memoryDef, straceDef, controlDef, dynamicDef).done(is_done);
|
||||
}
|
||||
|
|
|
@ -131,3 +131,23 @@ td {
|
|||
top: 0;
|
||||
}
|
||||
|
||||
.tags {
|
||||
border: 1px solid grey;
|
||||
width: 49.8%;
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
min-height: 18px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#itags-static {
|
||||
border-color: #cc0000;
|
||||
}
|
||||
|
||||
#dtags-static {
|
||||
border-color: #888800;
|
||||
left: 50%;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue