X-Git-Url: https://git.siccegge.de//index.cgi?p=frida%2Ffrida.git;a=blobdiff_plain;f=src%2Fgui%2Fwidgets%2FFunctionWidget.cxx;h=17b539f4b93db26a749212f83cfd357a97a3ee5e;hp=ba96e5d4af18fe3732de18e9c9e9ef6a0f9e8b3c;hb=84aeb915b20ba15ffef3371733b2a015c3bfc282;hpb=cab6494b97d1626c7b9285b69df324d9c9953614 diff --git a/src/gui/widgets/FunctionWidget.cxx b/src/gui/widgets/FunctionWidget.cxx index ba96e5d..17b539f 100644 --- a/src/gui/widgets/FunctionWidget.cxx +++ b/src/gui/widgets/FunctionWidget.cxx @@ -38,9 +38,10 @@ FunctionWidget::FunctionWidget(Function* function, Mainwindow* mainwindow) std::map _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;