From 529409a82aaaafb0cc3c275dc21ef8cf658e3936 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Mon, 11 Oct 2004 16:49:32 +0000 Subject: [PATCH] Better comment for new shared library feature --- mrw/stacktrace.hpp | 47 +++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/mrw/stacktrace.hpp b/mrw/stacktrace.hpp index 23fdd5e..dedce50 100644 --- a/mrw/stacktrace.hpp +++ b/mrw/stacktrace.hpp @@ -9,6 +9,9 @@ @license LGPL, see file COPYING $Log$ + Revision 1.8 2004/10/11 16:49:32 marc + Better comment for new shared library feature + Revision 1.7 2004/10/11 15:58:51 marc First version with working support for shared libraries! @@ -187,30 +190,41 @@ namespace mrw { static CodePos translate(void* addr) throw(std::bad_exception); - /** @brief read the symbol table from the executable file + /** @brief read the symbol table from the executable file or a + shared library + + On Solaris and Linux, the name of the executable is + automatically detected through the @c /dev/proc file + system. Only on Linux the shared libraries are detected + through a call to @c ldd. So you may leave the parameter + empty on these systems. - @param fname The file name of the executable. On Linux - and Solaris, this can be evaluated automatically, so the - parameter is optional. + @param fname The file name of the executable or a shared + library. On Linux and Solaris, this can be evaluated + automatically, so the parameter is optional. @param offs Offset of the address space. It is 0 for - executables, but must be given for shared libraries. + executables, but must be given for shared libraries. Use @c + ldd on the executable to find out the offset. @return @c true in case of success. If @c false is returned, the symbol table was not read and the evaluation cannot be done. Printing then only prints the raw addresses, without file, line nmber information and method names. - @note This method must be executed once before a stack trace - is printed the very first time. For storing a stack trace - (that means for the creation of a mrw::StackTrace object) a - call to this method is not yet needed. + @note createSymtable must be executed at least once before a + stack trace is printed the very first time. For storing a + stack trace (that means for the creation of a + mrw::StackTrace object) a call to this method is not yet + needed. - @note Call only one of both createSymtable methods! + @note In general, call only one of both createSymtable + methods! But instead of callin the other method once, you + may also call this one several times. - @note If this method is called more than once, the symbols - are created only the first time, so you don't loose too much - time. + @note If this method is called more than once for the same + file, the symbols are created only the first time, so you + don't loose too much time. */ static bool createSymtable(const std::string& fname="", void* offs=0) throw(std::bad_exception); @@ -234,11 +248,10 @@ namespace mrw { (that means for the creation of a mrw::StackTrace object) a call to this method is not yet needed. - @note Call only one of both createSymtable methods! + @note In general, call only one of both createSymtable methods! - @note If this method is called more than once, the symbols - are created only the first time, so you don't loose too much - time. + @note This method calls the other one for all files in + parameter @c files. */ static bool createSymtable(const BinFiles& files) throw(std::bad_exception);