[Lldb-commits] [lldb] draft: [lldb] Upgrade ValueObject::GetData to return llvm::Expected (PR #130516)
Julius Alexandre via lldb-commits
lldb-commits at lists.llvm.org
Sat Mar 22 05:53:59 PDT 2025
================
@@ -523,13 +522,11 @@ class EntityVariableBase : public Materializer::Entity {
return;
}
} else {
- DataExtractor data;
- Status extract_error;
- valobj_sp->GetData(data, extract_error);
- if (!extract_error.Success()) {
+ auto data_or_err = valobj_sp->GetData();
+ if (auto error = data_or_err.takeError()) {
err = Status::FromErrorStringWithFormat(
"couldn't get the value of %s: %s", GetName().AsCString(),
- extract_error.AsCString());
+ llvm::toString(std::move(error)).c_str());
----------------
wizardengineer wrote:
understood, there's some case where I get an error like
```cpp
error: calling a protected constructor of class 'lldb_private::Status'
1854 | return llvm::joinErrors(llvm::createStringError(
```
I did something like this (in the case of getting that error):
```cpp
if (auto error = data_or_err.takeError()) {
auto combined_err = llvm::joinErrors(llvm::createStringError(
"Couldn't convert return value to raw data"),
std::move(error));
return Status::FromErrorString(llvm::toString(std::move(combined_err)).c_str());
}
```
https://github.com/llvm/llvm-project/pull/130516
More information about the lldb-commits
mailing list