Merge remote-tracking branch 'savannah/master'
[hurd-web.git] / faq / dev / debugging_inside_glibc.mdwn
diff --git a/faq/dev/debugging_inside_glibc.mdwn b/faq/dev/debugging_inside_glibc.mdwn
new file mode 100644 (file)
index 0000000..63a77a0
--- /dev/null
@@ -0,0 +1,19 @@
+[[!meta copyright="Copyright © 2007, 2008, 2009, 2013 Free Software Foundation,
+Inc."]]
+
+[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+In Debian, to get [[debugging]] information for glibc, you need to install the
+`libc0.3-dbg` package.  At the place [[debugging/GDB]] looks for debugging
+symbols by default (`/usr/lib/debug/lib/`), Debian's `libc0.3-dbg` stores only
+the frame unwind information used for backtracing.  If you want to step into
+glibc while debugging, you need to add `LD_LIBRARY_PATH=/usr/lib/debug` to
+debugged program's environment (`set env VAR value` from the GDB command line).
+If that still does not work, try `LD_PRELOAD=/usr/lib/debug/libc.so.0.3`
+instead.