[Lldb-commits] [PATCH] D107665: [lldb] [Commands] Fix reporting errors in 'platform file read/write'
Michał Górny via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Aug 10 03:11:24 PDT 2021
mgorny updated this revision to Diff 365407.
mgorny added a comment.
Fix integer type mismatches.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D107665/new/
https://reviews.llvm.org/D107665
Files:
lldb/source/Commands/CommandObjectPlatform.cpp
lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
Index: lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
===================================================================
--- lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
+++ lldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
@@ -60,11 +60,12 @@
self.match("platform file open /some/file.txt -v 0755",
[r"error: Invalid argument"],
error=True)
- # TODO: fix the commands to fail on unsuccessful result
self.match("platform file read 16 -o 11 -c 13",
- [r"Return = -1\nData = \"\""])
+ [r"error: Invalid argument"],
+ error=True)
self.match("platform file write 16 -o 11 -d teststring",
- [r"Return = -1"])
+ [r"error: Invalid argument"],
+ error=True)
self.match("platform file close 16",
[r"error: Invalid argument"],
error=True)
Index: lldb/source/Commands/CommandObjectPlatform.cpp
===================================================================
--- lldb/source/Commands/CommandObjectPlatform.cpp
+++ lldb/source/Commands/CommandObjectPlatform.cpp
@@ -588,11 +588,15 @@
}
std::string buffer(m_options.m_count, 0);
Status error;
- uint32_t retcode = platform_sp->ReadFile(
+ uint64_t retcode = platform_sp->ReadFile(
fd, m_options.m_offset, &buffer[0], m_options.m_count, error);
- result.AppendMessageWithFormat("Return = %d\n", retcode);
- result.AppendMessageWithFormat("Data = \"%s\"\n", buffer.c_str());
- result.SetStatus(eReturnStatusSuccessFinishResult);
+ if (retcode != UINT64_MAX) {
+ result.AppendMessageWithFormat("Return = %" PRIu64 "\n", retcode);
+ result.AppendMessageWithFormat("Data = \"%s\"\n", buffer.c_str());
+ result.SetStatus(eReturnStatusSuccessFinishResult);
+ } else {
+ result.AppendError(error.AsCString());
+ }
} else {
result.AppendError("no platform currently selected\n");
}
@@ -677,11 +681,15 @@
cmd_line);
return result.Succeeded();
}
- uint32_t retcode =
+ uint64_t retcode =
platform_sp->WriteFile(fd, m_options.m_offset, &m_options.m_data[0],
m_options.m_data.size(), error);
- result.AppendMessageWithFormat("Return = %d\n", retcode);
- result.SetStatus(eReturnStatusSuccessFinishResult);
+ if (retcode != UINT64_MAX) {
+ result.AppendMessageWithFormat("Return = %" PRIu64 "\n", retcode);
+ result.SetStatus(eReturnStatusSuccessFinishResult);
+ } else {
+ result.AppendError(error.AsCString());
+ }
} else {
result.AppendError("no platform currently selected\n");
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107665.365407.patch
Type: text/x-patch
Size: 2981 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20210810/6d3d548d/attachment.bin>
More information about the lldb-commits
mailing list