From: Christoph Egger <christoph@christoph-egger.org>
Date: Mon, 25 May 2015 04:14:06 +0000 (+0200)
Subject: Annotate function address
X-Git-Tag: v0.2~17
X-Git-Url: https://git.siccegge.de//index.cgi?a=commitdiff_plain;h=42617ae5ed5b400a66df8b59a705f6523eec71b8;p=frida%2Ffrida.git

Annotate function address

When the user manually annotates an address from the context menu, add
a special placeholder comment to put the function name there.
---

diff --git a/src/gui/widgets/BasicBlockWidget.cxx b/src/gui/widgets/BasicBlockWidget.cxx
index de97c51..1cdc33f 100644
--- a/src/gui/widgets/BasicBlockWidget.cxx
+++ b/src/gui/widgets/BasicBlockWidget.cxx
@@ -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");