Server IP : 172.67.216.182 / Your IP : 172.70.208.23 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/boost/boost_1_59_0/boost/test/ |
Upload File : |
// (C) Copyright Gennadiy Rozental 2006-2014. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org/libs/test for the library home page. // //! @file //! @brief defines portable debug interfaces //! //! Intended to standardize interface of programs with debuggers // *************************************************************************** #ifndef BOOST_TEST_DEBUG_API_HPP_112006GER #define BOOST_TEST_DEBUG_API_HPP_112006GER // Boost.Test #include <boost/test/detail/config.hpp> #include <boost/test/utils/basic_cstring/basic_cstring.hpp> // Boost #include <boost/function/function1.hpp> // STL #include <string> #include <boost/test/detail/suppress_warnings.hpp> //____________________________________________________________________________// namespace boost { /// Contains debugger and debug C Runtime interfaces namespace debug { /// @defgroup DebuggerInterface Debugger and debug C Runtime portable interfaces /// @{ /// These interfaces are intended to be used by application to: /// - check if we are running under debugger /// - attach the debugger to itself /// /// Unfortunately these actions differ widely between different debuggers available in a field. These interface present generalized standard form of /// performing these actions. Implementation depends a lot on the environment application is running in and thus there are several custom implementations /// supported by the Boost.Test /// /// In addition here you find interfaces for memory leaks detection and reporting. /// /// All these interfaces are defined in namespace boost::debug // ************************************************************************** // /// Checks if programs runs under debugger /// @returns true if current process is under debugger. False otherwise // ************************************************************************** // bool BOOST_TEST_DECL under_debugger(); // ************************************************************************** // /// Cause program to break execution in debugger at call point // ************************************************************************** // void BOOST_TEST_DECL debugger_break(); // ************************************************************************** // /// Collection of data, which is used by debugger starter routine // ************************************************************************** // struct dbg_startup_info { long pid; ///< pid of a program to attach to bool break_or_continue; ///< what to do after debugger is attached unit_test::const_string binary_path; ///< path to executable for current process unit_test::const_string display; ///< if debugger has a GUI, which display to use (on UNIX) unit_test::const_string init_done_lock; ///< path to a uniquely named lock file, which is used to pause current application while debugger is being initialized }; /// Signature of debugger starter routine. Takes an instance of dbg_startup_into as only argument typedef boost::function<void (dbg_startup_info const&)> dbg_starter; // ************************************************************************** // /// Specifies which debugger to use when attaching and optionally what routine to use to start that debugger /// There are many different debuggers available for different platforms. Some of them also can be used in a different setups/configuratins. /// For example, gdb can be used in plain text mode, inside ddd, inside (x)emacs or in a separate xterm window. /// Boost.Test identifies each configuration with unique string. /// Also different debuggers configurations require different routines which is specifically tailored to start that debugger configuration. /// Boost.Test comes with set of predefined configuration names and corresponding routines for these configurations: /// - TODO /// /// You can use this routine to select which one of the predefined debugger configurations to use in which case you do not need to provide starter /// routine (the one provided by Boost.Test will be used). You can also use this routine to select your own debugger by providing unique configuration /// id and starter routine for this configuration. /// /// @param[in] dbg_id Unique id for debugger configuration (for example, gdb) /// @param[in] s Optional starter routine for selected configuration (use only you want to define your own configuration) /// @returns Id of previously selected debugger configuration std::string BOOST_TEST_DECL set_debugger( unit_test::const_string dbg_id, dbg_starter s = dbg_starter() ); // ************************************************************************** // /// Attaches debugger to the current process /// Using currently selected debugger, this routine attempts to attach the debugger to this process. /// @param[in] break_or_continue tells what we wan to do after the debugger is attached. If true - process execution breaks /// in the point in invocation of this function. Otherwise execution continues, but now it is /// under the debugger /// @returns true if debugger successfully attached. False otherwise // ************************************************************************** // bool BOOST_TEST_DECL attach_debugger( bool break_or_continue = true ); // ************************************************************************** // /// Switches on/off memory leaks detection /// On platforms where memory leak detection is possible inside of running application (at the moment this is only Windows family) you can /// switch this feature on and off using this interface. In addition you can specify the name of the file to write a report into. Otherwise /// the report is going to be generated in standard error stream. /// @param[in] on_off boolean switch /// @param[in] report_file file, where the report should be directed to // ************************************************************************** // void BOOST_TEST_DECL detect_memory_leaks( bool on_off, unit_test::const_string report_file = unit_test::const_string() ); // ************************************************************************** // /// Causes program to break execution in debugger at specific allocation point /// On some platforms/memory managers (at the moment only on Windows/Visual Studio) one can tell a C Runtime to break /// on specific memory allocation. This can be used in combination with memory leak detection (which reports leaked memory /// allocation number) to locate the place where leak initiated. /// @param[in] mem_alloc_order_num Specific memory allocation number // ************************************************************************** // void BOOST_TEST_DECL break_memory_alloc( long mem_alloc_order_num ); } // namespace debug /// @} } // namespace boost #include <boost/test/detail/enable_warnings.hpp> #endif