diff --git a/src/SeerArrayVisualizerWidget.cpp b/src/SeerArrayVisualizerWidget.cpp
index 3d4e7c0..78c28b3 100644
--- a/src/SeerArrayVisualizerWidget.cpp
+++ b/src/SeerArrayVisualizerWidget.cpp
@@ -131,8 +131,11 @@ void SeerArrayVisualizerWidget::setVariableAddress (const QString& address) {
variableAddressLineEdit->setText("not an address");
}
- }else{
+ }else if (address != "") {
variableAddressLineEdit->setText("not an address");
+
+ }else{
+ variableAddressLineEdit->setText("");
}
arrayTableWidget->setAddressOffset(0);
diff --git a/src/SeerArrayVisualizerWidget.ui b/src/SeerArrayVisualizerWidget.ui
index 98a7355..a068066 100644
--- a/src/SeerArrayVisualizerWidget.ui
+++ b/src/SeerArrayVisualizerWidget.ui
@@ -19,10 +19,10 @@
-
- Variable name or expression.
+ Variable expression.
- variable name
+ Variable expression
true
@@ -32,13 +32,13 @@
-
- Variable address.
+ Memory address.
true
- variable address
+ Memory address
false
diff --git a/src/SeerMemoryVisualizerWidget.cpp b/src/SeerMemoryVisualizerWidget.cpp
index 7031a41..4f2a027 100644
--- a/src/SeerMemoryVisualizerWidget.cpp
+++ b/src/SeerMemoryVisualizerWidget.cpp
@@ -23,7 +23,8 @@ SeerMemoryVisualizerWidget::SeerMemoryVisualizerWidget (QWidget* parent) : QWidg
setWindowIcon(QIcon(":/seer/resources/seer_64x64.png"));
setWindowTitle("Seer Memory Visualizer");
- memoryLengthLineEdit->setValidator(new QIntValidator(1, 9999999, this));
+ //memoryLengthLineEdit->setValidator(new QIntValidator(1, 9999999, this));
+ memoryLengthLineEdit->setValidator(new QRegExpValidator(QRegExp("\\s*([1-9]\\d*\\s*)+"), this));
columnCountSpinBox->setValue(memoryHexEditor->bytesPerLine());
if (memoryHexEditor->memoryMode() == SeerHexWidget::HexMemoryMode) {
@@ -90,27 +91,37 @@ QString SeerMemoryVisualizerWidget::variableName () const {
void SeerMemoryVisualizerWidget::setVariableAddress (const QString& address) {
unsigned long offset = 0;
- bool ok = false;
+ bool refresh = false;
if (address.startsWith("0x")) {
+ bool ok = false;
+
offset = address.toULong(&ok, 16);
if (ok == true) {
variableAddressLineEdit->setText(address);
+ refresh = true;
}else{
variableAddressLineEdit->setText("not an address");
offset = 0;
}
- }else{
+ }else if (address != "") {
variableAddressLineEdit->setText("not an address");
offset = 0;
+
+ }else{
+ variableAddressLineEdit->setText("");
+ offset = 0;
}
- //qDebug() << address << offset << ok;
-
memoryHexEditor->setAddressOffset(offset);
+
+ // Show results immediately.
+ if (refresh) {
+ handleRefreshButton();
+ }
}
QString SeerMemoryVisualizerWidget::variableAddress () const {
@@ -214,7 +225,13 @@ void SeerMemoryVisualizerWidget::handleRefreshButton () {
return;
}
- emit evaluateMemoryExpression(_memoryId, variableAddressLineEdit->text(), memoryLengthLineEdit->text().toInt());
+ int nbytes = 256;
+
+ if (memoryLengthLineEdit->text() != "") {
+ nbytes = memoryLengthLineEdit->text().toInt();
+ }
+
+ emit evaluateMemoryExpression(_memoryId, variableAddressLineEdit->text(), nbytes);
}
void SeerMemoryVisualizerWidget::handleVariableNameLineEdit () {
diff --git a/src/SeerMemoryVisualizerWidget.ui b/src/SeerMemoryVisualizerWidget.ui
index 297cedc..3a6c41b 100644
--- a/src/SeerMemoryVisualizerWidget.ui
+++ b/src/SeerMemoryVisualizerWidget.ui
@@ -22,23 +22,23 @@
Variable name or expression.
- variable name
+ Variable expression
- false
+ true
-
- Variable address.
+ Memory address.
true
- variable address
+ Memory address
@@ -51,10 +51,10 @@
- # Bytes
+ # Bytes (default 256)
- false
+ true
@@ -125,7 +125,7 @@
- :/seer/resources/RelaxLightIcons/document-print.svg:/seer/resources/HighContrast/document-print.svg
+ :/seer/resources/RelaxLightIcons/document-print.svg:/seer/resources/RelaxLightIcons/document-print.svg
@@ -139,7 +139,7 @@
- :/seer/resources/RelaxLightIcons/document-save-as.svg:/seer/resources/HighContrast/document-save-as.svg
+ :/seer/resources/RelaxLightIcons/document-save-as.svg:/seer/resources/RelaxLightIcons/document-save-as.svg
@@ -153,7 +153,7 @@
- :/seer/resources/RelaxLightIcons/view-refresh.svg:/seer/resources/HighContrast/view-refresh.svg
+ :/seer/resources/RelaxLightIcons/view-refresh.svg:/seer/resources/RelaxLightIcons/view-refresh.svg
diff --git a/tests/helloarray/helloarray.cpp b/tests/helloarray/helloarray.cpp
index 54b06cd..933dd41 100644
--- a/tests/helloarray/helloarray.cpp
+++ b/tests/helloarray/helloarray.cpp
@@ -4,6 +4,17 @@
#include
#include
+float* function1() {
+
+ float* float_array = (float*)malloc(256);
+
+ for (int i=0; i<64; i++) {
+ float_array[i] = (float)i * 1.13;
+ }
+
+ return float_array;
+}
+
int main (void) {
//
@@ -50,6 +61,10 @@ int main (void) {
currentPhase += phaseIncrement;
}
+ //
+ //
+ //
+ float* x = function1();
//
//
@@ -60,6 +75,7 @@ int main (void) {
free(int_array);
free(float_array);
free(sine_array);
+ free(x);
return 0;
}