jj10306 marked 39 inline comments as done. jj10306 added inline comments.
================ Comment at: lldb/source/Target/TraceHTR.cpp:53-57 +std::vector<HTRBlockLayer> const &TraceHTR::GetBlockLayers() const { + return m_block_layers; +} + +HTRInstructionLayer const &TraceHTR::GetInstructionLayer() const { ---------------- wallace wrote: > wallace wrote: > > as these layers could change because of merges and what not, better remove > > the consts out of these methods > remove a llvm::ArrayRef<HTRBlockLayerUP> Layers are not mutated after being constructed by a pass, so there is currently no reason to expose mutable references to these structures. ================ Comment at: lldb/source/Target/TraceHTR.cpp:151 + while (valid_cursor) { + // TODO: how should we handle cursor errors in this loop? + lldb::addr_t current_instruction_load_address = cursor->GetLoadAddress(); ---------------- wallace wrote: > jj10306 wrote: > > wallace wrote: > > > you need to enhance the Instruction object, to support errors. You can > > > store the error string in it using a char * pointer from a ConstString. > > > Errors are not frequent, so that should be fine. You need to display the > > > errors in the export data as well, as hiding them could be misleading to > > > the user > > What Instruction object are you referring to? > > Given the way the InstructionLayer currently works, vector of load > > addresses and a map for metadata, how would you suggest incorporating the > > error information? > > My first thought was to store a special value (such as 0) in the vector of > > load addresses for each error, but this seems a bit hacky and doesn't allow > > a way to map a specific error back to its error message. > > What are your thoughts? > If in CTR you can embed error messages, it would be nice to have that in the > metadata. It's also valid to have an instruction address of 0 in the case of > errors. However, you have end up having abnormal blocks like > insn1 insn2 error_kind1 insn1 insn2 error_kind2 > > so if you just look at the addresses, [insn1, insn2, 0] is a block that > appears twice. > > Now the question is: if your users will want to see the specific errors, then > you'll have to handle it accordingly in the metadata. But if your users don't > case what kind of errors are displayed in the chrome trace view, then > replacing an error with address 0 makes sense. You could leave a TODO here in > that case. Let's sync up offline anyway Discussed offline - decided to replace errors with an address of 0 for the time being. If decoding errors are common/users want to know the specifics of the error, we can add logic to store the error's message in a future diff. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D105741/new/ https://reviews.llvm.org/D105741 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits