This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
On Sat, 5 Oct 2002, Roland McGrath wrote: > > (gdb) bt > > #0 0x401681a8 in __errno_location () from /lib/libpthread.so.0 > > #1 0x40032abc in __timer_signal_thread_rclk () from /lib/libc.so.6 > Ok, this is something we can work with. If you'd compiled libc with -g (or > if you did, install unstripped binaries in your chroot area) that would be > handy. But without that, do "disas $pc" at the crash--that should be the > disassembly you showed before, but with symbols lined up so we can be sure > what is what. Also show "info shared" in the same run, and "bt full". (gdb) disass $pc Dump of assembler code for function __errno_location: 0x40168180 <__errno_location>: sub $0xc,%esp 0x40168183 <__errno_location+3>: mov %ebx,0x4(%esp,1) 0x40168187 <__errno_location+7>: mov %ebp,0x8(%esp,1) 0x4016818b <__errno_location+11>: call 0x40168321 <__res_state+129> 0x40168190 <__errno_location+16>: add $0x69b4,%ebx 0x40168196 <__errno_location+22>: mov 0x1e4(%ebx),%eax 0x4016819c <__errno_location+28>: mov %ebp,%edx 0x4016819e <__errno_location+30>: cmp (%eax),%ebp 0x401681a0 <__errno_location+32>: jb 0x401681c0 <__errno_location+64> 0x401681a2 <__errno_location+34>: mov 0x230(%ebx),%eax 0x401681a8 <__errno_location+40>: mov 0x1b8(%eax),%eax 0x401681ae <__errno_location+46>: mov 0x4(%esp,1),%ebx 0x401681b2 <__errno_location+50>: mov 0x8(%esp,1),%ebp 0x401681b6 <__errno_location+54>: add $0xc,%esp 0x401681b9 <__errno_location+57>: ret 0x401681ba <__errno_location+58>: lea 0x0(%esi),%esi (gdb) info shared >From To Syms Read Shared Object Library 0x40016a00 0x4001a3e0 Yes /lib/librt.so.1 0x4003cb40 0x4013aea4 Yes /lib/libc.so.6 0x401624d0 0x4016be30 Yes /lib/libpthread.so.0 0x40000c00 0x40011044 Yes /lib/ld-linux.so.2 (gdb) bt full #0 0x401681a8 in __errno_location () from /lib/libpthread.so.0 No symbol table info available. #1 0x40032abc in __timer_signal_thread_rclk () from /lib/libc.so.6 No symbol table info available. (gdb) > Then also send readelf -Wrs libpthread.so.0, which lets us make sense of > the GOT references and so forth from the disassembly. Attached. > Send the config.status and config.h files from your libc build. Also attached.
Attachment:
readelf
Description: Readelf -Wrs
/* config.h. Generated automatically by configure. */
#if !defined __ASSEMBLER__ && !defined _ISOMAC && !defined __OPTIMIZE__
# error "glibc cannot be compiled without optimization"
#endif
/* Another evil option when it comes to compiling the C library is
--ffast-math since it alters the ABI. */
#if defined __FAST_MATH__ && !defined TEST_FAST_MATH
# error "glibc must not be compiled with -ffast-math"
#endif
/* Define if using GNU ld, with support for weak symbols in a.out,
and for symbol set and warning messages extensions in a.out and ELF.
This implies HAVE_WEAK_SYMBOLS; set by --with-gnu-ld. */
#define HAVE_GNU_LD 1
/* Define if using ELF, which supports weak symbols.
This implies HAVE_ASM_WEAK_DIRECTIVE and NO_UNDERSCORES; set by
--with-elf. */
#define HAVE_ELF 1
/* Define if using XCOFF. Set by --with-xcoff. */
/* #undef HAVE_XCOFF */
/* Define if C symbols are asm symbols. Don't define if C symbols
have a `_' prepended to make the asm symbol. */
#define NO_UNDERSCORES 1
/* Define if weak symbols are available via the `.weak' directive. */
#define HAVE_ASM_WEAK_DIRECTIVE 1
/* Define if weak symbols are available via the `.weakext' directive. */
/* #undef HAVE_ASM_WEAKEXT_DIRECTIVE */
/* Define to the assembler line separator character for multiple
assembler instructions per line. Default is `;' */
/* #undef ASM_LINE_SEP */
/* Define if not using ELF, but `.init' and `.fini' sections are available. */
/* #undef HAVE_INITFINI */
/* Define if __attribute__((section("foo"))) puts quotes around foo. */
/* #undef HAVE_SECTION_QUOTES */
/* Define if using the GNU assembler, gas. */
#define HAVE_GNU_AS 1
/* Define if the assembler supports the `.set' directive. */
#define HAVE_ASM_SET_DIRECTIVE 1
/* Define to the name of the assembler's directive for
declaring a symbol global (default `.globl'). */
#define ASM_GLOBAL_DIRECTIVE .globl
/* Define to the prefix before `object' or `function' in the
assembler's `.type' directive, if it has one. */
#define ASM_TYPE_DIRECTIVE_PREFIX @
/* Define a symbol_name as a global .symbol_name for ld. */
/* #undef HAVE_ASM_GLOBAL_DOT_NAME */
/* Define if _Unwind_Find_FDE should be exported from glibc. */
#define EXPORT_UNWIND_FIND_FDE 1
/* Define to use GNU libio instead of GNU stdio.
This is defined by configure under --enable-libio. */
#define USE_IN_LIBIO 1
/* Define if using ELF and the assembler supports the `.previous'
directive. */
#define HAVE_ASM_PREVIOUS_DIRECTIVE 1
/* Define if using ELF and the assembler supports the `.popsection'
directive. */
/* #undef HAVE_ASM_POPSECTION_DIRECTIVE */
/* Define to the prefix Alpha/ELF GCC emits before ..ng symbols. */
/* #undef ASM_ALPHA_NG_SYMBOL_PREFIX */
/* Define if versioning of the library is wanted. */
#define DO_VERSIONING 1
/* Defined to the oldest ABI we support, like 2.1. */
/* #undef GLIBC_OLDEST_ABI */
/* Define if static NSS modules are wanted. */
/* #undef DO_STATIC_NSS */
/* Define if gcc uses DWARF2 unwind information for exception support. */
/* #undef HAVE_DWARF2_UNWIND_INFO */
/* Define if gcc uses DWARF2 unwind information for exception support
with static variable. */
/* #undef HAVE_DWARF2_UNWIND_INFO_STATIC */
/* Define if the compiler supports __builtin_expect. */
#define HAVE_BUILTIN_EXPECT 1
/* Define if the compiler supports __builtin_memset. */
/* #undef HAVE_BUILTIN_MEMSET */
/* Define if the __thread keyword is supported. */
/* #undef HAVE___THREAD */
/* Define if the regparm attribute shall be used for local functions
(gcc on ix86 only). */
#define USE_REGPARMS 1
/* Defined on PowerPC if the GCC being used has a problem with clobbering
certain registers (CR0, MQ, CTR, LR) in asm statements. */
/* #undef BROKEN_PPC_ASM_CR0 */
/* Define if the linker supports the -z combreloc option. */
#define HAVE_Z_COMBRELOC 1
/* Define if the assembler supported .protected. */
#define HAVE_PROTECTED 1
/* Define if the assembler supported .hidden. */
#define HAVE_HIDDEN 1
/* Define if the compiler supports __attribute__ ((visibility (...))). */
/* #undef HAVE_VISIBILITY_ATTRIBUTE */
/* Define if the compiler doesn't support __attribute__ ((visibility (...)))
together with __asm__ redirection properly. */
/* #undef HAVE_BROKEN_VISIBILITY_ATTRIBUTE */
/* Define if the compiler doesn't support __attribute__ ((alias (...)))
together with __asm__ redirection properly. */
/* #undef HAVE_BROKEN_ALIAS_ATTRIBUTE */
/* Define if _rtld_local structure should be forced into .sdata section. */
/* #undef HAVE_SDATA_SECTION */
/* Define if binutils support TLS handling. */
/* #undef HAVE_TLS_SUPPORT */
/* Define if the linker supports .preinit_array/.init_array/.fini_array
sections. */
#define HAVE_INITFINI_ARRAY 1
/* Define if the access to static and hidden variables is position independent
and does not need relocations. */
#define PI_STATIC_AND_HIDDEN 1
/* Define this to disable the `hidden_proto' et al macros in
include/libc-symbols.h that avoid PLT slots in the shared objects. */
/* #undef NO_HIDDEN */
/* Defined to some form of __attribute__ ((...)) if the compiler supports
a different, more efficient calling convention. */
#if defined USE_REGPARMS && !defined PROF && !defined __BOUNDED_POINTERS__
# define internal_function __attribute__ ((regparm (3), stdcall))
#endif
/* Linux specific: minimum supported kernel version. */
/* #undef __LINUX_KERNEL_VERSION */
/* Override abi-tags ABI version if necessary. */
/* #undef __ABI_TAG_VERSION */
/* An extension in gcc 2.96 and up allows the subtraction of two
local labels. */
#define HAVE_SUBTRACT_LOCAL_LABELS 1
/* bash 2.0 introduced the _XXX_GNU_nonoption_argv_flags_ variable to help
getopt determine whether a parameter is a flag or not. This features
was disabled later since it caused trouble. We are by default therefore
disabling the support as well. */
/* #undef USE_NONOPTION_FLAGS */
/* Mach/Hurd specific: define if mig supports the `retcode' keyword. */
/* #undef HAVE_MIG_RETCODE */
/* Mach specific: define if the `host_page_size' RPC is available. */
/* #undef HAVE_HOST_PAGE_SIZE */
/* Mach/i386 specific: define if the `i386_io_perm_*' RPCs are available. */
/* #undef HAVE_I386_IO_PERM_MODIFY */
/*
*/
#ifndef _LIBC
/* These symbols might be defined by some sysdeps configures.
They are used only in miscellaneous generator programs, not
in compiling libc itself. */
/* sysdeps/generic/configure.in */
/* #undef HAVE_PSIGNAL */
/* sysdeps/unix/configure.in */
/* #undef HAVE_STRERROR */
/* sysdeps/unix/common/configure.in */
/* #undef HAVE_SYS_SIGLIST */
/* #undef HAVE__SYS_SIGLIST */
/* #undef HAVE__CTYPE_ */
/* #undef HAVE___CTYPE_ */
/* #undef HAVE___CTYPE */
/* #undef HAVE__CTYPE__ */
/* #undef HAVE__CTYPE */
/* #undef HAVE__LOCP */
#endif
/*
*/
#ifdef _LIBC
/* The zic and zdump programs need these definitions. */
#define HAVE_STRERROR 1
/* The locale code needs these definitions. */
#define HAVE_REGEX 1
#endif
Attachment:
config.status
Description: config status
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |