]> git.siccegge.de Git - frida/frida.git/blobdiff - src/gui/widgets/FunctionWidget.cxx
Multiply stepsize by 3
[frida/frida.git] / src / gui / widgets / FunctionWidget.cxx
index 20d586df6eff9aff69d1921fcd4334c8af937520..17b539f4b93db26a749212f83cfd357a97a3ee5e 100644 (file)
@@ -18,7 +18,7 @@ namespace {
 FunctionWidget::FunctionWidget(Function* function, Mainwindow* mainwindow)
        : function(function)
        , mainwindow(mainwindow)
-       , logger(log4cxx::Logger::getLogger("Mainwindow")) {
+       , logger(log4cxx::Logger::getLogger("gui.Mainwindow")) {
 
        // CFG
        CFGScene * scene = new CFGScene;
@@ -38,9 +38,10 @@ FunctionWidget::FunctionWidget(Function* function, Mainwindow* mainwindow)
 
        std::map<uint64_t, BasicBlockWidget*> _blocks;
        local__add_basic_block(block, mainwindow,
-                              manager, _blocks, scene, start_address, 100);
+                              manager, _blocks, scene, 3*start_address, 100);
 
        QGraphicsView * view = new QGraphicsView(scene);
+       view->setDragMode(QGraphicsView::ScrollHandDrag);
        addTab(view, "CFG");
 
        // Listing
@@ -62,6 +63,7 @@ namespace {
                               CFGScene * scene, uint64_t starty, uint64_t startx) {
 
                decltype(known_blocks.begin()) old;
+               if (!block) return NULL;
                if ((old = known_blocks.find(block->getStartAddress())) != known_blocks.end())
                        return old->second;
 
@@ -75,19 +77,7 @@ namespace {
 
                scene->addItem(widget);
                widget->setFlag(QGraphicsItem::ItemIsMovable, true);
-               widget->moveBy(100*startx, block->getStartAddress() - starty);
-
-               manager->getDisassembler()
-                       ->printEachInstruction(block->getStartAddress(),
-                                              block->getEndAddress(),
-                                              [&](uint8_t* bytes,
-                                                  size_t byte_count,
-                                                  const std::string& line,
-                                                  const std::string& ref) {
-                                                      widget->addItem(bytes, byte_count,
-                                                                      line.c_str() + 1, // remove \t
-                                                                      ref.c_str());
-                                              });
+               widget->moveBy(100*startx, 3*block->getStartAddress() - starty);
 
                BasicBlockWidget *tmp, *nextl(NULL), *nextr(NULL);
                BasicBlock * tmpblock;