Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
global_excepts.hpp File Reference
#include <arion/capstone/capstone.h>
#include <arion/common/global_defs.hpp>
#include <arion/keystone/keystone.h>
#include <arion/unicorn/unicorn.h>
#include <arion/utils/convert_utils.hpp>
#include <cstdint>
#include <dlfcn.h>
#include <execinfo.h>
#include <string.h>
#include <string>

Go to the source code of this file.

Classes

class  arion_exception::ArionException
 This class represents a custom exception defined in Arion environment. More...
 
class  arion_exception::InvalidArgumentException
 Thrown when passing an invalid argument to a method. More...
 
class  arion_exception::ExpiredWeakPtrException
 Thrown when attempting to use an expired weak_ptr. More...
 
class  arion_exception::FileNotFoundException
 Thrown when a file is not found. More...
 
class  arion_exception::FileOpenException
 Thrown when an error occurs while opening a file. More...
 
class  arion_exception::FileTooSmallException
 Thrown when a file is smaller than expected. More...
 
class  arion_exception::FileNotInFsException
 Thrown when a file is not found in a file system. More...
 
class  arion_exception::ConfigKeyNotFoundException
 Thrown when a key is not found in the configuration. More...
 
class  arion_exception::ConfigWrongTypeAccessException
 Thrown when trying to access a configuration key with the wrong type. More...
 
class  arion_exception::WrongContextFileMagicException
 Thrown when a file does not start with the required magic sequence for a context file. More...
 
class  arion_exception::NewerContextFileVersionException
 Thrown when a context file was written with a newer version of Arion. More...
 
class  arion_exception::PathTooLongException
 Thrown when a file path is too long. More...
 
class  arion_exception::UnknownLinkageTypeException
 Thrown when the linkage type of an executable cannot be identified. More...
 
class  arion_exception::InvalidSyscallNoException
 Thrown when passing an invalid system call number to a method. More...
 
class  arion_exception::InvalidSyscallNameException
 Thrown when passing an invalid system call name argument to a method. More...
 
class  arion_exception::BadLinkageTypeException
 Thrown when the linkage type is not suitable for the operation. More...
 
class  arion_exception::NoCoredumpCurrentThreadException
 Thrown when trying to analyze a coredump note that does not refer to a thread. More...
 
class  arion_exception::NoSegmentAtAddrException
 Thrown when there is no memory segment mapped at the specified address. More...
 
class  arion_exception::NoSegmentWithInfoException
 Thrown when there is no memory segment with the specified info. More...
 
class  arion_exception::SegmentNotMappedException
 Thrown when attempting to access a memory segment that has not been mapped. More...
 
class  arion_exception::MemAlreadyMappedException
 Thrown when attempting to map memory that has already been mapped. More...
 
class  arion_exception::CantUnmapOutsideSegmentException
 Thrown when trying to unmap a memory segment that is not within the bounds of the segment. More...
 
class  arion_exception::UnsupportedCpuArchException
 Thrown when the CPU architecture is not supported. More...
 
class  arion_exception::UnsupportedHostCpuArchException
 Thrown when the host CPU architecture is not supported. More...
 
class  arion_exception::TooManyThreadsException
 Thrown when the system is already running the maximum number of threads. More...
 
class  arion_exception::WrongThreadIdException
 Thrown when attempting to access a thread with an invalid thread id. More...
 
class  arion_exception::UnknownSignalException
 Thrown when a thread receives an unknown signal. More...
 
class  arion_exception::NoSighandlerForSignalException
 Thrown when a thread has no signal handler set for a given signal. More...
 
class  arion_exception::UnhandledSyncSignalException
 Thrown when a thread crashes with an unhandled signal. More...
 
class  arion_exception::ThreadAlreadySigWaitingException
 Thrown when a thread is already waiting for a signal. More...
 
class  arion_exception::WaitSameProcessException
 Thrown when trying to wait for a process that is the same as the current process. More...
 
class  arion_exception::NoProcessWithPidException
 Thrown when trying to access a process with a non-existing or already exited PID. More...
 
class  arion_exception::NoChildWithPidException
 Thrown when a parent process does not have a child process with a specific PID. More...
 
class  arion_exception::WrongHookParamsException
 Thrown when the parameters passed to a hook are invalid. More...
 
class  arion_exception::TooManyHooksException
 Thrown when there are too many hooks already active. More...
 
class  arion_exception::WrongHookIdException
 Thrown when attempting to use a non-existent hook id. More...
 
class  arion_exception::HeavierRegException
 Thrown when attempting to read/write a register with a size that doesn't match the register's size. More...
 
class  arion_exception::NoRegWithValueException
 Thrown when trying to access a register that does not exist in the current architecture. More...
 
class  arion_exception::NoRegWithNameException
 Thrown when trying to access a register that does not exist in the current architecture. More...
 
class  arion_exception::NoStructFieldWithNameException
 Thrown when attempting to access a field in a structure that does not exist. More...
 
class  arion_exception::TooManyStructsException
 Thrown when there are too many active structures. More...
 
class  arion_exception::WrongStructIdException
 Thrown when an invalid struct id is specified. More...
 
class  arion_exception::NoIdtEntryWithIntnoException
 Thrown when attempting to access an IDT entry with an interrupt number that is not referenced. More...
 
class  arion_exception::NoSignalForIntrException
 Thrown when a CPU interrupt does not exist or has no corresponding kernel signal implemented. More...
 
class  arion_exception::UnicornOpenException
 Thrown when an error occurs while opening Unicorn engine. More...
 
class  arion_exception::UnicornCtlException
 Thrown when an error occurs while configuring the Unicorn engine. More...
 
class  arion_exception::UnicornMapException
 Thrown when an error occurs while mapping a memory segment with the Unicorn engine. More...
 
class  arion_exception::UnicornUnmapException
 Thrown when an error occurs while unmapping a memory segment with Unicorn engine. More...
 
class  arion_exception::UnicornMemRegionsException
 Thrown when an error occurs while fetching memory regions with Unicorn engine. More...
 
class  arion_exception::UnicornMemReadException
 Thrown when an error occurs while reading from memory with Unicorn engine. More...
 
class  arion_exception::UnicornMemWriteException
 Thrown when an error occurs while writing to memory with the Unicorn engine. More...
 
class  arion_exception::UnicornMemProtectException
 Thrown when an error occurs while changing memory writes of a segment with Unicorn engine. More...
 
class  arion_exception::UnicornRegReadException
 Thrown when an error occurs while reading a register with Unicorn engine. More...
 
class  arion_exception::UnicornRegWriteException
 Thrown when an error occurs while writing a register with Unicorn engine. More...
 
class  arion_exception::UnicornCtlFlushTbException
 Thrown when an error occurs while flushing Qemu translation blocks with Unicorn engine. More...
 
class  arion_exception::UnicornHookAddException
 Thrown when an error occurs while injecting a hook with Unicorn engine. More...
 
class  arion_exception::UnicornHookDelException
 Thrown when an error occurs while removing a hook with Unicorn engine. More...
 
class  arion_exception::UnicornRunException
 Thrown when an error occurs while running Unicorn engine. More...
 
class  arion_exception::UnicornStopException
 Thrown when an error occurs while stopping Unicorn engine. More...
 
class  arion_exception::UnicornAflException
 Thrown when an error occurs while using the UnicornAFL engine. More...
 
class  arion_exception::UnicornAflNoExitsException
 Thrown when no exits are specified while fuzzing with UnicornAFL engine. More...
 
class  arion_exception::KeystoneOpenException
 Thrown when an error occurs while opening the Keystone engine. More...
 
class  arion_exception::KeystoneAsmException
 Thrown when an error occurs while using the Keystone engine for assembly. More...
 
class  arion_exception::CapstoneOpenException
 Thrown when an error occurs while opening the Capstone engine. More...
 
class  arion_exception::FileAlreadyHasFdException
 Thrown when attempting to add an entry to a file descriptor table that already contains an entry for the same file. More...
 
class  arion_exception::NoFileAtFdException
 Thrown when a file descriptor does not correspond to a file. More...
 
class  arion_exception::SocketAlreadyHasFdException
 Thrown when attempting to add an entry to a socket that already has a file descriptor. More...
 
class  arion_exception::NoSocketAtFdException
 Thrown when a socket entry cannot be found with a given file descriptor. More...
 
class  arion_exception::NoFreeGdtEntryException
 Thrown when there is no free GDT entry available. More...
 
class  arion_exception::WrongTraceFileMagicException
 Thrown when a trace file does not start with the required magic sequence. More...
 
class  arion_exception::NewerTraceFileVersionException
 Thrown when a trace file was written with a newer version of Arion. More...
 
class  arion_exception::UnknownTraceModeException
 Thrown when the specified trace mode does not exist. More...
 
class  arion_exception::DifferentTraceModesException
 Thrown when attempting to compare code traces that use different trace modes. More...
 
class  arion_exception::WrongTraceModeException
 Thrown when the requested feature can't be used with the specified trace mode. More...
 
class  arion_exception::UnknownTraceRegException
 Thrown when attempting to access a register that is not part of the trace file. More...
 
class  arion_exception::UnknownTraceModuleIdException
 Thrown when attempting to access a module with an unknown ID in a trace file. More...
 
class  arion_exception::UnknownTraceModuleNameException
 Thrown when attempting to access a trace module with an unknown name. More...
 
class  arion_exception::UnknownTraceModuleHashException
 Thrown when attempting to access a trace module with an unknown hash. More...
 
class  arion_exception::CantReachTraceAddrException
 Thrown when a trace address can't be reached. More...
 
class  arion_exception::CantReachTraceOffException
 Thrown when a trace file can't be reached at the specified offset. More...
 
class  arion_exception::TracerAlreadyEnabledException
 Thrown when attempting to enable a tracer that is already enabled. More...
 
class  arion_exception::TracerAlreadyDisabledException
 Thrown when trying to disable a tracer that is already disabled. More...
 
class  arion_exception::MemoryRecorderAlreadyStartedException
 Thrown when attempting to start a MemoryRecorder that is already started. More...
 
class  arion_exception::MemoryRecorderAlreadyStoppedException
 Thrown when trying to stop a MemoryRecorder that is already stopped. More...
 
class  arion_exception::WrongLogLevelException
 Thrown when the specified log level does not exist. More...
 
class  arion_exception::TooManyLoggersException
 Thrown when the maximum number of loggers has been reached. More...
 

Namespaces

namespace  arion_exception
 

Macros

#define ARION_EXCEPTION_MAX_FRAMES   64
 

Macro Definition Documentation

◆ ARION_EXCEPTION_MAX_FRAMES

#define ARION_EXCEPTION_MAX_FRAMES   64