libTriton  version 0.7 build 1409
context.hpp
Go to the documentation of this file.
1 /*
3 ** Copyright (C) - Triton
4 **
5 ** This program is under the terms of the BSD License.
6 */
7 
8 #ifndef TRITON_PIN_CONTEXT_H
9 #define TRITON_PIN_CONTEXT_H
10 
11 #include <pin.H>
12 
13 /* libTriton */
14 #include <triton/tritonTypes.hpp>
15 
16 
17 
19 namespace tracer {
25  namespace pintool {
33  namespace context {
41  extern CONTEXT* lastContext;
43 
45  extern bool mustBeExecuted;
46 
49 
52 
55 
58 
61 
64 
67 
69  void executeContext(void);
70 
73 
76 
78  void synchronizeContext(void);
79 
81  };
83  };
85 };
86 
87 #endif // TRITON_PIN_TRIGGER_H
triton::uint512 getCurrentRegisterValue(const triton::arch::Register &reg)
Returns the current register value from a Register.
Definition: context.cpp:33
void synchronizeContext(void)
Synchronize weird behavior from Pin to libTriton.
Definition: context.cpp:481
This is used as C++ API.
Definition: api.hpp:41
void setCurrentMemoryValue(const triton::arch::MemoryAccess &mem, triton::uint512 value)
Sets the current memory value from a MemoryAccess.
Definition: context.cpp:426
This class is used when an instruction has a register operand.
Definition: register.hpp:44
CONTEXT * lastContext
The last Pin CONTEXT known.
Definition: context.cpp:29
This class is used to represent a memory access.
bool mustBeExecuted
True if the context must be executed.
Definition: context.cpp:30
void setCurrentRegisterValue(const triton::arch::Register &reg, triton::uint512 value)
Sets the current register value from a Register.
Definition: context.cpp:299
triton::uint512 getCurrentMemoryValue(const triton::arch::MemoryAccess &mem)
Returns the current memory value from a MemoryAccess.
Definition: context.cpp:262
std::uint32_t uint32
unisgned 32-bits
Definition: tritonTypes.hpp:31
void needConcreteRegisterValue(triton::API &api, const triton::arch::Register &reg)
Callback to provide concrete register values only if Triton needs them - cf #376. ...
Definition: context.cpp:469
std::uint8_t uint8
unisgned 8-bits
Definition: tritonTypes.hpp:25
void needConcreteMemoryValue(triton::API &api, const triton::arch::MemoryAccess &mem)
Callback to provide concrete memory values only if Triton needs them - cf #632.
Definition: context.cpp:475
boost::multiprecision::uint512_t uint512
unsigned 512-bits
Definition: tritonTypes.hpp:43
triton::API api
Global triton API for pintools.
Definition: api.cpp:16
unsigned long long __uint
unsigned long long if the arch is 64-bits.
Definition: tritonTypes.hpp:71
The Tracer namespace.
Definition: api.cpp:12
void executeContext(void)
Executes the new context.
Definition: context.cpp:461