]> git.siccegge.de Git - frida/frida.git/commitdiff
Annotate function address
authorChristoph Egger <christoph@christoph-egger.org>
Mon, 25 May 2015 04:14:06 +0000 (06:14 +0200)
committerChristoph Egger <christoph@christoph-egger.org>
Mon, 25 May 2015 04:14:06 +0000 (06:14 +0200)
When the user manually annotates an address from the context menu, add
a special placeholder comment to put the function name there.

src/gui/widgets/BasicBlockWidget.cxx

index de97c51d521c92b6cfc36d1871102a0b31cd221e..1cdc33f3dc7eb2ce4cf67f84ba8b1e77a0f24d0d 100644 (file)
@@ -55,13 +55,21 @@ void CustomQGraphicsTextItem::contextMenuEvent(QGraphicsSceneContextMenuEvent* e
        QMenu menu;
        bool ok;
        uint64_t address = c.selectedText().toLongLong(&ok, 16);
+       QTextTable* table = c.currentTable();
        if (ok) {
                QAction* act = menu.addAction(c.selectedText() + " is a Function");
                QObject::connect(act, &QAction::triggered,
-                                [=]() {parent->mainwindow->requestNewFunctionByAddress(address);});
+                                [=]() {
+                                        parent->mainwindow->requestNewFunctionByAddress(address);
+                                        if (NULL == table) return;
+                                        int row = table->cellAt(c).row();
+                                        uint64_t insAddress = parent->instructions[row].getAddress();
+                                        Comment* comment = parent->block->getManager()->newLocalComment(insAddress, (Function*)0x23);
+                                        comment->setText("#F<" + c.selectedText().toStdString() + ">");
+                                        parent->block->getManager()->finishComment(comment);
+                                });
        }
 
-       QTextTable* table = c.currentTable();
        if (NULL != table) {
                int row = table->cellAt(c).row();
                QAction* globalComment = menu.addAction("Add global Comment");