diff --git a/alethzero/MainWin.cpp b/alethzero/MainWin.cpp
index 6ab50e9d8..14d7b91eb 100644
--- a/alethzero/MainWin.cpp
+++ b/alethzero/MainWin.cpp
@@ -1390,15 +1390,22 @@ void Main::on_debugTimeline_valueChanged()
updateDebugger();
}
-QString prettyU256(eth::u256 _n)
+QString Main::prettyU256(eth::u256 _n) const
{
ostringstream s;
if (_n >> 32 == 0)
s << hex << "0x" << (unsigned)_n;
else if (_n >> 200 == 0)
- s << "0x" << (h160)right160(_n);
+ {
+ Address a = right160(_n);
+ QString n = pretty(a);
+ if (n.isNull())
+ s << "0x" << a;
+ else
+ s << "" << n.toHtmlEscaped().toStdString() << " (" << a.abridged() << ")";
+ }
else if (fromRaw((h256)_n).size())
- s << "\"" << fromRaw((h256)_n).toStdString() << "\"";
+ return "\"" + fromRaw((h256)_n).toHtmlEscaped() + "\"";
else
s << "0x" << (h256)_n;
return QString::fromStdString(s.str());
@@ -1458,7 +1465,7 @@ void Main::updateDebugger()
ostringstream out;
out << s.cur.abridged();
if (i)
- out << " @0x" << hex << s.curPC;
+ out << " " << c_instructionInfo.at(s.inst).name << " @0x" << hex << s.curPC;
ui->callStack->addItem(QString::fromStdString(out.str()));
}
}
diff --git a/alethzero/MainWin.h b/alethzero/MainWin.h
index dd4001fc1..b2bda680a 100644
--- a/alethzero/MainWin.h
+++ b/alethzero/MainWin.h
@@ -140,6 +140,7 @@ private:
void updateBlockCount();
QString pretty(eth::Address _a) const;
+ QString prettyU256(eth::u256 _n) const;
void populateDebugger(eth::bytesConstRef r);
void initDebugger();
diff --git a/libethereum/State.cpp b/libethereum/State.cpp
index c3380f76a..e650469c1 100644
--- a/libethereum/State.cpp
+++ b/libethereum/State.cpp
@@ -891,7 +891,7 @@ map State::storage(Address _id) const
// Then merge cached storage over the top.
for (auto const& i: it->second.storage())
if (i.second)
- ret.insert(i);
+ ret[i.first] = i.second;
else
ret.erase(i.first);
}