propagate from branch 'com.redhat.elfutils.roland.pending' (head e5cfdd13aa39dfae16b905fd57ff56ad8a131bb5)

to branch 'com.redhat.elfutils' (head 60222fc1981540f15e674b6705fd7a6f628f95a4)
This commit is contained in:
Ulrich Drepper
2006-07-12 19:42:23 +00:00
parent 7f7f1bc0e2
commit cc41562f94
24 changed files with 148 additions and 69 deletions
+3 -3
View File
@@ -1,8 +1,6 @@
Version 0.122:
libdwfl: New functions dwfl_module_getsymtab, dwfl_module_getsym.
libebl:add function to test for relative relocation
libebl: add function to test for relative relocation
elflint: fix and extend DT_RELCOUNT/DT_RELACOUNT checks
@@ -11,6 +9,8 @@ libelf: add elf_gnu_hash
elflint, readelf: add support for 64-bit SysV-style hash tables
libdwfl: new functions dwfl_module_getsymtab, dwfl_module_getsym.
Version 0.121:
libelf: bug fixes for rewriting existing files when using mmap.
-8
View File
@@ -1,11 +1,3 @@
2006-07-12 Ulrich Drepper <drepper@redhat.com>
* dwarf_child.c: Adjust for internal_function_def removal.
* dwarf_getabbrev.c: Likewise.
* dwarf_tag.c: Likewise.
* libdw_form.c: Likewise.
* memory-access.c: Likewise.
2006-06-28 Roland McGrath <roland@redhat.com>
* libdw.map: Export dwfl_linecu, dwfl_line_comp_dir.
+2 -2
View File
@@ -1,5 +1,5 @@
/* Return vhild of current DIE.
Copyright (C) 2003, 2004, 2005, 2006 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -60,7 +60,7 @@
unsigned char *
internal_function
internal_function_def
__libdw_find_attr (Dwarf_Die *die, unsigned int search_name,
unsigned int *codep, unsigned int *formp)
{
+2 -2
View File
@@ -1,5 +1,5 @@
/* Get abbreviation at given offset.
Copyright (C) 2003, 2004, 2005, 2006 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -58,7 +58,7 @@
Dwarf_Abbrev *
internal_function
internal_function_def
__libdw_getabbrev (dbg, cu, offset, lengthp, result)
Dwarf *dbg;
struct Dwarf_CU *cu;
+2 -2
View File
@@ -1,5 +1,5 @@
/* Return tag of given DIE.
Copyright (C) 2003, 2004, 2005, 2006 Red Hat, Inc.
Copyright (C) 2003, 2004, 2005 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -56,7 +56,7 @@
Dwarf_Abbrev *
internal_function
internal_function_def
__libdw_findabbrev (struct Dwarf_CU *cu, unsigned int code)
{
Dwarf_Abbrev *abb;
+2 -2
View File
@@ -1,5 +1,5 @@
/* Helper functions for form handling.
Copyright (C) 2003, 2004, 2006 Red Hat, Inc.
Copyright (C) 2003, 2004 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 2003.
@@ -59,7 +59,7 @@
size_t
internal_function
internal_function_def
__libdw_form_val_len (Dwarf *dbg, struct Dwarf_CU *cu, unsigned int form,
const unsigned char *valp)
{
+3 -3
View File
@@ -1,5 +1,5 @@
/* Out of line functions for memory-access.h macros.
Copyright (C) 2005, 2006 Red Hat, Inc.
Copyright (C) 2005 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -54,7 +54,7 @@
#include "memory-access.h"
uint64_t
internal_function
internal_function_def
__libdw_get_uleb128 (uint64_t acc, unsigned int i, const unsigned char **addrp)
{
unsigned char __b;
@@ -62,7 +62,7 @@ __libdw_get_uleb128 (uint64_t acc, unsigned int i, const unsigned char **addrp)
}
int64_t
internal_function
internal_function_def
__libdw_get_sleb128 (int64_t acc, unsigned int i, const unsigned char **addrp)
{
unsigned char __b;
+16
View File
@@ -0,0 +1,16 @@
* dev+ino+mtime hash table, global
** share fd; if !isrel, share Elf*,Ebl*,Dwarf*
* find_debuginfo
When local search fails, try "yum install-debugfor elf-file".
i.e., yum install `rpm -qf elffile --qf '%{SOURCERPM} %{V}-%{R} %{ARCH}\n' | awk '{ print substr($1, 1, length($1)-length("-" $2 ".src.rpm")) "-debuginfo-" $2 "." $3 }' `
done in rpm-python inside yum(?)
** all yum ops should have a -qf mode, means `rpm -qf --qf %{name}.%{arch}`
plus debug-of modifier to name.arch or -qf *
* libdw_findcu reads all cu hdrs from beginning
** good for dwarf_offdie: find cu containing that offset
** bad for dwarf_addrdie: reads in whole debuginfo file
** when from aranges (dwarf_addrdie), could read cuhdr offset directly w/o scan
*** aranges really store cu header offset, but libdw adds in header size to
get cu die offset; but libdw_findcu interning should start with header
+88
View File
@@ -0,0 +1,88 @@
* regexp on multiple formats to yield records (pc, mod, sym, offset, size?)
glibc backtrace_symbols_fd:
foo.so(sym+0x123)[0x345]
foo.so(sym-0x123)[0x345]
foobar[0x12345678]
======= Backtrace: =========
/lib/libc.so.6[0x715124]
/lib/libc.so.6(__libc_free+0x77)[0x71565f]
./loser[0x80483f8]
/lib/libc.so.6(__libc_start_main+0xdf)[0x6c6d5f]
./loser[0x804832d]
-->
(0x715124, "/lib/libc.so.6", , , )
(0x71565f, "/lib/libc.so.6", "__libc_free", +0x77, )
(0x80483f8, "./loser", , , )
(0x6c6d5f, "/lib/libc.so.6", "__libc_start_main", +0xdf, )
(0x804832d, "./loser", , , )
i386 kernel oops:
st_size
[<%x>] sym+0x123/0x32
[<%x>] sym-0x123/0x32
[<%x>] sym+0x123/0x32 [mod]
<1>Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
f8c54000
*pde = 2f36a001
Oops: 0002 [#2]
SMP
last sysfs file: /block/hdc/removable
Modules linked in: oopsmod2(U) oopsmod(U) nfs lockd nfs_acl ipv6 lp ppdev autofs4 rfcomm l2cap bluetooth sunrpc video button battery ac parport_pc parport floppy ohci1394 ieee1394 hw_random e1000 snd_intel8x0 snd_ac97_codec snd_ac97_bus snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm snd_timer i2c_i801 snd soundcore i2c_core ehci_hcd snd_page_alloc shpchp uhci_hcd dm_snapshot dm_zero dm_mirror dm_mod ext3 jbd ata_piix libata sd_mod scsi_mod
CPU: 0
EIP: 0060:[<f8c54000>] Not tainted VLI
EFLAGS: 00010286 (2.6.14-1.1773_FC5smp)
EIP is at crasher+0x0/0xc [oopsmod2]
eax: f8bd2000 ebx: f8c54380 ecx: f8c54380 edx: 00000001
esi: 00000000 edi: 00000000 ebp: eecb8000 esp: eecb8fa8
ds: 007b es: 007b ss: 0068
Process insmod (pid: 3454, threadinfo=eecb8000 task=f768eaa0)
Stack: f8bd2006 c01393d7 083d8018 00000000 c0103f19 083d8018 000109ca 083d8008
00000000 00000000 bfc73888 ffffffda 0000007b c010007b 00000080 0059a402
00000073 00000206 bfc7381c 0000007b 00000000 00000000
Call Trace:
[<f8bd2006>] init_crash+0x6/0x9 [oopsmod2] [<c01393d7>] sys_init_module+0xe2/0x205
[<c0103f19>] syscall_call+0x7/0xb
-->
kernel-release "2.6.14-1.1773_FC5smp"
(0xf8c54000, "oopsmod2", "crasher", 0x0, 0xc)
(0xf8bd2006, "oopsmod2", "init_crash", +0x6, 0x9)
(0xc01393d7, "kernel", "sys_init_module", +0xe2, 0x205)
(0xc0103f19, "kernel", "syscall_call", +0x7, 0xb)
x86-64 oops:
[<%x>]
<%x>{sym+%d}
<%x>{sym-%d}
-9
View File
@@ -1,12 +1,3 @@
2006-07-12 Ulrich Drepper <drepper@redhat.com>
* cu.c: Adjust for internal_function_def removal.
* dwfl_error.c: Likewise.
* dwfl_module.c: Likewise.
* dwfl_module_getdwarf.c: Likewise.
* lines.c: Likewise.
* relocate.c: Likewise.
2006-07-11 Ulrich Drepper <drepper@redhat.com>
* dwfl_module.c (compare_modules): Don't return GElf_Sxword value,
+2 -2
View File
@@ -248,7 +248,7 @@ intern_cu (Dwfl_Module *mod, Dwarf_Off cuoff, struct dwfl_cu **result)
/* Traverse all the CUs in the module. */
Dwfl_Error
internal_function
internal_function_def
__libdwfl_nextcu (Dwfl_Module *mod, struct dwfl_cu *lastcu,
struct dwfl_cu **cu)
{
@@ -315,7 +315,7 @@ arangecu (Dwfl_Module *mod, struct dwfl_arange *arange, struct dwfl_cu **cu)
}
Dwfl_Error
internal_function
internal_function_def
__libdwfl_addrcu (Dwfl_Module *mod, Dwarf_Addr addr, struct dwfl_cu **cu)
{
struct dwfl_arange *arange;
+3 -3
View File
@@ -1,5 +1,5 @@
/* Error handling in libdwfl.
Copyright (C) 2005, 2006 Red Hat, Inc.
Copyright (C) 2005 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -162,14 +162,14 @@ canonicalize (Dwfl_Error error)
}
int
internal_function
internal_function_def
__libdwfl_canon_error (Dwfl_Error error)
{
return canonicalize (error);
}
void
internal_function
internal_function_def
__libdwfl_seterrno (Dwfl_Error error)
{
int value = canonicalize (error);
+1 -1
View File
@@ -64,7 +64,7 @@ nofree (void *arg __attribute__ ((unused)))
}
void
internal_function
internal_function_def
__libdwfl_module_free (Dwfl_Module *mod)
{
if (mod->lazy_cu_root != NULL)
+1 -1
View File
@@ -319,7 +319,7 @@ find_symtab (Dwfl_Module *mod)
/* Try to open a libebl backend for MOD. */
Dwfl_Error
internal_function
internal_function_def
__libdwfl_module_getebl (Dwfl_Module *mod)
{
if (mod->ebl == NULL)
+2 -2
View File
@@ -1,5 +1,5 @@
/* Fetch source line info for CU.
Copyright (C) 2005, 2006 Red Hat, Inc.
Copyright (C) 2005 Red Hat, Inc.
This file is part of Red Hat elfutils.
Red Hat elfutils is free software; you can redistribute it and/or modify
@@ -51,7 +51,7 @@
#include "../libdw/libdwP.h"
Dwfl_Error
internal_function
internal_function_def
__libdwfl_cu_getsrclines (struct dwfl_cu *cu)
{
if (cu->lines == NULL)
+2 -2
View File
@@ -55,7 +55,7 @@ typedef uint8_t GElf_Byte;
We update the section header in place to cache the result. */
Dwfl_Error
internal_function
internal_function_def
__libdwfl_relocate_value (Dwfl_Module *mod, size_t symshstrndx,
Elf32_Word shndx, GElf_Addr *value)
{
@@ -97,7 +97,7 @@ __libdwfl_relocate_value (Dwfl_Module *mod, size_t symshstrndx,
}
Dwfl_Error
internal_function
internal_function_def
__libdwfl_relocate (Dwfl_Module *mod, Elf *debugfile)
{
assert (mod->e_type == ET_REL);
-7
View File
@@ -1,10 +1,3 @@
2006-07-12 Ulrich Drepper <drepper@redhat.com>
* elf32_updatefile.c: Adjust for internal_function_def removal.
* elf32_updatenull.c: Likewise.
* elf_begin.c: Likewise.
* elf_getdata.c: Likewise.
2006-07-11 Ulrich Drepper <drepper@redhat.com>
* libelf.h: Define ELF_T_GNUHASH.
+2 -2
View File
@@ -112,7 +112,7 @@ sort_sections (Elf_Scn **scns, Elf_ScnList *list)
int
internal_function
internal_function_def
__elfw2(LIBELFBITS,updatemmap) (Elf *elf, int change_bo, size_t shnum)
{
ElfW2(LIBELFBITS,Ehdr) *ehdr;
@@ -444,7 +444,7 @@ fill (int fd, off_t pos, size_t len, char *fillbuf, size_t *filledp)
int
internal_function
internal_function_def
__elfw2(LIBELFBITS,updatefile) (Elf *elf, int change_bo, size_t shnum)
{
char fillbuf[FILLBUFSIZE];
+1 -1
View File
@@ -132,7 +132,7 @@ ELFW(default_ehdr,LIBELFBITS) (Elf *elf, ElfW2(LIBELFBITS,Ehdr) *ehdr,
off_t
internal_function
internal_function_def
__elfw2(LIBELFBITS,updatenull) (Elf *elf, int *change_bop, size_t shnum)
{
ElfW2(LIBELFBITS,Ehdr) *ehdr = INTUSE(elfw2(LIBELFBITS,getehdr)) (elf);
+3 -3
View File
@@ -1,5 +1,5 @@
/* Create descriptor for processing file.
Copyright (C) 1998-2005, 2006 Red Hat, Inc.
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Red Hat, Inc.
This file is part of Red Hat elfutils.
Written by Ulrich Drepper <drepper@redhat.com>, 1998.
@@ -434,7 +434,7 @@ file_read_elf (int fildes, void *map_address, unsigned char *e_ident,
Elf *
internal_function
internal_function_def
__libelf_read_mmaped_file (int fildes, void *map_address, off_t offset,
size_t maxsize, Elf_Cmd cmd, Elf *parent)
{
@@ -702,7 +702,7 @@ read_long_names (Elf *elf)
/* Read the next archive header. */
int
internal_function
internal_function_def
__libelf_next_arhdr (elf)
Elf *elf;
{
+1 -1
View File
@@ -215,7 +215,7 @@ convert_data (Elf_Scn *scn, int version __attribute__ ((unused)), int eclass,
/* Store the information for the raw data in the `rawdata' element. */
int
internal_function
internal_function_def
__libelf_set_rawdata (Elf_Scn *scn)
{
size_t offset;
+7 -10
View File
@@ -1,7 +1,11 @@
2006-07-11 Ulrich Drepper <drepper@redhat.com>
2006-07-11 Roland McGrath <roland@redhat.com>
* readelf.c (handle_gnu_hash): Adjust for final form of .gnu.hash.
* elflint.c (check_gnu_hash): Likewise.
* addr2line.c (options): English fix in -f doc string.
* addr2line.c (use_comp_dir): New variable.
(options, parse_opt): Grok -A/--absolute to set it.
(handle_address): If set, prepend dwfl_line_comp_dir results to
relative file names.
2006-07-06 Ulrich Drepper <drepper@redhat.com>
@@ -45,13 +49,6 @@
* Makefile.am: Add hacks to create dependency files for non-generic
linker.
2006-06-28 Roland McGrath <roland@redhat.com>
* addr2line.c (use_comp_dir): New variable.
(options, parse_opt): Grok -A/--absolute to set it.
(handle_address): If set, prepend dwfl_line_comp_dir results to
relative file names.
2006-06-12 Ulrich Drepper <drepper@redhat.com>
* ldgeneric.c (ld_generic_generate_sections): Don't create .interp
+2 -2
View File
@@ -64,8 +64,8 @@ static const struct argp_option options[] =
{ NULL, 0, NULL, 0, N_("Output Selection:"), 0 },
{ "basenames", 's', NULL, 0, N_("Show only base names of source files"), 0 },
{ "absolute", 'A', NULL, 0,
N_("Show absolute file names using compilation directory"), 0 },
{ "functions", 'f', NULL, 0, N_("Additional show function names"), 0 },
N_("Show absolute directory names of source files"), 0 },
{ "functions", 'f', NULL, 0, N_("Also show function names"), 0 },
{ NULL, 0, NULL, 0, N_("Miscellaneous:"), 0 },
/* Unsupported options. */
+3 -1
View File
@@ -57,7 +57,8 @@ noinst_PROGRAMS = arextract arsymtest newfile saridx scnnames sectiondump \
show-die-info get-files get-lines get-pubnames \
get-aranges allfcts line2addr addrscopes funcscopes \
show-abbrev hash newscn ecp dwflmodtest \
find-prologues funcretval allregs rdwrmmap
find-prologues funcretval allregs rdwrmmap \
countcu
# get-ciefde
asm_TESTS = asm-tst1 asm-tst2 asm-tst3 asm-tst4 asm-tst5 \
asm-tst6 asm-tst7 asm-tst8 asm-tst9
@@ -183,6 +184,7 @@ addrscopes_LDADD = $(libdw) $(libmudflap)
funcscopes_LDADD = $(libdw) $(libmudflap)
funcretval_LDADD = $(libdw) $(libmudflap)
allregs_LDADD = $(libdw) $(libmudflap)
countcu_LDADD = $(libdw) $(libmudflap)
find_prologues_LDADD = $(libdw) $(libmudflap)
#show_ciefde_LDADD = ../libdwarf/libdwarf.so $(libelf) $(libmudflap)
asm_tst1_LDADD = $(libasm) $(libebl) $(libelf) $(libmudflap) -ldl