As previously discussed with @jj10306, we didn't really have a name for the post-mortem (or offline) trace session representation, which is in fact a folder with a bunch of files. We decided to call this folder "trace bundle", and the main JSON file in it "trace bundle description file". This naming is pretty decent, so I'm refactoring all the existing code to account for that. Differential Revision: https://reviews.llvm.org/D128484
59 lines
1.7 KiB
C++
59 lines
1.7 KiB
C++
//===-- ThreadPostMortemTrace.h ---------------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLDB_TARGET_THREADPOSTMORTEMTRACE_H
|
|
#define LLDB_TARGET_THREADPOSTMORTEMTRACE_H
|
|
|
|
#include "lldb/Target/Thread.h"
|
|
|
|
namespace lldb_private {
|
|
|
|
/// \class ThreadPostMortemTrace ThreadPostMortemTrace.h
|
|
///
|
|
/// Thread implementation used for representing threads gotten from trace
|
|
/// session files, which are similar to threads from core files.
|
|
///
|
|
class ThreadPostMortemTrace : public Thread {
|
|
public:
|
|
/// \param[in] process
|
|
/// The process who owns this thread.
|
|
///
|
|
/// \param[in] tid
|
|
/// The tid of this thread.
|
|
///
|
|
/// \param[in] trace_file
|
|
/// The file that contains the list of instructions that were traced when
|
|
/// this thread was being executed.
|
|
ThreadPostMortemTrace(Process &process, lldb::tid_t tid,
|
|
const llvm::Optional<FileSpec> &trace_file)
|
|
: Thread(process, tid), m_trace_file(trace_file) {}
|
|
|
|
void RefreshStateAfterStop() override;
|
|
|
|
lldb::RegisterContextSP GetRegisterContext() override;
|
|
|
|
lldb::RegisterContextSP
|
|
CreateRegisterContextForFrame(StackFrame *frame) override;
|
|
|
|
/// \return
|
|
/// The trace file of this thread.
|
|
const llvm::Optional<FileSpec> &GetTraceFile() const;
|
|
|
|
protected:
|
|
bool CalculateStopInfo() override;
|
|
|
|
lldb::RegisterContextSP m_thread_reg_ctx_sp;
|
|
|
|
private:
|
|
llvm::Optional<FileSpec> m_trace_file;
|
|
};
|
|
|
|
} // namespace lldb_private
|
|
|
|
#endif // LLDB_TARGET_THREADPOSTMORTEMTRACE_H
|