summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-09-17 05:47:55 +0000
committerGreg Clayton <gclayton@apple.com>2011-09-17 05:47:55 +0000
commit5299cc58cb04d541278807e4e9f6978d120f5e0e (patch)
treed0cc8f3135398d742f8b35674711e953c5ff74f8
parent9163c394d9a4e550e96ddf7aaf0e1fe1fd5fad0e (diff)
downloadbcm5719-llvm-5299cc58cb04d541278807e4e9f6978d120f5e0e.tar.gz
bcm5719-llvm-5299cc58cb04d541278807e4e9f6978d120f5e0e.zip
Correctly handle the when we the 'G' packet fails. There were
cases where we were returning no error even though this packet was failing. llvm-svn: 139981
-rw-r--r--lldb/tools/debugserver/source/RNBRemote.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/lldb/tools/debugserver/source/RNBRemote.cpp b/lldb/tools/debugserver/source/RNBRemote.cpp
index 2fb079fbcc0..2b265ed70fd 100644
--- a/lldb/tools/debugserver/source/RNBRemote.cpp
+++ b/lldb/tools/debugserver/source/RNBRemote.cpp
@@ -2480,7 +2480,8 @@ RNBRemote::HandlePacket_G (const char *p)
std::vector<uint8_t> reg_ctx;
reg_ctx.resize(reg_ctx_size);
- if (packet.GetHexBytes (&reg_ctx[0], reg_ctx.size(), 0xcc) == reg_ctx.size())
+ const nub_size_t bytes_extracted = packet.GetHexBytes (&reg_ctx[0], reg_ctx.size(), 0xcc);
+ if (bytes_extracted == reg_ctx.size())
{
// Now write the register context
reg_ctx_size = DNBThreadSetRegisterContext(pid, tid, reg_ctx.data(), reg_ctx.size());
@@ -2489,7 +2490,14 @@ RNBRemote::HandlePacket_G (const char *p)
else
return SendPacket ("E55");
}
+ else
+ {
+ DNBLogError("RNBRemote::HandlePacket_G(%s): extracted %zu of %zu bytes, size mismatch\n", p, bytes_extracted, reg_ctx_size);
+ return SendPacket ("E64");
+ }
}
+ else
+ return SendPacket ("E65");
}
OpenPOWER on IntegriCloud