DebugServer2
Loading...
Searching...
No Matches
ELFProcess.h
1//
2// Copyright (c) 2014-present, Facebook, Inc.
3// All rights reserved.
4//
5// This source code is licensed under the University of Illinois/NCSA Open
6// Source License found in the LICENSE file in the root directory of this
7// source tree. An additional grant of patent rights can be found in the
8// PATENTS file in the same directory.
9//
10
11#pragma once
12
13#include "DebugServer2/Support/POSIX/ELFSupport.h"
14#include "DebugServer2/Target/POSIX/Process.h"
15
16namespace ds2 {
17namespace Target {
18namespace POSIX {
19
20class ELFProcess : public POSIX::Process {
21protected:
22 std::string _auxiliaryVector;
23 Address _sharedLibraryInfoAddress;
24
25public:
26 ErrorCode getAuxiliaryVector(std::string &auxv) override;
27 uint64_t getAuxiliaryVectorValue(uint64_t type) override;
28
29public:
30 virtual ErrorCode getSharedLibraryInfoAddress(Address &address);
31 ErrorCode enumerateSharedLibraries(
32 std::function<void(SharedLibraryInfo const &)> const &cb) override;
33
34public:
35 virtual ErrorCode enumerateAuxiliaryVector(
36 std::function<
37 void(Support::ELFSupport::AuxiliaryVectorEntry const &)> const &cb);
38
39protected:
40 ErrorCode updateInfo() override;
41 virtual ErrorCode updateAuxiliaryVector();
42};
43} // namespace POSIX
44} // namespace Target
45} // namespace ds2
Definition Types.h:95
Definition ELFProcess.h:20
Definition Process.h:23
Definition Types.h:397
Definition ELFSupport.h:20