================
@@ -157,7 +157,9 @@ static lldb::offset_t DumpInstructions(const DataExtractor 
&DE, Stream *s,
         exe_scope->CalculateExecutionContext(exe_ctx);
         disassembler_sp->GetInstructionList().Dump(
             s, show_address, show_bytes, show_control_flow_kind, &exe_ctx);
-      }
+      } else if (number_of_instructions)
+        s->Printf("warning: failed to decode instructions at 0x%" PRIx64 ".",
+                  addr);
----------------
tgs-sc wrote:

> Is there precedent for writing errors or warnings to this stream? 

Actually, I saw printing warning in such way in `lldb/source/Process/Target` so 
I decided to do the same. In the DumpDataExtractor there is already such code, 
so I think there is no much diffrenece between warning and error

```cpp
    case eFormatBoolean:
      if (item_byte_size <= 8)
        s->Printf("%s", DE.GetMaxU64Bitfield(&offset, item_byte_size,
                                             item_bit_size, item_bit_offset)
                            ? "true"
                            : "false");
      else {
        s->Printf("error: unsupported byte size (%" PRIu64
                  ") for boolean format",
                  (uint64_t)item_byte_size);
        return offset;
      }
      break;
```

> so we can write it to the dedicated error or warning stream

Yes, at the beginning I wanted to report this information in caller of 
`DumpDataExtractor`, but 1) There are many places and in some of them return 
value is ignored 2) Following the logic that an error/warning should be 
processed in the place where it was received, it should be processed right here.

```cpp
lldb::offset_t lldb_private::DumpDataExtractor(...)
...
  if (item_format == eFormatInstruction)
    return DumpInstructions(DE, s, exe_scope, start_offset, base_addr,
                            item_count);
...
```

https://github.com/llvm/llvm-project/pull/164413
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to