> On Jan 16, 2019, at 8:36 AM, Adrian Prantl via lldb-commits > <lldb-commits@lists.llvm.org> wrote: > >> >> On Jan 16, 2019, at 4:22 AM, Pavel Labath <pa...@labath.sk> wrote: >> >> Hi Adrian, Zachary, >> >> this commit breaks the SymbolFile/NativePDB/function-types-builtins.cpp test >> <http://lab.llvm.org:8011/builders/lldb-x64-windows-ninja/builds/630>. This >> is due do a slight behavioral change where previously this function would >> consider a value 0 from GetByteSize to be failure, but now it's considered a >> success. This seemed to matter for function references, where it changed the >> output when displaying them (though I can't really say whether it's for the >> better or worse). >> >> I am not sure whether this change was intentional or not (it would seem to >> be in line with the overall direction you're going in with the Optional >> patches, but the commit message just says "simplify"), and I am also not >> sure whether the that test intentionally meant to check this error message >> (it seems somewhat irrelevant to that test, but maybe Zachary put it there >> for some reason). For the time being, I've reverted the patch to keep the >> build green. >> >> BTW: You should be able to reproduce this failure if you add lld to your >> build config. Alternatively you can just compile that source file for >> darwin, as the same behavioral change is present with dwarf debug info too. >> > > On Darwin I'm getting an also very misleading > > (lldb) target var ref > (void (&)(bool)) ref = 0x0000000100000920 (&::ref = <out of memory>)
Wait, no. I reverted the wrong patch :-( I get <Unable to determine byte size.> vs <out of memory>. I assume that's what's happening on Windows, too. If that's the case I should be able to do something. -- adrian > > with and without the patch. > > Which error message are you getting on Windows with my patch applied? > > I'll see if I can get LLDB to produce a more meaningful error message on > Darwin, perhaps this will also improve the error on Windows. > > -- adrian > >> >> On 15/01/2019 22:26, Adrian Prantl via lldb-commits wrote: >>> Author: adrian >>> Date: Tue Jan 15 13:26:03 2019 >>> New Revision: 351250 >>> URL: http://llvm.org/viewvc/llvm-project?rev=351250&view=rev >>> Log: >>> Simplify Value::GetValueByteSize() >>> Modified: >>> lldb/trunk/source/Core/Value.cpp >>> Modified: lldb/trunk/source/Core/Value.cpp >>> URL: >>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Value.cpp?rev=351250&r1=351249&r2=351250&view=diff >>> ============================================================================== >>> --- lldb/trunk/source/Core/Value.cpp (original) >>> +++ lldb/trunk/source/Core/Value.cpp Tue Jan 15 13:26:03 2019 >>> @@ -210,35 +210,31 @@ bool Value::ValueOf(ExecutionContext *ex >>> } >>> uint64_t Value::GetValueByteSize(Status *error_ptr, ExecutionContext >>> *exe_ctx) { >>> - uint64_t byte_size = 0; >>> - >>> switch (m_context_type) { >>> case eContextTypeRegisterInfo: // RegisterInfo * >>> - if (GetRegisterInfo()) >>> - byte_size = GetRegisterInfo()->byte_size; >>> + if (GetRegisterInfo()) { >>> + if (error_ptr) >>> + error_ptr->Clear(); >>> + return GetRegisterInfo()->byte_size; >>> + } >>> break; >>> case eContextTypeInvalid: >>> case eContextTypeLLDBType: // Type * >>> case eContextTypeVariable: // Variable * >>> { >>> - const CompilerType &ast_type = GetCompilerType(); >>> - if (ast_type.IsValid()) >>> - if (llvm::Optional<uint64_t> size = ast_type.GetByteSize( >>> - exe_ctx ? exe_ctx->GetBestExecutionContextScope() : nullptr)) >>> - byte_size = *size; >>> - } break; >>> - } >>> - >>> - if (error_ptr) { >>> - if (byte_size == 0) { >>> - if (error_ptr->Success()) >>> - error_ptr->SetErrorString("Unable to determine byte size."); >>> - } else { >>> - error_ptr->Clear(); >>> + auto *scope = exe_ctx ? exe_ctx->GetBestExecutionContextScope() : >>> nullptr; >>> + if (llvm::Optional<uint64_t> size = >>> GetCompilerType().GetByteSize(scope)) { >>> + if (error_ptr) >>> + error_ptr->Clear(); >>> + return *size; >>> } >>> + break; >>> + } >>> } >>> - return byte_size; >>> + if (error_ptr && error_ptr->Success()) >>> + error_ptr->SetErrorString("Unable to determine byte size."); >>> + return 0; >>> } >>> const CompilerType &Value::GetCompilerType() { >>> _______________________________________________ >>> lldb-commits mailing list >>> lldb-commits@lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits >> > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits