// Patch's jump destinations searcher
// Copyright (C) 2024 Nguyễn Gia Phong
//
// This file is part of taosc.
//
// Taosc is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Taosc is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with taosc. If not, see .
// Dyninst headers
#include
#include
#include
#include
#include
#include
using AbstractRegion = Dyninst::AbsRegion;
using Address = Dyninst::Address;
using AssignmentConverter = Dyninst::AssignmentConverter;
using AssignmentPtr = Dyninst::Assignment::Ptr;
using Block = Dyninst::ParseAPI::Block;
using CodeObject = Dyninst::ParseAPI::CodeObject;
using CodeRegion = Dyninst::ParseAPI::CodeRegion;
using CodeSource = Dyninst::ParseAPI::SymtabCodeSource;
using Edge = Dyninst::Edge;
using EdgeIterator = Dyninst::EdgeIterator;
using Function = Dyninst::ParseAPI::Function;
using Graph = Dyninst::Graph;
using Instruction = Dyninst::InstructionAPI::Instruction;
using InstructionCategory = Dyninst::InstructionAPI::InsnCategory;
using InstructionDecoder = Dyninst::InstructionAPI::InstructionDecoder;
using NodeIterator = Dyninst::NodeIterator;
using SliceNode = Dyninst::SliceNode;
using Slicer = Dyninst::Slicer;
#include
#include
#include
#include
#include