[Lldb-commits] [lldb] [LLDB][Telemetry]Define DebuggerTelemetryInfo and related methods (PR #127696)
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Fri Feb 28 03:54:06 PST 2025
================
@@ -18,25 +18,35 @@
namespace lldb_private {
-struct FakeTelemetryInfo : public llvm::telemetry::TelemetryInfo {
+struct FakeTelemetryInfo : public telemetry::LLDBBaseTelemetryInfo {
std::string msg;
+ int num;
+
+ ::llvm::telemetry::KindType getKind() const override { return 0b11111; }
};
class TestDestination : public llvm::telemetry::Destination {
public:
- TestDestination(std::vector<const llvm::telemetry::TelemetryInfo *> *entries)
+ TestDestination(std::vector<llvm::telemetry::TelemetryInfo *> *entries)
: received_entries(entries) {}
llvm::Error
receiveEntry(const llvm::telemetry::TelemetryInfo *entry) override {
- received_entries->push_back(entry);
+ // Save a copy of the entry for later verification (because the original
+ // entry might have gone out of scope by the time verification is done.
+ if (auto *fake_entry = llvm::dyn_cast<FakeTelemetryInfo>(entry)) {
+ FakeTelemetryInfo *copied = new FakeTelemetryInfo();
+ copied->msg = fake_entry->msg;
+ copied->num = fake_entry->num;
+ received_entries->push_back(copied);
+ }
----------------
labath wrote:
As we already have a copy constructor..
```suggestion
if (auto *fake_entry = llvm::dyn_cast<FakeTelemetryInfo>(entry))
received_entries->push_back(std::make_unique<FakeTelemetryInfo>(*fake_entry));
```
https://github.com/llvm/llvm-project/pull/127696
More information about the lldb-commits
mailing list