blob: 8735302da14567fac131d4ff055aabf60d7223c5 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "garnet/bin/zxdb/client/mock_process.h"
#include "garnet/bin/zxdb/client/memory_dump.h"
#include "garnet/bin/zxdb/common/err.h"
#include "garnet/lib/debug_ipc/helper/message_loop.h"
#include "garnet/lib/debug_ipc/records.h"
namespace zxdb {
using debug_ipc::MessageLoop;
MockProcess::MockProcess(Session* session)
: Process(session, Process::StartType::kLaunch) {}
MockProcess::~MockProcess() = default;
Target* MockProcess::GetTarget() const { return nullptr; }
uint64_t MockProcess::GetKoid() const { return 0; }
const std::string& MockProcess::GetName() const {
static std::string name("Mock process");
return name;
}
ProcessSymbols* MockProcess::GetSymbols() { return nullptr; }
void MockProcess::GetModules(
std::function<void(const Err&, std::vector<debug_ipc::Module>)> cb) {
MessageLoop::Current()->PostTask(
FROM_HERE, [cb]() { cb(Err(), std::vector<debug_ipc::Module>()); });
}
void MockProcess::GetAspace(
uint64_t address,
std::function<void(const Err&, std::vector<debug_ipc::AddressRegion>)> cb)
const {
MessageLoop::Current()->PostTask(FROM_HERE, [cb]() {
cb(Err(), std::vector<debug_ipc::AddressRegion>());
});
}
std::vector<Thread*> MockProcess::GetThreads() const {
return std::vector<Thread*>();
}
Thread* MockProcess::GetThreadFromKoid(uint64_t koid) { return nullptr; }
void MockProcess::SyncThreads(std::function<void()> cb) {
MessageLoop::Current()->PostTask(FROM_HERE, [cb]() { cb(); });
}
void MockProcess::Pause() {}
void MockProcess::Continue() {}
void MockProcess::ContinueUntil(const InputLocation& location,
std::function<void(const Err&)> cb) {
MessageLoop::Current()->PostTask(FROM_HERE, [cb]() { cb(Err()); });
}
void MockProcess::ReadMemory(uint64_t address, uint32_t size,
std::function<void(const Err&, MemoryDump)> cb) {
MessageLoop::Current()->PostTask(FROM_HERE,
[cb]() { cb(Err(), MemoryDump()); });
}
void MockProcess::WriteMemory(
uint64_t address, std::vector<uint8_t> data,
std::function<void(const Err&)> callback) {
// Currently always just report success.
MessageLoop::Current()->PostTask(FROM_HERE,
[cb = std::move(callback)]() { cb(Err()); });
}
} // namespace zxdb