// Declarations of helpers // Copyright (C) 2025 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 . #ifndef TAOSC_HELPERS_HH #define TAOSC_HELPERS_HH // Dyninst headers #include #include #include /// Return path to executable if the arguments are valid, /// otherwise print usage and exit char const* parse_args (int, char const* const*); /// Print the message about the given address to stderr void warn (Dyninst::Address, std::string const&); /// Print the message about the given address to stderr /// then terminate the program with exit code 1 void die_for (Dyninst::Address, std::string const&); /// Aggressively search for the block spanning the given address Dyninst::ParseAPI::Block* find_block (Dyninst::ParseAPI::SymtabCodeSource&, Dyninst::ParseAPI::CodeObject&, Dyninst::Address); #endif // TAOSC_HELPERS_HH