aboutsummaryrefslogtreecommitdiffstats
path: root/ethereal/assets/debugger
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-07-04 19:04:25 +0800
committerobscuren <geffobscura@gmail.com>2014-07-04 19:04:25 +0800
commitca395306e3997c1f2fd2aa2e780518eb2e2f1845 (patch)
tree9f5cfa687c7538e98081d247b8d274dab39333c0 /ethereal/assets/debugger
parent24ff81d14ea8f83bf3693474cd30ee048e006abe (diff)
downloaddexon-ca395306e3997c1f2fd2aa2e780518eb2e2f1845.tar.gz
dexon-ca395306e3997c1f2fd2aa2e780518eb2e2f1845.tar.zst
dexon-ca395306e3997c1f2fd2aa2e780518eb2e2f1845.zip
Updated debugger
* Compile on the go. Continues compilation in order to update the ASM view * Short cuts commands
Diffstat (limited to 'ethereal/assets/debugger')
-rw-r--r--ethereal/assets/debugger/debugger.qml70
1 files changed, 67 insertions, 3 deletions
diff --git a/ethereal/assets/debugger/debugger.qml b/ethereal/assets/debugger/debugger.qml
index b93308b3e..579e8be3a 100644
--- a/ethereal/assets/debugger/debugger.qml
+++ b/ethereal/assets/debugger/debugger.qml
@@ -7,6 +7,7 @@ import QtQuick.Controls.Styles 1.1
import Ethereum 1.0
ApplicationWindow {
+ id: win
visible: false
title: "IceCREAM"
minimumWidth: 1280
@@ -17,6 +18,10 @@ ApplicationWindow {
property alias codeText: codeEditor.text
property alias dataText: rawDataField.text
+ onClosing: {
+ compileTimer.stop()
+ }
+
MenuBar {
Menu {
title: "Debugger"
@@ -34,12 +39,44 @@ ApplicationWindow {
MenuItem {
text: "Continue"
- shortcut: "Ctrl+c"
+ shortcut: "Ctrl+g"
onTriggered: dbg.continue()
}
+ MenuItem {
+ text: "Command"
+ shortcut: "Ctrl+l"
+ onTriggered: {
+ dbgCommand.focus = true
+ }
+ }
+ MenuItem {
+ text: "Focus code"
+ shortcut: "Ctrl+1"
+ onTriggered: {
+ codeEditor.focus = true
+ }
+ }
+ MenuItem {
+ text: "Focus data"
+ shortcut: "Ctrl+2"
+ onTriggered: {
+ rawDataField.focus = true
+ }
+ }
+
+ /*
+ MenuItem {
+ text: "Close window"
+ shortcut: "Ctrl+w"
+ onTriggered: {
+ win.close()
+ }
+ }
+ */
}
}
+
SplitView {
anchors.fill: parent
property var asmModel: ListModel {
@@ -73,6 +110,15 @@ ApplicationWindow {
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: settings.left
+ focus: true
+
+ Timer {
+ id: compileTimer
+ interval: 500 ; running: true ; repeat: true
+ onTriggered: {
+ dbg.compile(codeEditor.text)
+ }
+ }
}
Column {
@@ -185,7 +231,7 @@ ApplicationWindow {
}
height: parent.height
width: parent.width
- TableViewColumn{ id: message ; role: "message" ; title: "log" ; width: logTableView.width }
+ TableViewColumn{ id: message ; role: "message" ; title: "log" ; width: logTableView.width -1 }
model: logModel
}
}
@@ -207,7 +253,7 @@ ApplicationWindow {
y: 1
x: asmTableView.width
width: 500
- placeholderText: "Debugger command (help for help)"
+ placeholderText: "Debugger (type 'help')"
Keys.onReturnPressed: {
exec()
}
@@ -225,6 +271,7 @@ ApplicationWindow {
}
toolBar: ToolBar {
+ height: 30
RowLayout {
spacing: 5
@@ -254,6 +301,23 @@ ApplicationWindow {
text: "Continue"
}
}
+
+
+ ComboBox {
+ id: snippets
+ anchors.right: parent.right
+ model: ListModel {
+ ListElement { text: "Snippets" ; value: "" }
+ ListElement { text: "Call Contract" ; value: "var[2] in;\nvar ret;\n\nin[0] = \"arg1\"\nin[1] = 0xdeadbeef\n\nvar success = call(0x0c542ddea93dae0c2fcb2cf175f03ad80d6be9a0, 0, 7000, in, ret)\n\nreturn ret" }
+ }
+ onCurrentIndexChanged: {
+ if(currentIndex != 0) {
+ var code = snippets.model.get(currentIndex).value;
+ codeEditor.insert(codeEditor.cursorPosition, code)
+ }
+ }
+ }
+
}
function debugCurrent() {