msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2014-06-03 01:29+0900\n"
+"POT-Creation-Date: 2015-02-04 23:32+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#. type: TH
-#: build/C/man3/dl_iterate_phdr.3:25 build/C/man3/end.3:26 build/C/man8/ld.so.8:5 build/C/man8/ldconfig.8:22 build/C/man8/sln.8:25
+#: build/C/man3/dl_iterate_phdr.3:25 build/C/man3/end.3:26 build/C/man8/ld.so.8:5 build/C/man8/ldconfig.8:22 build/C/man1/memusage.1:24 build/C/man1/memusagestat.1:23 build/C/man1/mtrace.1:23 build/C/man1/pldd.1:25 build/C/man8/sln.8:25
#, no-wrap
msgid "GNU"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dl_iterate_phdr.3:26 build/C/man3/dlopen.3:36 build/C/man5/elf.5:36 build/C/man3/end.3:27 build/C/man8/ld.so.8:6 build/C/man8/ldconfig.8:23 build/C/man1/ldd.1:15 build/C/man7/rtld-audit.7:29 build/C/man8/sln.8:26
+#: build/C/man3/dl_iterate_phdr.3:26 build/C/man3/dlopen.3:36 build/C/man5/elf.5:36 build/C/man3/end.3:27 build/C/man8/ld.so.8:6 build/C/man8/ldconfig.8:23 build/C/man1/ldd.1:15 build/C/man1/memusage.1:25 build/C/man1/memusagestat.1:24 build/C/man1/mtrace.1:24 build/C/man1/pldd.1:26 build/C/man7/rtld-audit.7:29 build/C/man8/sln.8:26 build/C/man1/sprof.1:26
#, no-wrap
msgid "NAME"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dl_iterate_phdr.3:28 build/C/man3/dlopen.3:39 build/C/man5/elf.5:38 build/C/man3/end.3:29 build/C/man8/ld.so.8:8 build/C/man8/ldconfig.8:25 build/C/man1/ldd.1:17 build/C/man7/rtld-audit.7:31 build/C/man8/sln.8:28
+#: build/C/man3/dl_iterate_phdr.3:28 build/C/man3/dlopen.3:39 build/C/man5/elf.5:38 build/C/man3/end.3:29 build/C/man8/ld.so.8:8 build/C/man8/ldconfig.8:25 build/C/man1/ldd.1:17 build/C/man1/memusage.1:27 build/C/man1/memusagestat.1:26 build/C/man1/mtrace.1:26 build/C/man1/pldd.1:28 build/C/man7/rtld-audit.7:31 build/C/man8/sln.8:28 build/C/man1/sprof.1:28
#, no-wrap
msgid "SYNOPSIS"
msgstr ""
msgid ""
"B<int dl_iterate_phdr(>\n"
"B< int (*>I<callback>B<) (struct dl_phdr_info *>I<info>B<,>\n"
-"B< size_t >I<size>B<, void *>I<data>B<,>\n"
-"B< void *>I<data>B<;>\n"
+"B< size_t >I<size>B<, void *>I<data>B<),>\n"
+"B< void *>I<data>B<);>\n"
msgstr ""
#. type: SH
-#: build/C/man3/dl_iterate_phdr.3:38 build/C/man3/dlopen.3:51 build/C/man5/elf.5:43 build/C/man3/end.3:35 build/C/man8/ld.so.8:18 build/C/man8/ldconfig.8:54 build/C/man1/ldd.1:19 build/C/man7/rtld-audit.7:35 build/C/man8/sln.8:32
+#: build/C/man3/dl_iterate_phdr.3:38 build/C/man3/dlopen.3:51 build/C/man5/elf.5:43 build/C/man3/end.3:35 build/C/man8/ld.so.8:18 build/C/man8/ldconfig.8:54 build/C/man1/ldd.1:19 build/C/man1/memusage.1:29 build/C/man1/memusagestat.1:28 build/C/man1/mtrace.1:28 build/C/man1/pldd.1:33 build/C/man7/rtld-audit.7:35 build/C/man8/sln.8:32 build/C/man1/sprof.1:33
#, no-wrap
msgid "DESCRIPTION"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dl_iterate_phdr.3:154
+#: build/C/man3/dl_iterate_phdr.3:154 build/C/man1/pldd.1:50
#, no-wrap
msgid "VERSIONS"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381 build/C/man3/end.3:50 build/C/man7/rtld-audit.7:461
+#: build/C/man3/dl_iterate_phdr.3:157 build/C/man3/dlopen.3:381 build/C/man3/end.3:50 build/C/man1/pldd.1:53 build/C/man7/rtld-audit.7:461 build/C/man1/sprof.1:75
#, no-wrap
msgid "CONFORMING TO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446 build/C/man3/end.3:76 build/C/man7/rtld-audit.7:502
+#: build/C/man3/dl_iterate_phdr.3:161 build/C/man3/dlopen.3:446 build/C/man3/end.3:76 build/C/man1/memusage.1:201 build/C/man1/memusagestat.1:81 build/C/man1/pldd.1:71 build/C/man7/rtld-audit.7:502 build/C/man1/sprof.1:79
#, no-wrap
msgid "EXAMPLE"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:521 build/C/man5/elf.5:1939 build/C/man3/end.3:108 build/C/man8/ld.so.8:486 build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:108 build/C/man7/rtld-audit.7:602 build/C/man8/sln.8:60
+#: build/C/man3/dl_iterate_phdr.3:195 build/C/man3/dlopen.3:521 build/C/man5/elf.5:1939 build/C/man3/end.3:108 build/C/man8/ld.so.8:489 build/C/man8/ldconfig.8:175 build/C/man1/ldd.1:108 build/C/man1/memusage.1:271 build/C/man1/memusagestat.1:88 build/C/man1/mtrace.1:61 build/C/man1/pldd.1:91 build/C/man7/rtld-audit.7:602 build/C/man8/sln.8:60 build/C/man1/sprof.1:299
#, no-wrap
msgid "SEE ALSO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:530 build/C/man5/elf.5:1963 build/C/man3/end.3:113 build/C/man8/ld.so.8:498 build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:111 build/C/man7/rtld-audit.7:607 build/C/man8/sln.8:64
+#: build/C/man3/dl_iterate_phdr.3:205 build/C/man3/dlopen.3:531 build/C/man5/elf.5:1963 build/C/man3/end.3:113 build/C/man8/ld.so.8:505 build/C/man8/ldconfig.8:178 build/C/man1/ldd.1:113 build/C/man1/memusage.1:275 build/C/man1/memusagestat.1:91 build/C/man1/mtrace.1:64 build/C/man1/pldd.1:96 build/C/man7/rtld-audit.7:607 build/C/man8/sln.8:64 build/C/man1/sprof.1:303
#, no-wrap
msgid "COLOPHON"
msgstr ""
#. type: Plain text
-#: build/C/man3/dl_iterate_phdr.3:213 build/C/man3/dlopen.3:538 build/C/man5/elf.5:1971 build/C/man3/end.3:121 build/C/man8/ld.so.8:506 build/C/man8/ldconfig.8:186 build/C/man1/ldd.1:119 build/C/man7/rtld-audit.7:615 build/C/man8/sln.8:72
+#: build/C/man3/dl_iterate_phdr.3:213 build/C/man3/dlopen.3:539 build/C/man5/elf.5:1971 build/C/man3/end.3:121 build/C/man8/ld.so.8:513 build/C/man8/ldconfig.8:186 build/C/man1/ldd.1:121 build/C/man1/memusage.1:283 build/C/man1/memusagestat.1:99 build/C/man1/mtrace.1:72 build/C/man1/pldd.1:104 build/C/man7/rtld-audit.7:615 build/C/man8/sln.8:72 build/C/man1/sprof.1:311
msgid ""
-"This page is part of release 3.67 of the Linux I<man-pages> project. A "
+"This page is part of release 3.79 of the Linux I<man-pages> 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 ""
#. type: TH
-#: build/C/man3/dlopen.3:35 build/C/man8/ld.so.8:5
+#: build/C/man3/dlopen.3:35 build/C/man1/ldd.1:14
#, no-wrap
-msgid "2014-01-08"
+msgid "2014-10-02"
msgstr ""
#. type: TH
-#: build/C/man3/dlopen.3:35 build/C/man5/elf.5:35 build/C/man7/rtld-audit.7:28
+#: build/C/man3/dlopen.3:35 build/C/man5/elf.5:35 build/C/man7/rtld-audit.7:28 build/C/man1/sprof.1:25
#, no-wrap
msgid "Linux"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1912 build/C/man3/end.3:53 build/C/man8/ld.so.8:480 build/C/man1/ldd.1:74 build/C/man7/rtld-audit.7:467
+#: build/C/man3/dlopen.3:388 build/C/man5/elf.5:1912 build/C/man3/end.3:53 build/C/man8/ld.so.8:483 build/C/man1/pldd.1:84 build/C/man7/rtld-audit.7:467
#, no-wrap
msgid "NOTES"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:91 build/C/man7/rtld-audit.7:492
+#: build/C/man3/dlopen.3:418 build/C/man1/ldd.1:91 build/C/man1/memusage.1:267 build/C/man1/memusagestat.1:84 build/C/man1/mtrace.1:58 build/C/man7/rtld-audit.7:492
#, no-wrap
msgid "BUGS"
msgstr ""
msgstr ""
#. type: Plain text
-#: build/C/man3/dlopen.3:528
+#: build/C/man3/dlopen.3:529
msgid ""
-"B<ld>(1), B<ldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), B<ld.so>(8), "
-"B<ldconfig>(8)"
+"B<ld>(1), B<ldd>(1), B<pldd>(1), B<dl_iterate_phdr>(3), B<rtld-audit>(7), "
+"B<ld.so>(8), B<ldconfig>(8)"
msgstr ""
#. type: Plain text
-#: build/C/man3/dlopen.3:530
+#: build/C/man3/dlopen.3:531
msgid "ld.so info pages, gcc info pages, ld info pages"
msgstr ""
msgstr ""
#. type: SS
-#: build/C/man3/end.3:88
+#: build/C/man3/end.3:88 build/C/man1/memusage.1:234
#, no-wrap
msgid "Program source"
msgstr ""
#. type: Plain text
-#: build/C/man3/end.3:93
+#: build/C/man3/end.3:93 build/C/man1/memusage.1:238
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
msgid "LD.SO"
msgstr ""
+#. type: TH
+#: build/C/man8/ld.so.8:5
+#, no-wrap
+msgid "2014-12-31"
+msgstr ""
+
#. type: Plain text
#: build/C/man8/ld.so.8:8
msgid "ld.so, ld-linux.so* - dynamic linker/loader"
"B<ld-linux.so*> handles ELF (I</lib/ld-linux.so.1> for libc5, "
"I</lib/ld-linux.so.2> for glibc2), which everybody has been using for years "
"now. Otherwise, both have the same behavior, and use the same support files "
-"and programs B<ldd>(1), B<ldconfig>(8) and I</etc/ld.so.conf>."
+"and programs B<ldd>(1), B<ldconfig>(8), and I</etc/ld.so.conf>."
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man8/ld.so.8:99
msgid ""
-"This expands to the directory containing the application executable. Thus, "
-"an application located in I<somedir/app> could be compiled with"
+"This expands to the directory containing the program or shared library. "
+"Thus, an application located in I<somedir/app> could be compiled with"
msgstr ""
#. type: Plain text
msgstr ""
#. type: SH
-#: build/C/man8/ld.so.8:141 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:51
+#: build/C/man8/ld.so.8:141 build/C/man8/ldconfig.8:100 build/C/man1/ldd.1:51 build/C/man1/memusage.1:135 build/C/man1/memusagestat.1:47 build/C/man1/mtrace.1:51 build/C/man1/pldd.1:40 build/C/man1/sprof.1:46
#, no-wrap
msgid "OPTIONS"
msgstr ""
#. type: TP
#: build/C/man8/ld.so.8:149
#, no-wrap
+msgid "B<--inhibit-cache>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man8/ld.so.8:152
+msgid "Do not use /etc/ld.so.cache."
+msgstr ""
+
+#. type: TP
+#: build/C/man8/ld.so.8:152
+#, no-wrap
msgid "B<--library-path PATH>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:154
+#: build/C/man8/ld.so.8:157
msgid ""
"Use PATH instead of B<LD_LIBRARY_PATH> environment variable setting (see "
"below)."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:154
+#: build/C/man8/ld.so.8:157
#, no-wrap
msgid "B<--inhibit-rpath LIST>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:160
+#: build/C/man8/ld.so.8:163
msgid ""
"Ignore RPATH and RUNPATH information in object names in LIST. This option "
"is ignored if B<ld.so> is set-user-ID or set-group-ID."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:160
+#: build/C/man8/ld.so.8:163
#, no-wrap
msgid "B<--audit LIST>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:163
+#: build/C/man8/ld.so.8:166
msgid "Use objects named in LIST as auditors."
msgstr ""
#. type: SH
-#: build/C/man8/ld.so.8:163
+#: build/C/man8/ld.so.8:166
#, no-wrap
msgid "HARDWARE CAPABILITIES"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:174
+#: build/C/man8/ld.so.8:177
msgid ""
"Some libraries are compiled using hardware-specific instructions which do "
"not exist on every CPU. Such libraries should be installed in directories "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:174
+#: build/C/man8/ld.so.8:177
#, no-wrap
msgid "B<Alpha>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:177
+#: build/C/man8/ld.so.8:180
msgid "ev4, ev5, ev56, ev6, ev67"
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:177
+#: build/C/man8/ld.so.8:180
#, no-wrap
msgid "B<MIPS>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:180
+#: build/C/man8/ld.so.8:183
msgid "loongson2e, loongson2f, octeon, octeon2"
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:180
+#: build/C/man8/ld.so.8:183
#, no-wrap
msgid "B<PowerPC>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:185
+#: build/C/man8/ld.so.8:188
msgid ""
"4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, "
"efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:185
+#: build/C/man8/ld.so.8:188
#, no-wrap
msgid "B<SPARC>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:188
+#: build/C/man8/ld.so.8:191
msgid "flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2"
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:188
+#: build/C/man8/ld.so.8:191
#, no-wrap
msgid "B<s390>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:192
+#: build/C/man8/ld.so.8:195
msgid ""
"dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, "
"z990, z9-109, z10, zarch"
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:192
+#: build/C/man8/ld.so.8:195
#, no-wrap
msgid "B<x86 (32-bit only)>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:196
+#: build/C/man8/ld.so.8:199
msgid ""
"acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, "
"mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm"
msgstr ""
#. type: SH
-#: build/C/man8/ld.so.8:196
+#: build/C/man8/ld.so.8:199
#, no-wrap
msgid "ENVIRONMENT"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:198
+#: build/C/man8/ld.so.8:201
msgid "Among the more important environment variables are the following:"
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:198
+#: build/C/man8/ld.so.8:201
#, no-wrap
msgid "B<LD_ASSUME_KERNEL>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:211
+#: build/C/man8/ld.so.8:214
msgid ""
"(glibc since 2.2.3) Each shared library can inform the dynamic linker of "
"the minimum kernel ABI version that it requires. (This requirement is "
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:220
+#: build/C/man8/ld.so.8:223
msgid ""
"B<LD_ASSUME_KERNEL> can be used to cause the dynamic linker to assume that "
"it is running on a system with a different kernel ABI version. For example, "
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:224
+#: build/C/man8/ld.so.8:227
#, no-wrap
msgid "$ B<LD_ASSUME_KERNEL=2.2.5 ./myprog>\n"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:241
+#: build/C/man8/ld.so.8:244
msgid ""
"On systems that provide multiple versions of a shared library (in different "
"directories in the search path) that have different minimum kernel ABI "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:241 build/C/man8/ld.so.8:322
+#: build/C/man8/ld.so.8:244 build/C/man8/ld.so.8:325
#, no-wrap
msgid "B<LD_BIND_NOT>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:246
+#: build/C/man8/ld.so.8:249
msgid ""
"(glibc since 2.2) Don't update the Global Offset Table (GOT) and Procedure "
"Linkage Table (PLT) when resolving a symbol."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:246
+#: build/C/man8/ld.so.8:249
#, no-wrap
msgid "B<LD_BIND_NOW>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:254
+#: build/C/man8/ld.so.8:257
msgid ""
"(libc5; glibc since 2.1.1) If set to a nonempty string, causes the dynamic "
"linker to resolve all symbols at program startup instead of deferring "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:254
+#: build/C/man8/ld.so.8:257
#, no-wrap
msgid "B<LD_LIBRARY_PATH>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:262
+#: build/C/man8/ld.so.8:265
msgid ""
"A colon-separated list of directories in which to search for ELF libraries "
"at execution-time. Similar to the B<PATH> environment variable. Ignored in "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:262
+#: build/C/man8/ld.so.8:265
#, no-wrap
msgid "B<LD_PRELOAD>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:273
+#: build/C/man8/ld.so.8:276
msgid ""
"A list of additional, user-specified, ELF shared libraries to be loaded "
"before all others. The items of the list can be separated by spaces or "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:273
+#: build/C/man8/ld.so.8:276
#, no-wrap
msgid "B<LD_TRACE_LOADED_OBJECTS>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:280
+#: build/C/man8/ld.so.8:283
msgid ""
"(ELF only) If set to a nonempty string, causes the program to list its "
"dynamic library dependencies, as if run by B<ldd>(1), instead of running "
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:283
+#: build/C/man8/ld.so.8:286
msgid ""
"Then there are lots of more or less obscure variables, many obsolete or only "
"for internal use."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:283
+#: build/C/man8/ld.so.8:286
#, no-wrap
msgid "B<LD_AOUT_LIBRARY_PATH>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:291
+#: build/C/man8/ld.so.8:294
msgid ""
"(libc5) Version of B<LD_LIBRARY_PATH> for a.out binaries only. Old "
"versions of ld-linux.so.1 also supported B<LD_ELF_LIBRARY_PATH>."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:291
+#: build/C/man8/ld.so.8:294
#, no-wrap
msgid "B<LD_AOUT_PRELOAD>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:299
+#: build/C/man8/ld.so.8:302
msgid ""
"(libc5) Version of B<LD_PRELOAD> for a.out binaries only. Old versions of "
"ld-linux.so.1 also supported B<LD_ELF_PRELOAD>."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:299
+#: build/C/man8/ld.so.8:302
#, no-wrap
msgid "B<LD_AUDIT>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:309
+#: build/C/man8/ld.so.8:312
msgid ""
"(glibc since 2.4) A colon-separated list of user-specified, ELF shared "
"objects to be loaded before all others in a separate linker namespace (i.e., "
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:322
+#: build/C/man8/ld.so.8:325
msgid ""
"The dynamic linker will notify the audit libraries at so-called auditing "
"checkpoints\\(emfor example, loading a new library, resolving a symbol, or "
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:327
+#: build/C/man8/ld.so.8:330
msgid ""
"(glibc since 2.1.95) Do not update the GOT (global offset table) and PLT "
"(procedure linkage table) after resolving a symbol."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:327
+#: build/C/man8/ld.so.8:330
#, no-wrap
msgid "B<LD_DEBUG>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:340
+#: build/C/man8/ld.so.8:343
msgid ""
"(glibc since 2.1) Output verbose debugging information about the dynamic "
"linker. If set to B<all> prints all debugging information it has, if set to "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:340
+#: build/C/man8/ld.so.8:343
#, no-wrap
msgid "B<LD_DEBUG_OUTPUT>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:349
+#: build/C/man8/ld.so.8:352
msgid ""
"(glibc since 2.1) File in which B<LD_DEBUG> output should be written. The "
"default is standard error. B<LD_DEBUG_OUTPUT> is ignored for "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:349
+#: build/C/man8/ld.so.8:352
#, no-wrap
msgid "B<LD_DYNAMIC_WEAK>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:356
+#: build/C/man8/ld.so.8:359
msgid ""
"(glibc since 2.1.91) Allow weak symbols to be overridden (reverting to old "
"glibc behavior). For security reasons, since glibc 2.3.4, "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:356
+#: build/C/man8/ld.so.8:359
#, no-wrap
msgid "B<LD_HWCAP_MASK>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:360
+#: build/C/man8/ld.so.8:363
msgid "(glibc since 2.1) Mask for hardware capabilities."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:360
+#: build/C/man8/ld.so.8:363
#, no-wrap
msgid "B<LD_KEEPDIR>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:365
+#: build/C/man8/ld.so.8:368
msgid ""
"(a.out only)(libc5) Don't ignore the directory in the names of a.out "
"libraries to be loaded. Use of this option is strongly discouraged."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:365
+#: build/C/man8/ld.so.8:368
#, no-wrap
msgid "B<LD_NOWARN>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:370
+#: build/C/man8/ld.so.8:373
msgid ""
"(a.out only)(libc5) Suppress warnings about a.out libraries with "
"incompatible minor version numbers."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:370
+#: build/C/man8/ld.so.8:373
#, no-wrap
msgid "B<LD_ORIGIN_PATH>"
msgstr ""
#. Only used if $ORIGIN can't be determined by normal means
#. (from the origin path saved at load time, or from /proc/self/exe)?
#. type: Plain text
-#: build/C/man8/ld.so.8:379
+#: build/C/man8/ld.so.8:382
msgid ""
"(glibc since 2.1) Path where the binary is found (for non-set-user-ID "
"programs). For security reasons, since glibc 2.4, B<LD_ORIGIN_PATH> is "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:379
+#: build/C/man8/ld.so.8:382
#, no-wrap
msgid "B<LD_POINTER_GUARD>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:391
+#: build/C/man8/ld.so.8:394
msgid ""
"(glibc since 2.4) Set to 0 to disable pointer guarding. Any other value "
"enables pointer guarding, which is also the default. Pointer guarding is a "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:391
+#: build/C/man8/ld.so.8:394
#, no-wrap
msgid "B<LD_PROFILE>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:398
+#: build/C/man8/ld.so.8:401
msgid ""
-"(glibc since 2.1) Shared object to be profiled, specified either as a "
-"pathname or a soname. Profiling output is written to the file whose name "
-"is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
+"(glibc since 2.1) The name of a (single) shared object to be profiled, "
+"specified either as a pathname or a soname. Profiling output is appended to "
+"the file whose name is: \"I<$LD_PROFILE_OUTPUT>/I<$LD_PROFILE>.profile\"."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:398
+#: build/C/man8/ld.so.8:401
#, no-wrap
msgid "B<LD_PROFILE_OUTPUT>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:411
+#: build/C/man8/ld.so.8:414
msgid ""
"(glibc since 2.1) Directory where B<LD_PROFILE> output should be written. "
"If this variable is not defined, or is defined as an empty string, then the "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:411
+#: build/C/man8/ld.so.8:414
#, no-wrap
msgid "B<LD_SHOW_AUXV>"
msgstr ""
#. FIXME
#. Document LD_TRACE_PRELINKING (e.g.: LD_TRACE_PRELINKING=libx1.so ./prog)
-#. Since glibc 2.3
-#. Also enables DL_DEBUG_PRELINK
+#. Available since glibc 2.3
+#. Also enables DL_DEBUG_PRELINK
#. type: Plain text
-#: build/C/man8/ld.so.8:422
+#: build/C/man8/ld.so.8:425
msgid ""
"(glibc since 2.1) Show auxiliary array passed up from the kernel. For "
"security reasons, since glibc 2.3.5, B<LD_SHOW_AUXV> is ignored for "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:422
+#: build/C/man8/ld.so.8:425
#, no-wrap
msgid "B<LD_USE_LOAD_BIAS>"
msgstr ""
#. Subject: [PATCH] Support LD_USE_LOAD_BIAS
#. Jakub Jelinek
#. type: Plain text
-#: build/C/man8/ld.so.8:441
+#: build/C/man8/ld.so.8:444
msgid ""
"By default (i.e., if this variable is not defined) executables and "
"prelinked shared objects will honor base addresses of their dependent "
"libraries and (nonprelinked) position-independent executables (PIEs) and "
"other shared objects will not honor them. If B<LD_USE_LOAD_BIAS> is defined "
-"wit the value, both executables and PIEs will honor the base addresses. If "
-"B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor "
+"with the value 1, both executables and PIEs will honor the base addresses. "
+"If B<LD_USE_LOAD_BIAS> is defined with the value 0, neither executables nor "
"PIEs will honor the base addresses. This variable is ignored by set-user-ID "
"and set-group-ID programs."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:441
+#: build/C/man8/ld.so.8:444
#, no-wrap
msgid "B<LD_VERBOSE>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:449
+#: build/C/man8/ld.so.8:452
msgid ""
"(glibc since 2.1) If set to a nonempty string, output symbol versioning "
"information about the program if the B<LD_TRACE_LOADED_OBJECTS> environment "
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:449
+#: build/C/man8/ld.so.8:452
#, no-wrap
msgid "B<LD_WARN>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:453
+#: build/C/man8/ld.so.8:456
msgid ""
"(ELF only)(glibc since 2.1.3) If set to a nonempty string, warn about "
"unresolved symbols."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:453
+#: build/C/man8/ld.so.8:456
#, no-wrap
msgid "B<LDD_ARGV0>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:460
+#: build/C/man8/ld.so.8:463
msgid "(libc5) I<argv>[0] to be used by B<ldd>(1) when none is present."
msgstr ""
#. type: SH
-#: build/C/man8/ld.so.8:460 build/C/man8/ldconfig.8:156
+#: build/C/man8/ld.so.8:463 build/C/man8/ldconfig.8:156
#, no-wrap
msgid "FILES"
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:462 build/C/man8/ldconfig.8:158
+#: build/C/man8/ld.so.8:465 build/C/man8/ldconfig.8:158
#, no-wrap
msgid "I</lib/ld.so>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:465
+#: build/C/man8/ld.so.8:468
msgid "a.out dynamic linker/loader"
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:465
+#: build/C/man8/ld.so.8:468
#, no-wrap
msgid "I</lib/ld-linux.so.>{I<1>,I<2>}"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:468
+#: build/C/man8/ld.so.8:471
msgid "ELF dynamic linker/loader"
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:468 build/C/man8/ldconfig.8:165
+#: build/C/man8/ld.so.8:471 build/C/man8/ldconfig.8:165
#, no-wrap
msgid "I</etc/ld.so.cache>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:472
+#: build/C/man8/ld.so.8:475
msgid ""
"File containing a compiled list of directories in which to search for "
"libraries and an ordered list of candidate libraries."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:472
+#: build/C/man8/ld.so.8:475
#, no-wrap
msgid "I</etc/ld.so.preload>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:476
+#: build/C/man8/ld.so.8:479
msgid ""
"File containing a whitespace-separated list of ELF shared libraries to be "
"loaded before the program."
msgstr ""
#. type: TP
-#: build/C/man8/ld.so.8:476
+#: build/C/man8/ld.so.8:479
#, no-wrap
msgid "B<lib*.so*>"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:479
+#: build/C/man8/ld.so.8:482
msgid "shared libraries"
msgstr ""
#. type: Plain text
-#: build/C/man8/ld.so.8:486
+#: build/C/man8/ld.so.8:489
msgid ""
"The B<ld.so> functionality is available for executables compiled using libc "
"version 4.4.3 or greater. ELF functionality is available since Linux 1.1.52 "
#
#. In the above, (libc5) stands for David Engel's ld.so/ld-linux.so.
#. type: Plain text
-#: build/C/man8/ld.so.8:498
-msgid "B<ldd>(1), B<getauxval>(3), B<rtld-audit>(7), B<ldconfig>(8), B<sln>(8)"
+#: build/C/man8/ld.so.8:505
+msgid ""
+"B<ld>(1), B<ldd>(1), B<pldd>(1), B<sprof>(1), B<dlopen>(3), B<getauxval>(3), "
+"B<rtld-audit>(7), B<ldconfig>(8), B<sln>(8)"
msgstr ""
#. type: TH
msgid "LDD"
msgstr ""
-#. type: TH
-#: build/C/man1/ldd.1:14
-#, no-wrap
-msgid "2012-07-16"
-msgstr ""
-
#. type: Plain text
#: build/C/man1/ldd.1:17
msgid "ldd - print shared library dependencies"
#. type: Plain text
#: build/C/man1/ldd.1:19
-msgid "B<ldd> [OPTION]... FILE..."
+msgid "B<ldd> [I<option>]... I<file>..."
msgstr ""
#. type: Plain text
msgstr ""
#. type: TP
-#: build/C/man1/ldd.1:52
+#: build/C/man1/ldd.1:52 build/C/man1/mtrace.1:55
#, no-wrap
msgid "B<--version>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man1/ldd.1:71
+#: build/C/man1/ldd.1:71 build/C/man1/mtrace.1:52
#, no-wrap
msgid "B<--help>"
msgstr ""
-#. type: Plain text
-#: build/C/man1/ldd.1:74
-msgid "Usage information."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man1/ldd.1:85
-msgid ""
-"The standard version of B<ldd> comes with glibc2. Libc5 came with an older "
-"version, still present on some systems. The long options are not supported "
-"by the libc5 version. On the other hand, the glibc2 version does not "
-"support B<-V> and only has the equivalent B<--version>."
-msgstr ""
-
+#. .SH NOTES
+#. The standard version of
+#. .B ldd
+#. comes with glibc2.
+#. Libc5 came with an older version, still present
+#. on some systems.
+#. The long options are not supported by the libc5 version.
+#. On the other hand, the glibc2 version does not support
+#. .B \-V
+#. and only has the equivalent
+#. .BR \-\-version .
+#. .LP
+#. The libc5 version of this program will use the name of a library given
+#. on the command line as-is when it contains a \(aq/\(aq; otherwise it
+#. searches for the library in the standard locations.
+#. To run it
+#. on a shared library in the current directory, prefix the name with "./".
#. type: Plain text
#: build/C/man1/ldd.1:91
-msgid ""
-"The libc5 version of this program will use the name of a library given on "
-"the command line as-is when it contains a \\(aq/\\(aq; otherwise it searches "
-"for the library in the standard locations. To run it on a shared library in "
-"the current directory, prefix the name with \"./\"."
+msgid "Usage information."
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man1/ldd.1:111
-msgid "B<ld.so>(8), B<ldconfig>(8)"
+#: build/C/man1/ldd.1:113
+msgid "B<sprof>(1), B<pldd>(1), B<ld.so>(8), B<ldconfig>(8)"
msgstr ""
#. type: TH
-#: build/C/man7/rtld-audit.7:28
+#: build/C/man1/memusage.1:24
#, no-wrap
-msgid "RTLD-AUDIT"
+msgid "MEMUSAGE"
msgstr ""
#. type: TH
-#: build/C/man7/rtld-audit.7:28
+#: build/C/man1/memusage.1:24 build/C/man1/memusagestat.1:23
#, no-wrap
-msgid "2012-07-07"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:31
-msgid "rtld-audit - auditing API for the dynamic linker"
+msgid "2014-09-06"
msgstr ""
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:33
-msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
+#. type: TH
+#: build/C/man1/memusage.1:24 build/C/man1/mtrace.1:23
+#, no-wrap
+msgid "Linux user manual"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:35
-msgid "B<#include E<lt>link.hE<gt>>"
+#: build/C/man1/memusage.1:27
+msgid "memusage - profile memory usage of a program"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:43
-msgid ""
-"The GNU dynamic linker (run-time linker) provides an auditing API that "
-"allows an application to be notified when various dynamic linking events "
-"occur. This API is very similar to the auditing interface provided by the "
-"Solaris run-time linker. The necessary constants and prototypes are defined "
-"by including I<E<lt>link.hE<gt>>."
+#: build/C/man1/memusage.1:29
+msgid "B<memusage> [I<option>]... I<program> [I<programoption>]..."
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:50
+#: build/C/man1/memusage.1:53
msgid ""
-"To use this interface, the programmer creates a shared library that "
-"implements a standard set of function names. Not all of the functions need "
-"to be implemented: in most cases, if the programmer is not interested in a "
-"particular class of auditing event, then no implementation needs to be "
-"provided for the corresponding auditing function."
+"B<memusage> is a bash script which profiles memory usage of the program, "
+"I<program>. It preloads the B<libmemusage.so> library into the caller's "
+"environment (via the B<LD_PRELOAD> environment variable; see B<ld.so>(8)). "
+"The B<libmemusage.so> library traces memory allocation by intercepting calls "
+"to B<malloc>(3), B<calloc>(3), B<free>(3), and B<realloc>(3); optionally, "
+"calls to B<mmap>(2), B<mremap>(2), and B<munmap>(2) can also be "
+"intercepted."
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:58
+#: build/C/man1/memusage.1:62
msgid ""
-"To employ the auditing interface, the environment variable B<LD_AUDIT> must "
-"be defined to contain a colon-separated list of shared libraries, each of "
-"which can implement (parts of) the auditing API. When an auditable event "
-"occurs, the corresponding function is invoked in each library, in the order "
-"that the libraries are listed."
+"B<memusage> can output the collected data in textual form, or it can use "
+"B<memusagestat>(1) (see the B<-p> option, below) to create a PNG file "
+"containing graphical representation of the collected data."
msgstr ""
#. type: SS
-#: build/C/man7/rtld-audit.7:58
+#: build/C/man1/memusage.1:62
#, no-wrap
-msgid "la_version()"
+msgid "Memory usage summary"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:62
+#: build/C/man1/memusage.1:66
+msgid ""
+"The \"Memory usage summary\" line output by B<memusage> contains three "
+"fields:"
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusage.1:67
#, no-wrap
-msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
+msgid "B<heap total>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:74
+#: build/C/man1/memusage.1:84
msgid ""
-"This is the only function that I<must> be defined by an auditing library: it "
-"performs the initial handshake between the dynamic linker and the auditing "
-"library. When invoking this function, the dynamic linker passes, in "
-"I<version>, the highest version of the auditing interface that the linker "
-"supports. If necessary, the auditing library can check that this version is "
-"sufficient for its requirements."
+"Sum of I<size> arguments of all B<malloc>(3) calls, products of arguments "
+"(I<nmemb>*I<size>) of all B<calloc>(3) calls, and sum of I<length> "
+"arguments of all B<mmap>(2) calls. In the case of B<realloc>(3) and "
+"B<mremap>(2), if the new size of an allocation is larger than the previous "
+"size, the sum of all such differences (new size minus old size) is added."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusage.1:84
+#, no-wrap
+msgid "B<heap peak>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:83
+#: build/C/man1/memusage.1:98
msgid ""
-"As its function result, this function should return the version of the "
-"auditing interface that this auditing library expects to use (returning "
-"I<version> is acceptable). If the returned value is 0, or a version that is "
-"greater than that supported by the dynamic linker, then the audit library is "
-"ignored."
+"Maximum of all I<size> arguments of B<malloc>(3), all products of "
+"I<nmemb>*I<size> of B<calloc>(3), all I<size> arguments of B<realloc>(3), "
+"I<length> arguments of B<mmap>(2), and I<new_size> arguments of "
+"B<mremap>(2)."
msgstr ""
-#. type: SS
-#: build/C/man7/rtld-audit.7:83
+#. type: TP
+#: build/C/man1/memusage.1:98
#, no-wrap
-msgid "la_objsearch()"
+msgid "B<stack peak>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:88
-#, no-wrap
+#: build/C/man1/memusage.1:105
msgid ""
-"B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
-"B< unsigned int >I<flag>B<);>\n"
+"Before the first call to any monitored function, the stack pointer address "
+"(base stack pointer) is saved. After each function call, the actual stack "
+"pointer address is read and the difference from the base stack pointer "
+"computed. The maximum of these differences is then the stack peak."
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:99
+#: build/C/man1/memusage.1:122
msgid ""
-"The dynamic linker invokes this function to inform the auditing library that "
-"it is about to search for a shared object. The I<name> argument is the "
-"filename or pathname that is to be searched for. I<cookie> identifies the "
-"shared object that initiated the search. I<flag> is set to one of the "
-"following values:"
+"Immediately following this summary line, a table shows the number calls, "
+"total memory allocated or deallocated, and number of failed calls for each "
+"intercepted function. For B<realloc>(3) and B<mremap>(2), the additional "
+"field \"nomove\" shows reallocations that changed the address of a block, "
+"and the additional \"dec\" field shows reallocations that decreased the size "
+"of the block. For B<realloc>(3), the additional field \"free\" shows "
+"reallocations that caused a block to be freed (i.e., the reallocated size "
+"was 0)."
msgstr ""
-#. type: TP
-#: build/C/man7/rtld-audit.7:99
+#. type: Plain text
+#: build/C/man1/memusage.1:132
+msgid ""
+"The \"realloc/total memory\" of the table output by B<memusage> does not "
+"reflect cases where B<realloc>(3) is used to reallocate a block of memory "
+"to have a smaller size than previously. This can cause sum of all \"total "
+"memory\" cells (excluding \"free\") to be larger than the \"free/total "
+"memory\" cell."
+msgstr ""
+
+#. type: SS
+#: build/C/man1/memusage.1:132
#, no-wrap
-msgid "B<LA_SER_ORIG>"
+msgid "Histogram for block sizes"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:108
+#: build/C/man1/memusage.1:135
msgid ""
-"This is the original name that is being searched for. Typically, this name "
-"comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given "
-"to B<dlopen>(3)."
+"The \"Histogram for block sizes\" provides a breakdown of memory allocations "
+"into various bucket sizes."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:108
+#: build/C/man1/memusage.1:136
#, no-wrap
-msgid "B<LA_SER_LIBPATH>"
+msgid "B<-n\\ >I<name>,\\ B<--progname=>I<name>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:113
-msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
+#: build/C/man1/memusage.1:139
+msgid "Name of the program file to profile."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:113
+#: build/C/man1/memusage.1:139
#, no-wrap
-msgid "B<LA_SER_RUNPATH>"
+msgid "B<-p\\ >I<file>,\\ B<--png=>I<file>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:121
-msgid ""
-"I<name> was created using a directory specified in an ELF B<DT_RPATH> or "
-"B<DT_RUNPATH> list."
+#: build/C/man1/memusage.1:143
+msgid "Generate PNG graphic and store it in I<file>."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:121
+#: build/C/man1/memusage.1:143
#, no-wrap
-msgid "B<LA_SER_CONFIG>"
+msgid "B<-d\\ >I<file>,\\ B<--data=>I<file>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:128
-msgid "I<name> was found via the B<ldconfig>(8) cache (I</etc/ld.so.cache>)."
+#: build/C/man1/memusage.1:147
+msgid "Generate binary data file and store it in I<file>."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:128
+#: build/C/man1/memusage.1:147
#, no-wrap
-msgid "B<LA_SER_DEFAULT>"
+msgid "B<-u>,\\ B<--unbuffered>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:132
-msgid "I<name> was found via a search of one of the default directories."
+#: build/C/man1/memusage.1:150
+msgid "Do not buffer output."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:132
+#: build/C/man1/memusage.1:150
#, no-wrap
-msgid "B<LA_SER_SECURE>"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:136
-msgid "I<name> is specific to a secure object (unused on Linux)."
+msgid "B<-b\\ >I<size>,\\ B<--buffer=>I<size>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:145
-msgid ""
-"As its function result, B<la_objsearch>() returns the pathname that the "
-"dynamic linker should use for further processing. If NULL is returned, then "
-"this pathname is ignored for further processing. If this audit library "
-"simply intends to monitor search paths, then I<name> should be returned."
+#: build/C/man1/memusage.1:155
+msgid "Collect I<size> entries before writing them out."
msgstr ""
-#. type: SS
-#: build/C/man7/rtld-audit.7:145
+#. type: TP
+#: build/C/man1/memusage.1:155
#, no-wrap
-msgid "la_activity()"
+msgid "B<--no-timer>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:149
+#: build/C/man1/memusage.1:160
+msgid "Disable timer-based (B<SIGPROF>) sampling of stack pointer value."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusage.1:160
#, no-wrap
-msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
+msgid "B<-m>,\\ B<--mmap>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:158
-msgid ""
-"The dynamic linker calls this function to inform the auditing library that "
-"link-map activity is occurring. I<cookie> identifies the object at the head "
-"of the link map. When the dynamic linker invokes this function, I<flag> is "
-"set to one of the following values:"
+#: build/C/man1/memusage.1:167
+msgid "Also trace B<mmap>(2), B<mremap>(2), and B<mmap>(2)."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:158
+#: build/C/man1/memusage.1:167 build/C/man1/memusagestat.1:72
#, no-wrap
-msgid "B<LA_ACT_ADD>"
+msgid "B<-?>,\\ B<--help>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:161
-msgid "New objects are being added to the link map."
+#: build/C/man1/memusage.1:170 build/C/man1/mtrace.1:55
+msgid "Print help and exit."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:161
+#: build/C/man1/memusage.1:170 build/C/man1/memusagestat.1:75 build/C/man1/pldd.1:44 build/C/man1/sprof.1:69
#, no-wrap
-msgid "B<LA_ACT_DELETE>"
+msgid "B<--usage>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:164
-msgid "Objects are being removed from the link map."
+#: build/C/man1/memusage.1:173 build/C/man1/memusagestat.1:78
+msgid "Print a short usage message and exit."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:164
+#: build/C/man1/memusage.1:173 build/C/man1/memusagestat.1:78
#, no-wrap
-msgid "B<LA_ACT_CONSISTENT>"
+msgid "B<-V>,\\ B<--version>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:167
-msgid "Link-map activity has been completed: the map is once again consistent."
+#: build/C/man1/memusage.1:176 build/C/man1/memusagestat.1:81 build/C/man1/mtrace.1:58
+msgid "Print version information and exit."
msgstr ""
-#. type: SS
-#: build/C/man7/rtld-audit.7:167
+#. type: TP
+#: build/C/man1/memusage.1:176
#, no-wrap
-msgid "la_objopen()"
+msgid "The following options apply only when generating graphical output:"
msgstr ""
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:172
+#. type: TP
+#: build/C/man1/memusage.1:178
#, no-wrap
-msgid ""
-"B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
-"B< uintptr_t *>I<cookie>B<);>\n"
+msgid "B<-t>,\\ B<--time-based>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:181
-msgid ""
-"The dynamic linker calls this function when a new shared object is loaded. "
-"The I<map> argument is a pointer to a link-map structure that describes the "
-"object. The I<lmid> field has one of the following values"
+#: build/C/man1/memusage.1:181 build/C/man1/memusagestat.1:59
+msgid "Use time (rather than number of function calls) as the scale for the X axis."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:181
+#: build/C/man1/memusage.1:181 build/C/man1/memusagestat.1:59
#, no-wrap
-msgid "B<LM_ID_BASE>"
+msgid "B<-T>,\\ B<--total>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:184
-msgid "Link map is part of the initial namespace."
+#: build/C/man1/memusage.1:184
+msgid "Also draw a graph of total memory use."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:184
+#: build/C/man1/memusage.1:184
#, no-wrap
-msgid "B<LM_ID_NEWLM>"
+msgid "B<--title=>I<name>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:188
-msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
+#: build/C/man1/memusage.1:189
+msgid "Use I<name> as the title of the graph."
msgstr ""
-#. type: Plain text
-#: build/C/man7/rtld-audit.7:196
-msgid ""
-"I<cookie> is a pointer to an identifier for this object. The identifier is "
-"provided to later calls to functions in the auditing library in order to "
-"identify this object. This identifier is initialized to point to object's "
-"link map, but the audit library can change the identifier to some other "
-"value that it may prefer to use to identify the object."
+#. type: TP
+#: build/C/man1/memusage.1:189 build/C/man1/memusagestat.1:62
+#, no-wrap
+msgid "B<-x\\ >I<size>,\\ B<--x-size=>I<size>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:203
-msgid ""
-"As its return value, B<la_objopen>() returns a bit mask created by ORing "
-"zero or more of the following constants, which allow the auditing library to "
-"select the objects to be monitored by B<la_symbind*>():"
+#: build/C/man1/memusage.1:194
+msgid "Make the graph I<size> pixels wide."
msgstr ""
#. type: TP
-#: build/C/man7/rtld-audit.7:203
+#: build/C/man1/memusage.1:194 build/C/man1/memusagestat.1:67
#, no-wrap
-msgid "B<LA_FLG_BINDTO>"
+msgid "B<-y\\ >I<size>,\\ B<--y-size=>I<size>"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:206
-msgid "Audit symbol bindings to this object."
+#: build/C/man1/memusage.1:199
+msgid "Make the graph I<size> pixels high."
msgstr ""
-#. type: TP
-#: build/C/man7/rtld-audit.7:206
+#. type: SH
+#: build/C/man1/memusage.1:199 build/C/man1/pldd.1:60
#, no-wrap
-msgid "B<LA_FLG_BINDFROM>"
+msgid "EXIT STATUS"
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:209
-msgid "Audit symbol bindings from this object."
+#: build/C/man1/memusage.1:201
+msgid "Exit status is equal to the exit status of profiled program."
msgstr ""
#. type: Plain text
-#: build/C/man7/rtld-audit.7:213
+#: build/C/man1/memusage.1:208
msgid ""
-"A return value of 0 from B<la_objopen>() indicates that no symbol bindings "
-"should be audited for this object."
+"Below is a simple program that reallocates a block of memory in cycles that "
+"rise to a peak before then cyclically reallocating the memory in smaller "
+"blocks that return to zero. After compiling the program and running the "
+"following commands, a graph of the memory usage of the program can be found "
+"in the file I<memusage.png>:"
msgstr ""
-#. type: SS
-#: build/C/man7/rtld-audit.7:213
+#. type: Plain text
+#: build/C/man1/memusage.1:232
#, no-wrap
-msgid "la_objclose()"
+msgid ""
+"$ B<memusage --data=memusage.dat ./a.out>\n"
+"\\&...\n"
+"Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224\n"
+" total calls total memory failed calls\n"
+" malloc| 1 400 0\n"
+"realloc| 40 44800 0 (nomove:40, dec:19, "
+"free:0)\n"
+" calloc| 0 0 0\n"
+" free| 1 440\n"
+"Histogram for block sizes:\n"
+" 192-207 1 2% ================\n"
+"\\&...\n"
+" 2192-2207 1 2% ================\n"
+" 2240-2255 2 4% =================================\n"
+" 2832-2847 2 4% =================================\n"
+" 3440-3455 2 4% =================================\n"
+" 4032-4047 2 4% =================================\n"
+" 4640-4655 2 4% =================================\n"
+" 5232-5247 2 4% =================================\n"
+" 5840-5855 2 4% =================================\n"
+" 6432-6447 1 2% ================\n"
+"$ B<memusagestat memusage.dat memusage.png>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:240
+#, no-wrap
+msgid "#define CYCLES 20\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:246
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" int i, j;\n"
+" int *p;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:249
+#, no-wrap
+msgid ""
+" printf(\"malloc: %zd\\en\", sizeof(int) * 100);\n"
+" p = malloc(sizeof(int) * 100);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:255
+#, no-wrap
+msgid ""
+" for (i = 0; i E<lt> CYCLES; i++) {\n"
+" if (i E<lt> CYCLES / 2)\n"
+" j = i;\n"
+" else\n"
+" j--;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:258
+#, no-wrap
+msgid ""
+" printf(\"realloc: %zd\\en\", sizeof(int) * (j * 50 + 110));\n"
+" p = realloc(p, sizeof(int) * (j * 50 + 100));\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:262
+#, no-wrap
+msgid ""
+" printf(\"realloc: %zd\\en\", sizeof(int) * ((j+1) * 150 + 110));\n"
+" p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110));\n"
+" }\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:266
+#, no-wrap
+msgid ""
+" free(p);\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:271 build/C/man1/memusagestat.1:88
+msgid "To report bugs, see E<.UR http://www.gnu.org/software/libc/bugs.html> E<.UE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusage.1:275
+msgid "B<memusagestat>(1), B<mtrace>(1) B<ld.so>(8)"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/memusagestat.1:23
+#, no-wrap
+msgid "MEMUSAGESTAT"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/memusagestat.1:23
+#, no-wrap
+msgid "Linux programmer's manual"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:26
+msgid "memusagestat - generate graphic from memory profiling data"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:28
+msgid "B<memusagestat> [I<option>]... I<datafile> [I<outfile>]"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:39
+msgid ""
+"B<memusagestat> creates a PNG file containing a graphical representation of "
+"the memory profiling data in the file I<datafile>; that file is generated "
+"via the I<-d> (or I<--data>) option of B<memusage>(1)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:47
+msgid ""
+"The red line in the graph shows the heap usage (allocated memory) and the "
+"green line shows the stack usage. The x-scale is either the number of "
+"memory-handling function calls or (if the I<-t> option is specified) time."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusagestat.1:48
+#, no-wrap
+msgid "B<-o\\ >I<file>,\\ B<--output=>I<file>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:51
+msgid "Name of the output file."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusagestat.1:51
+#, no-wrap
+msgid "B<-s\\ >I<string>,\\ B<--string=>I<string>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:56
+msgid "Use I<string> as the title inside the output graph."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/memusagestat.1:56
+#, no-wrap
+msgid "B<-t>,\\ B<--time>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:62
+msgid "Also draw a graph of total memory consumption."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:67
+msgid "Make the output graph I<size> pixels wide."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:72
+msgid "Make the output graph I<size> pixels high."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:75
+msgid "Print a help message and exit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:84
+msgid "See B<memusage>(1)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/memusagestat.1:91
+msgid "B<memusage>(1), B<mtrace>(1)"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/mtrace.1:23
+#, no-wrap
+msgid "MTRACE"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/mtrace.1:23
+#, no-wrap
+msgid "2014-09-01"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/mtrace.1:26
+msgid "mtrace - interpret the malloc trace log"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/mtrace.1:28
+msgid "B<mtrace> [I<option>]... [I<binary>] I<mtracedata>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/mtrace.1:44
+msgid ""
+"B<mtrace> is a Perl script used to interpret and provide human readable "
+"output of the trace log contained in the file I<mtracedata>, whose contents "
+"were produced by B<mtrace>(3). If I<binary> is provided, the output of "
+"B<mtrace> also contains the source file name with line number information "
+"for problem locations (assuming that I<binary> was compiled with debugging "
+"information)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/mtrace.1:51
+msgid ""
+"For more information about the B<mtrace>(3) function and B<mtrace> script "
+"usage, see B<mtrace>(3)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/mtrace.1:61
+msgid ""
+"For bug reporting instructions, please see: "
+"E<lt>http://www.gnu.org/software/libc/bugs.htmlE<gt>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/mtrace.1:64
+msgid "B<memusage>(1), B<mtrace>(3)"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/pldd.1:25
+#, no-wrap
+msgid "PLDD"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/pldd.1:25
+#, no-wrap
+msgid "2014-09-27"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/pldd.1:25 build/C/man1/sprof.1:25
+#, no-wrap
+msgid "Linux User Manual"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:28
+msgid "pldd - display dynamic shared objects linked into a process"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:32
+#, no-wrap
+msgid ""
+"B<pldd >I<PID>\n"
+"B<pldd> OPTION\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:40
+msgid ""
+"The B<pldd> command displays a list of the dynamic shared objects that are "
+"linked into the process with the specified process ID. The list includes "
+"the libraries that have been dynamically loaded using B<dlopen>(3)."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/pldd.1:41 build/C/man1/sprof.1:66
+#, no-wrap
+msgid "B<-?>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:44
+msgid "Display program help message."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:47
+msgid "Display a short usage message."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/pldd.1:47 build/C/man1/sprof.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:50
+msgid "Display the program version."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:53
+msgid "B<pldd> is available since glibc 2.15."
+msgstr ""
+
+#. There are man pages on Solaris and HP-UX.
+#. type: Plain text
+#: build/C/man1/pldd.1:60
+msgid ""
+"The B<pldd> command is not specified by POSIX.1. Some other systems have a "
+"similar command."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:71
+msgid ""
+"On success, B<pldd> exits with the status 0. If the specified process does "
+"not exist, the user does not have permission to access its dynamic shared "
+"object list, or no command-line arguments are supplied, B<pldd> exists with "
+"a status of 1. If given an invalid option, it exits with the status 64."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:83
+#, no-wrap
+msgid ""
+"$ B<echo $$> # Display PID of shell\n"
+"1143\n"
+"$ B<pldd $$> # Display DSOs linked into the shell\n"
+"1143:\t/usr/bin/bash\n"
+"linux-vdso.so.1\n"
+"/lib64/libtinfo.so.5\n"
+"/lib64/libdl.so.2\n"
+"/lib64/libc.so.6\n"
+"/lib64/ld-linux-x86-64.so.2\n"
+"/lib64/libnss_files.so.2\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:86
+msgid "The command"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:88
+#, no-wrap
+msgid " lsof -p PID\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:91
+msgid ""
+"also shows output that includes the dynamic shared objects that are linked "
+"into a process."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/pldd.1:96
+msgid "B<ldd>(1), B<lsof>(1), B<dlopen>(3), B<ld.so>(8)"
+msgstr ""
+
+#. type: TH
+#: build/C/man7/rtld-audit.7:28
+#, no-wrap
+msgid "RTLD-AUDIT"
+msgstr ""
+
+#. type: TH
+#: build/C/man7/rtld-audit.7:28
+#, no-wrap
+msgid "2012-07-07"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:31
+msgid "rtld-audit - auditing API for the dynamic linker"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:33
+msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:35
+msgid "B<#include E<lt>link.hE<gt>>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:43
+msgid ""
+"The GNU dynamic linker (run-time linker) provides an auditing API that "
+"allows an application to be notified when various dynamic linking events "
+"occur. This API is very similar to the auditing interface provided by the "
+"Solaris run-time linker. The necessary constants and prototypes are defined "
+"by including I<E<lt>link.hE<gt>>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:50
+msgid ""
+"To use this interface, the programmer creates a shared library that "
+"implements a standard set of function names. Not all of the functions need "
+"to be implemented: in most cases, if the programmer is not interested in a "
+"particular class of auditing event, then no implementation needs to be "
+"provided for the corresponding auditing function."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:58
+msgid ""
+"To employ the auditing interface, the environment variable B<LD_AUDIT> must "
+"be defined to contain a colon-separated list of shared libraries, each of "
+"which can implement (parts of) the auditing API. When an auditable event "
+"occurs, the corresponding function is invoked in each library, in the order "
+"that the libraries are listed."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:58
+#, no-wrap
+msgid "la_version()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:62
+#, no-wrap
+msgid "B<unsigned int la_version(unsigned int >I<version>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:74
+msgid ""
+"This is the only function that I<must> be defined by an auditing library: it "
+"performs the initial handshake between the dynamic linker and the auditing "
+"library. When invoking this function, the dynamic linker passes, in "
+"I<version>, the highest version of the auditing interface that the linker "
+"supports. If necessary, the auditing library can check that this version is "
+"sufficient for its requirements."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:83
+msgid ""
+"As its function result, this function should return the version of the "
+"auditing interface that this auditing library expects to use (returning "
+"I<version> is acceptable). If the returned value is 0, or a version that is "
+"greater than that supported by the dynamic linker, then the audit library is "
+"ignored."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:83
+#, no-wrap
+msgid "la_objsearch()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:88
+#, no-wrap
+msgid ""
+"B<char *la_objsearch(const char *>I<name>B<, uintptr_t *>I<cookie>B<,>\n"
+"B< unsigned int >I<flag>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:99
+msgid ""
+"The dynamic linker invokes this function to inform the auditing library that "
+"it is about to search for a shared object. The I<name> argument is the "
+"filename or pathname that is to be searched for. I<cookie> identifies the "
+"shared object that initiated the search. I<flag> is set to one of the "
+"following values:"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:99
+#, no-wrap
+msgid "B<LA_SER_ORIG>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:108
+msgid ""
+"This is the original name that is being searched for. Typically, this name "
+"comes from an ELF B<DT_NEEDED> entry, or is the I<filename> argument given "
+"to B<dlopen>(3)."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:108
+#, no-wrap
+msgid "B<LA_SER_LIBPATH>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:113
+msgid "I<name> was created using a directory specified in B<LD_LIBRARY_PATH>."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:113
+#, no-wrap
+msgid "B<LA_SER_RUNPATH>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:121
+msgid ""
+"I<name> was created using a directory specified in an ELF B<DT_RPATH> or "
+"B<DT_RUNPATH> list."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:121
+#, no-wrap
+msgid "B<LA_SER_CONFIG>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:128
+msgid "I<name> was found via the B<ldconfig>(8) cache (I</etc/ld.so.cache>)."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:128
+#, no-wrap
+msgid "B<LA_SER_DEFAULT>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:132
+msgid "I<name> was found via a search of one of the default directories."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:132
+#, no-wrap
+msgid "B<LA_SER_SECURE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:136
+msgid "I<name> is specific to a secure object (unused on Linux)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:145
+msgid ""
+"As its function result, B<la_objsearch>() returns the pathname that the "
+"dynamic linker should use for further processing. If NULL is returned, then "
+"this pathname is ignored for further processing. If this audit library "
+"simply intends to monitor search paths, then I<name> should be returned."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:145
+#, no-wrap
+msgid "la_activity()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:149
+#, no-wrap
+msgid "B<void la_activity( uintptr_t *>I<cookie>B<, unsigned int >I<flag>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:158
+msgid ""
+"The dynamic linker calls this function to inform the auditing library that "
+"link-map activity is occurring. I<cookie> identifies the object at the head "
+"of the link map. When the dynamic linker invokes this function, I<flag> is "
+"set to one of the following values:"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:158
+#, no-wrap
+msgid "B<LA_ACT_ADD>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:161
+msgid "New objects are being added to the link map."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:161
+#, no-wrap
+msgid "B<LA_ACT_DELETE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:164
+msgid "Objects are being removed from the link map."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:164
+#, no-wrap
+msgid "B<LA_ACT_CONSISTENT>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:167
+msgid "Link-map activity has been completed: the map is once again consistent."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:167
+#, no-wrap
+msgid "la_objopen()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:172
+#, no-wrap
+msgid ""
+"B<unsigned int la_objopen(struct link_map *>I<map>B<, Lmid_t >I<lmid>B<,>\n"
+"B< uintptr_t *>I<cookie>B<);>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:181
+msgid ""
+"The dynamic linker calls this function when a new shared object is loaded. "
+"The I<map> argument is a pointer to a link-map structure that describes the "
+"object. The I<lmid> field has one of the following values"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:181
+#, no-wrap
+msgid "B<LM_ID_BASE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:184
+msgid "Link map is part of the initial namespace."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:184
+#, no-wrap
+msgid "B<LM_ID_NEWLM>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:188
+msgid "Link map is part of a new namespace requested via B<dlmopen>(3)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:196
+msgid ""
+"I<cookie> is a pointer to an identifier for this object. The identifier is "
+"provided to later calls to functions in the auditing library in order to "
+"identify this object. This identifier is initialized to point to object's "
+"link map, but the audit library can change the identifier to some other "
+"value that it may prefer to use to identify the object."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:203
+msgid ""
+"As its return value, B<la_objopen>() returns a bit mask created by ORing "
+"zero or more of the following constants, which allow the auditing library to "
+"select the objects to be monitored by B<la_symbind*>():"
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:203
+#, no-wrap
+msgid "B<LA_FLG_BINDTO>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:206
+msgid "Audit symbol bindings to this object."
+msgstr ""
+
+#. type: TP
+#: build/C/man7/rtld-audit.7:206
+#, no-wrap
+msgid "B<LA_FLG_BINDFROM>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:209
+msgid "Audit symbol bindings from this object."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/rtld-audit.7:213
+msgid ""
+"A return value of 0 from B<la_objopen>() indicates that no symbol bindings "
+"should be audited for this object."
+msgstr ""
+
+#. type: SS
+#: build/C/man7/rtld-audit.7:213
+#, no-wrap
+msgid "la_objclose()"
msgstr ""
#. type: Plain text
"B<la_symbind*>()."
msgstr ""
-#. FIXME is the following correct?
+#. FIXME . Is the following correct?
#. type: Plain text
#: build/C/man7/rtld-audit.7:406
msgid ""
"function return value)."
msgstr ""
-#. FIXME Specifying multiple audit libraries doesn't work on GNU.
+#. FIXME . Specifying multiple audit libraries doesn't work on GNU.
#. My simple tests on Solaris work okay, but not on Linux -- mtk, Jan 2009
#. glibc bug filed: http://sourceware.org/bugzilla/show_bug.cgi?id=9733
#. Reportedly, this is fixed on 16 Mar 2009 (i.e., for glibc 2.10)
#: build/C/man8/sln.8:64
msgid "B<ln>(1), B<ldconfig>(8), B<ld.so>(8)"
msgstr ""
+
+#. type: TH
+#: build/C/man1/sprof.1:25
+#, no-wrap
+msgid "SPROF"
+msgstr ""
+
+#. type: TH
+#: build/C/man1/sprof.1:25
+#, no-wrap
+msgid "2014-06-24"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:28
+msgid "sprof - read and display shared object profiling data"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:32
+#, no-wrap
+msgid "B<sprof> [I<option>]... I<shared-object-path> [I<profile-data-path>]\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:46
+msgid ""
+"The B<sprof> command displays a profiling summary for the shared object "
+"specified as its first command-line argument. The profiling summary is "
+"created using previously generated profiling data in the (optional) second "
+"command-line argument. If the profiling data pathname is omitted, then "
+"B<sprof> will attempt to deduce it using the soname of the shared object, "
+"looking for a file with the name I<E<lt>sonameE<gt>.profile> in the current "
+"directory."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:49
+msgid ""
+"The following command-line options specify the profile output to be "
+"produced:"
+msgstr ""
+
+#. type: TP
+#: build/C/man1/sprof.1:49
+#, no-wrap
+msgid "B<-c>, B<--call-pairs>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:54
+msgid ""
+"Print a list of pairs of call paths for the interfaces exported by the "
+"shared object, along with the number of times each path is used."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/sprof.1:54
+#, no-wrap
+msgid "B<-p>, B<--flat-profile>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:58
+msgid ""
+"Generate a flat profile of all of the functions in the monitored object, "
+"with counts and ticks."
+msgstr ""
+
+#. type: TP
+#: build/C/man1/sprof.1:58
+#, no-wrap
+msgid "B<-q>, B<--graph>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:61
+msgid "Generate a call graph."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:64
+msgid ""
+"If none of the above options is specified, then the default behavior is to "
+"display a flat profile and a call graph."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:66
+msgid "The following additional command-line options are available:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:69
+msgid "Display a summary of command-line options and arguments and exit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:72
+msgid "Display a short usage message and exit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:75
+msgid "Display the program version and exit."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:79
+msgid "The B<sprof> command is a GNU extension, not present in POSIX.1."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:85
+msgid ""
+"The following example demonstrates the use of B<sprof>. The example "
+"consists of a main program that calls two functions in a shared library. "
+"First, the code of the main program:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:90
+#, no-wrap
+msgid ""
+"$ B<cat prog.c>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:93
+#, no-wrap
+msgid ""
+"void x1(void);\n"
+"void x2(void);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:101
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" x1();\n"
+" x2();\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:110
+msgid ""
+"The functions I<x1()> and I<x2()> are defined in the following source file "
+"that is used to construct the shared library:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:115
+#, no-wrap
+msgid ""
+"$ B<cat libdemo.c>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:120
+#, no-wrap
+msgid ""
+"void\n"
+"consumeCpu1(int lim)\n"
+"{\n"
+" int j;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:124 build/C/man1/sprof.1:141
+#, no-wrap
+msgid ""
+" for (j = 0; j E<lt> lim; j++)\n"
+"\tgetppid();\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:128
+#, no-wrap
+msgid ""
+"void\n"
+"x1(void) {\n"
+" int j;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:132
+#, no-wrap
+msgid ""
+" for (j = 0; j E<lt> 100; j++)\n"
+"\tconsumeCpu1(200000);\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:137
+#, no-wrap
+msgid ""
+"void\n"
+"consumeCpu2(int lim)\n"
+"{\n"
+" int j;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:146
+#, no-wrap
+msgid ""
+"void\n"
+"x2(void)\n"
+"{\n"
+" int j;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:150
+#, no-wrap
+msgid ""
+" for (j = 0; j E<lt> 1000; j++)\n"
+"\tconsumeCpu2(10000);\n"
+"}\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:157
+msgid ""
+"Now we construct the shared library with the real name I<libdemo.so.1.0.1>, "
+"and the soname I<libdemo.so.1>:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:162
+#, no-wrap
+msgid ""
+"$ B<cc -g -fPIC -shared -Wl,-soname,libdemo.so.1 \\e>\n"
+" B<-o libdemo.so.1.0.1 libdemo.c>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:167
+msgid ""
+"Then we construct symbolic links for the library soname and the library "
+"linker name:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:172
+#, no-wrap
+msgid ""
+"$ B<ln -sf libdemo.so.1.0.1 libdemo.so.1>\n"
+"$ B<ln -sf libdemo.so.1 libdemo.so>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:177
+msgid ""
+"Next, we compile the main program, linking it against the shared library, "
+"and then list the dynamic dependencies of the program:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:186
+#, no-wrap
+msgid ""
+"$ B<cc -g -o prog prog.c -L. -ldemo>\n"
+"$ B<ldd prog>\n"
+"\tlinux-vdso.so.1 =E<gt> (0x00007fff86d66000)\n"
+"\tlibdemo.so.1 =E<gt> not found\n"
+"\tlibc.so.6 =E<gt> /lib64/libc.so.6 (0x00007fd4dc138000)\n"
+"\t/lib64/ld-linux-x86-64.so.2 (0x00007fd4dc51f000)\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:193
+msgid ""
+"In order to get profiling information for the shared library, we define the "
+"environment variable B<LD_PROFILE> with the soname of the library:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:197
+#, no-wrap
+msgid "$ B<export LD_PROFILE=libdemo.so.1>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:204
+msgid ""
+"We then define the environment variable B<LD_PROFILE_OUTPUT> with the "
+"pathname of the directory where profile output should be written, and create "
+"that directory if it does not exist already:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:209
+#, no-wrap
+msgid ""
+"$ B<export LD_PROFILE_OUTPUT=$(pwd)/prof_data>\n"
+"$ B<mkdir -p $LD_PROFILE_OUTPUT>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:217
+msgid ""
+"B<LD_PROFILE> causes profiling output to be I<appended> to the output file "
+"if it already exists, so we ensure that there is no preexisting profiling "
+"data:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:221
+#, no-wrap
+msgid "$ B<rm -f $LD_PROFILE_OUTPUT/$LD_PROFILE.profile>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:227
+msgid ""
+"We then run the program to produce the profiling output, which is written to "
+"a file in the directory specified in B<LD_PROFILE_OUTPUT>:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:233
+#, no-wrap
+msgid ""
+"$ B<LD_LIBRARY_PATH=. ./prog>\n"
+"$ B<ls prof_data>\n"
+"libdemo.so.1.profile\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:239
+msgid ""
+"We then use the B<sprof -p> option to generate a flat profile with counts "
+"and ticks:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:244
+#, no-wrap
+msgid ""
+"$ B<sprof -p libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
+"Flat profile:\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:252
+#, no-wrap
+msgid ""
+"Each sample counts as 0.01 seconds.\n"
+" % cumulative self self total\n"
+" time seconds seconds calls us/call us/call name\n"
+" 60.00 0.06 0.06 100 600.00 consumeCpu1\n"
+" 40.00 0.10 0.04 1000 40.00 consumeCpu2\n"
+" 0.00 0.10 0.00 1 0.00 x1\n"
+" 0.00 0.10 0.00 1 0.00 x2\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:258
+msgid "The B<sprof -q> option generates a call graph:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:262
+#, no-wrap
+msgid "$ B<sprof -q libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:264
+#, no-wrap
+msgid "index % time self children called name\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:279
+#, no-wrap
+msgid ""
+" 0.00 0.00 100/100 x1 [1]\n"
+"[0] 100.0 0.00 0.00 100 consumeCpu1 [0]\n"
+"-----------------------------------------------\n"
+" 0.00 0.00 1/1 E<lt>UNKNOWNE<gt>\n"
+"[1] 0.0 0.00 0.00 1 x1 [1]\n"
+" 0.00 0.00 100/100 consumeCpu1 [0]\n"
+"-----------------------------------------------\n"
+" 0.00 0.00 1000/1000 x2 [3]\n"
+"[2] 0.0 0.00 0.00 1000 consumeCpu2 [2]\n"
+"-----------------------------------------------\n"
+" 0.00 0.00 1/1 E<lt>UNKNOWNE<gt>\n"
+"[3] 0.0 0.00 0.00 1 x2 [3]\n"
+" 0.00 0.00 1000/1000 consumeCpu2 [2]\n"
+"-----------------------------------------------\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:285
+msgid ""
+"Above and below, the \"E<lt>UNKNOWNE<gt>\" strings represent identifiers "
+"that are outside of the profiled object (in this example, these are "
+"instances of I<main()>)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:289
+msgid ""
+"The B<sprof -c> option generates a list of call pairs and the number of "
+"their occurrences:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:297
+#, no-wrap
+msgid ""
+"$ B<sprof -c libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile>\n"
+"E<lt>UNKNOWNE<gt> x1 1\n"
+"x1 consumeCpu1 100\n"
+"E<lt>UNKNOWNE<gt> x2 1\n"
+"x2 consumeCpu2 1000\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man1/sprof.1:303
+msgid "B<gprof>(1), B<ldd>(1), B<ld.so>(8)"
+msgstr ""