#, fuzzy msgid "" msgstr "" "Project-Id-Version: man-pages-l10n VERSION\n" "POT-Creation-Date: 2014-07-17 17:54+0900\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: man-pages/man3/backtrace.3:27 #, no-wrap msgid "BACKTRACE" msgstr "" #. type: TH #: man-pages/man3/backtrace.3:27 #, no-wrap msgid "2008-06-14" msgstr "" #. type: TH #: man-pages/man3/backtrace.3:27 #, no-wrap msgid "GNU" msgstr "" #. type: TH #: man-pages/man3/backtrace.3:27 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH #: man-pages/man3/backtrace.3:28 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:31 msgid "" "backtrace, backtrace_symbols, backtrace_symbols_fd - support for application " "self-debugging" msgstr "" #. type: SH #: man-pages/man3/backtrace.3:31 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:33 msgid "B<#include Eexecinfo.hE>" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:38 msgid "B B<**>IB<,> B IB<);>" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:43 msgid "" "B B<*>IB<,> B " "IB<);>" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:50 msgid "" "B B<*>IB<,> B " "IB<,> B IB<);>" msgstr "" #. type: SH #: man-pages/man3/backtrace.3:50 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:78 msgid "" "B() returns a backtrace for the calling program, in the array " "pointed to by I. A backtrace is the series of currently active " "function calls for the program. Each item in the array pointed to by " "I is of type I, and is the return address from the " "corresponding stack frame. The I argument specifies the maximum " "number of addresses that can be stored in I. If the backtrace is " "larger than I, then the addresses corresponding to the I most " "recent function calls are returned; to obtain the complete backtrace, make " "sure that I and I are large enough." msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:103 msgid "" "Given the set of addresses returned by B() in I, " "B() translates the addresses into an array of strings " "that describe the addresses symbolically. The I argument specifies " "the number of addresses in I. The symbolic representation of each " "address consists of the function name (if this can be determined), a " "hexadecimal offset into the function, and the actual return address (in " "hexadecimal). The address of the array of string pointers is returned as " "the function result of B(). This array is B(3)ed " "by B(), and must be freed by the caller. (The strings " "pointed to by the array of pointers need not and should not be freed.)" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:118 msgid "" "B() takes the same I and I arguments as " "B(), but instead of returning an array of strings to the " "caller, it writes the strings, one per line, to the file descriptor I. " "B() does not call B(3), and so can be " "employed in situations where the latter function might fail." msgstr "" #. type: SH #: man-pages/man3/backtrace.3:118 #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:130 msgid "" "B() returns the number of addresses returned in I, which " "is not greater than I. If the return value is less than I, then " "the full backtrace was stored; if it is equal to I, then it may have " "been truncated, in which case the addresses of the oldest stack frames are " "not returned." msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:137 msgid "" "On success, B() returns a pointer to the array " "B(3)ed by the call; on error, NULL is returned." msgstr "" #. type: SH #: man-pages/man3/backtrace.3:137 #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:143 msgid "" "B(), B(), and B() are " "provided in glibc since version 2.1." msgstr "" #. type: SH #: man-pages/man3/backtrace.3:143 #, no-wrap msgid "CONFORMING TO" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:145 msgid "These functions are GNU extensions." msgstr "" #. type: SH #: man-pages/man3/backtrace.3:145 #, no-wrap msgid "NOTES" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:149 msgid "" "These functions make some assumptions about how a function's return address " "is stored on the stack. Note the following:" msgstr "" #. type: IP #: man-pages/man3/backtrace.3:149 man-pages/man3/backtrace.3:155 man-pages/man3/backtrace.3:157 #, no-wrap msgid "*" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:155 msgid "" "Omission of the frame pointers (as implied by any of B(1)'s nonzero " "optimization levels) may cause these assumptions to be violated." msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:157 msgid "Inlined functions do not have stack frames." msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:159 msgid "Tail-call optimization causes one stack frame to replace another." msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:167 msgid "" "The symbol names may be unavailable without the use of special linker " "options. For systems using the GNU linker, it is necessary to use the I<-" "rdynamic> linker option. Note that names of \"static\" functions are not " "exposed, and won't be available in the backtrace." msgstr "" #. type: SH #: man-pages/man3/backtrace.3:167 #, no-wrap msgid "EXAMPLE" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:174 msgid "" "The program below demonstrates the use of B() and " "B(). The following shell session shows what we might see " "when running the program:" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:188 #, no-wrap msgid "" "$B< cc -rdynamic prog.c -o prog>\n" "$B< ./prog 3>\n" "backtrace() returned 8 addresses\n" "\\&./prog(myfunc3+0x5c) [0x80487f0]\n" "\\&./prog [0x8048871]\n" "\\&./prog(myfunc+0x21) [0x8048894]\n" "\\&./prog(myfunc+0x1a) [0x804888d]\n" "\\&./prog(myfunc+0x1a) [0x804888d]\n" "\\&./prog(main+0x65) [0x80488fb]\n" "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n" "\\&./prog [0x8048711]\n" msgstr "" #. type: SS #: man-pages/man3/backtrace.3:190 #, no-wrap msgid "Program source" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:197 #, no-wrap msgid "" "#include Eexecinfo.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:205 #, no-wrap msgid "" "void\n" "myfunc3(void)\n" "{\n" " int j, nptrs;\n" "#define SIZE 100\n" " void *buffer[100];\n" " char **strings;\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:208 #, no-wrap msgid "" " nptrs = backtrace(buffer, SIZE);\n" " printf(\"backtrace() returned %d addresses\\en\", nptrs);\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:211 #, no-wrap msgid "" " /* The call backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO)\n" " would produce similar output to the following: */\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:217 #, no-wrap msgid "" " strings = backtrace_symbols(buffer, nptrs);\n" " if (strings == NULL) {\n" " perror(\"backtrace_symbols\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:220 #, no-wrap msgid "" " for (j = 0; j E nptrs; j++)\n" " printf(\"%s\\en\", strings[j]);\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:223 #, no-wrap msgid " free(strings);\n" "}\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:229 #, no-wrap msgid "" "static void /* \"static\" means don\\(aqt export the symbol... */\n" "myfunc2(void)\n" "{\n" " myfunc3();\n" "}\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:238 #, no-wrap msgid "" "void\n" "myfunc(int ncalls)\n" "{\n" " if (ncalls E 1)\n" " myfunc(ncalls - 1);\n" " else\n" " myfunc2();\n" "}\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:246 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " if (argc != 2) {\n" " fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:250 #, no-wrap msgid " myfunc(atoi(argv[1]));\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: SH #: man-pages/man3/backtrace.3:251 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:256 msgid "B(1), B(1), B(3), B(3)" msgstr "" #. type: SH #: man-pages/man3/backtrace.3:256 #, no-wrap msgid "COLOPHON" msgstr "" #. type: Plain text #: man-pages/man3/backtrace.3:264 msgid "" "This page is part of release 3.70 of the Linux I project. A " "description of the project, information about reporting bugs, and the latest " "version of this page, can be found at \\%http://www.kernel.org/doc/man-pages/" "." msgstr ""