diff options
73 files changed, 4296 insertions, 2654 deletions
@@ -1,3 +1,13 @@ +Version 0.148: + +libdw: Accept DWARF 4 format: new functions dwarf_next_unit, dwarf_offdie_types. + New functions dwarf_lineisa, dwarf_linediscriminator, dwarf_lineop_index. + +libdwfl: Fixes in core-file handling, support cores from PIEs. + When working from build IDs, don't open a named file that mismatches. + +readelf: Handle DWARF 4 formats. + Version 0.147: libdw: Fixes in CFI handling, best possible handling of bogus CFA ops. diff --git a/config/elfutils.spec.in b/config/elfutils.spec.in index 102d723f..ab764dfc 100644 --- a/config/elfutils.spec.in +++ b/config/elfutils.spec.in @@ -183,6 +183,15 @@ rm -rf ${RPM_BUILD_ROOT} %{_libdir}/libelf.a %changelog +* Mon Jun 28 2010 <[email protected]> 0.148-1 +- libdw: Accept DWARF 4 format: new functions dwarf_next_unit, + dwarf_offdie_types. New functions dwarf_lineisa, + dwarf_linediscriminator, dwarf_lineop_index. +- libdwfl: Fixes in core-file handling, support cores from PIEs. + When working from build IDs, don't open a named file that + mismatches. +- readelf: Handle DWARF 4 formats. + * Mon May 3 2010 Ulrich Drepper <[email protected]> 0.147-1 - libdw: Fixes in CFI handling, best possible handling of bogus CFA ops. diff --git a/configure.ac b/configure.ac index 53cd8c05..9de6f5ec 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software Foundation, dnl Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. dnl -AC_INIT([Red Hat elfutils],[0.147],[http://bugzilla.redhat.com/bugzilla/],[elfutils]) +AC_INIT([Red Hat elfutils],[0.148],[http://bugzilla.redhat.com/bugzilla/],[elfutils]) AC_CONFIG_AUX_DIR([config]) AC_CONFIG_FILES([config/Makefile]) @@ -277,7 +277,7 @@ case "$eu_version" in 0[[0-9]][[0-9]][[0-9]]) eu_version="${eu_version#0}$eu_extra_version" ;; [[0-9]][[0-9]][[0-9]][[0-9]]) eu_version="${eu_version}$eu_extra_version" ;; [[0-9]][[0-9]][[0-9]]) eu_version="${eu_version}0$eu_extra_version" ;; -[[0-9]][[0-9]]) eu_version="${eu_version}00$eu_extra_version";; +[[0-9]][[0-9]]) eu_version="${eu_version}00$eu_extra_version";; *) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;; esac diff --git a/lib/ChangeLog b/lib/ChangeLog index f4aa0dfc..b487fb4e 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,9 @@ +2010-06-16 Roland McGrath <[email protected]> + + * dynamicsizehash.h (HASHTYPE): New macro. + (struct): Use size_t for table sizes. + * dynamicsizehash.c: Likewise. Use HASHTYPE for hash values. + 2009-01-25 Roland McGrath <[email protected]> * eu-config.h (__STDC_LIMIT_MACROS): Define it. diff --git a/lib/dynamicsizehash.c b/lib/dynamicsizehash.c index b645da6a..24335d42 100644 --- a/lib/dynamicsizehash.c +++ b/lib/dynamicsizehash.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2001, 2002, 2005 Red Hat, Inc. +/* Copyright (C) 2000-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2000. @@ -67,7 +67,7 @@ static size_t lookup (htab, hval, val) NAME *htab; - unsigned long int hval; + HASHTYPE hval; TYPE val __attribute__ ((unused)); { /* First hash function: simply take the modul but prevent zero. */ @@ -75,7 +75,7 @@ lookup (htab, hval, val) if (htab->table[idx].hashval != 0) { - unsigned long int hash; + HASHTYPE hash; if (htab->table[idx].hashval == hval && COMPARE (htab->table[idx].data, val) == 0) @@ -103,7 +103,7 @@ lookup (htab, hval, val) static void -insert_entry_2 (NAME *htab, unsigned long int hval, size_t idx, TYPE data) +insert_entry_2 (NAME *htab, HASHTYPE hval, size_t idx, TYPE data) { #ifdef ITERATE if (htab->table[idx].hashval == 0) @@ -137,7 +137,7 @@ insert_entry_2 (NAME *htab, unsigned long int hval, size_t idx, TYPE data) __typeof__ (htab->first) runp; # endif #else - unsigned long int old_size = htab->size; + size_t old_size = htab->size; #endif #define _TABLE(name) \ name##_ent *table = htab->table @@ -198,7 +198,7 @@ int name##_init INIT(NAME) (htab, init_size) NAME *htab; - unsigned long int init_size; + size_t init_size; { /* We need the size to be a prime. */ init_size = next_prime (init_size); @@ -235,7 +235,7 @@ int name##_insert INSERT(NAME) (htab, hval, data) NAME *htab; - unsigned long int hval; + HASHTYPE hval; TYPE data; { size_t idx; @@ -262,7 +262,7 @@ int name##_overwrite INSERT(NAME) (htab, hval, data) NAME *htab; - unsigned long int hval; + HASHTYPE hval; TYPE data; { size_t idx; @@ -285,7 +285,7 @@ TYPE name##_find FIND(NAME) (htab, hval, val) NAME *htab; - unsigned long int hval; + HASHTYPE hval; TYPE val; { size_t idx; diff --git a/lib/dynamicsizehash.h b/lib/dynamicsizehash.h index 7cbb169d..f169d5e7 100644 --- a/lib/dynamicsizehash.h +++ b/lib/dynamicsizehash.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2001, 2002 Red Hat, Inc. +/* Copyright (C) 2000-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2000. @@ -57,6 +57,7 @@ The following macros if present select features: ITERATE iterating over the table entries is possible + HASHTYPE integer type for hash values, default unsigned long int */ @@ -69,6 +70,10 @@ # define NEXT(name) #endif +#ifndef HASHTYPE +# define HASHTYPE unsigned long int +#endif + /* Defined separately. */ extern size_t next_prime (size_t seed); @@ -78,7 +83,7 @@ extern size_t next_prime (size_t seed); #define _DYNHASHENTTYPE(name) \ typedef struct name##_ent \ { \ - unsigned long int hashval; \ + HASHTYPE hashval; \ TYPE data; \ NEXT (name) \ } name##_ent @@ -90,8 +95,8 @@ DYNHASHENTTYPE (NAME); #define _DYNHASHTYPE(name) \ typedef struct \ { \ - unsigned long int size; \ - unsigned long int filled; \ + size_t size; \ + size_t filled; \ name##_ent *table; \ FIRST (name) \ } name @@ -102,19 +107,19 @@ DYNHASHTYPE (NAME); #define _FUNCTIONS(name) \ /* Initialize the hash table. */ \ -extern int name##_init (name *htab, unsigned long int init_size); \ +extern int name##_init (name *htab, size_t init_size); \ \ /* Free resources allocated for hash table. */ \ extern int name##_free (name *htab); \ \ /* Insert new entry. */ \ -extern int name##_insert (name *htab, unsigned long int hval, TYPE data); \ +extern int name##_insert (name *htab, HASHTYPE hval, TYPE data); \ \ /* Insert new entry, possibly overwrite old entry. */ \ -extern int name##_overwrite (name *htab, unsigned long int hval, TYPE data); \ +extern int name##_overwrite (name *htab, HASHTYPE hval, TYPE data); \ \ /* Find entry in hash table. */ \ -extern TYPE name##_find (name *htab, unsigned long int hval, TYPE val); +extern TYPE name##_find (name *htab, HASHTYPE hval, TYPE val); #define FUNCTIONS(name) _FUNCTIONS (name) FUNCTIONS (NAME) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index c16e91d5..b39bbf68 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,197 @@ +2010-06-23 Roland McGrath <[email protected]> + + * cfi.c (dwarf_cfi_validate_fde): Function removed. + * libdw.h: Remove it. + * libdw.map: Likewise. + +2010-06-22 Roland McGrath <[email protected]> + + * dwarf_getlocation.c (check_constant_offset): data[48] are constant. + + * dwarf_getsrclines.c: Fix signed comparison warning in extended + opcode parsing. + +2010-06-21 Roland McGrath <[email protected]> + + * dwarf.h: Add DW_TAG_GNU_* constants. + + * memory-access.h (get_sleb128_rest_return): Fix sign extension for + 10-byte case. + +2010-06-20 Roland McGrath <[email protected]> + + * libdw_findcu.c (__libdw_findcu): Take new flag argument, + to search TUs instead of CUs. + * libdwP.h: Update decl. + (struct Dwarf): New member tu_tree. + * dwarf_end.c (dwarf_end): Clean up tu_tree. + * dwarf_offdie.c (do_offdie): New function, broken out of ... + (dwarf_offdie): ... here. + (dwarf_offdie_types): New function. + * libdw.h: Declare it. + * libdw.map (ELFUTILS_0.148): Add it. + + * libdwP.h (CUDIE): Use cu_data. + * dwarf_formblock.c: Likewise. + * dwarf_formref_die.c: Likewise. + * dwarf_diecu.c: Use CUDIE macro. + * dwarf_formaddr.c: Use cu_sec_idx. + +2010-06-16 Roland McGrath <[email protected]> + + * dwarf_formref_die.c: Use dwarf_offdie only for DW_FORM_ref_addr, so + we don't repeat a CU lookup we've already done. Handle + DW_FORM_ref_sig8 using sig8_hash table and __libdw_intern_next_unit. + + * libdw_findcu.c (__libdw_intern_next_unit): New function, + broken out of ... + (__libdw_findcu): ... here. Call it. + * libdwP.h: Declare it. + (struct Dwarf): New member next_tu_offset. + + * dwarf_sig8_hash.c: New file. + * dwarf_sig8_hash.h: New file. + * Makefile.am (libdw_a_SOURCES, noinst_HEADERS): Add them. + * dwarf_abbrev_hash.c: Include dwarf_sig8_hash.h before + defining NO_UNDEF. + * libdwP.h (struct Dwarf): New member sig8_hash. + * dwarf_begin_elf.c: Call Dwarf_Sig8_Hash_init on it. + * dwarf_end.c: Call Dwarf_Sig8_Hash_free on it. + + * dwarf_nextcu.c (dwarf_next_unit): New function, broken out of ... + (dwarf_nextcu): ... here. Call it. + * libdw.h: Declare it. + * libdwP.h: Add INTDECL. + * libdw_findcu.c (__libdw_findcu): Use it instead of dwarf_nextcu. + * libdw.map (ELFUTILS_0.148): New set, add dwarf_next_unit. + + * libdwP.h (cu_sec_idx, cu_data): New functions. + Use .debug_types when CU is a TU. + * dwarf_cuoffset.c: Use that instead of assuming IDX_debug_info. + * dwarf_siblingof.c: Likewise. + * dwarf_formstring.c: Likewise. + * dwarf_formudata.c (__libdw_formptr, dwarf_formudata): Likewise. + * dwarf_getlocation.c (dwarf_getlocation): Likewise. + (dwarf_getlocation_addr): Likewise. + + * libdwP.h (struct Dwarf_CU): Add new members type_offset, type_sig8. + (DIE_OFFSET_FROM_CU_OFFSET): Take flag argument; if true, compute + .debug_types header size instead of .debug_info header size. + (CUDIE): Use it. + * dwarf_diecu.c: Update caller. + * dwarf_getaranges.c: Likewise. + * dwarf_nextcu.c: Likewise. + * libdw_findcu.c (__libdw_findcu): Initialize new members. + + * fde.c (fde_by_offset): Renamed to ... + (__libdw_fde_by_offset): ... this, made global and internal_function. + Don't take ADDRESS argument. + (__libdw_find_fde): Update caller. Do address sanity check here. + * cfi.h: Declare __libdw_fde_by_offset. + * cfi.c (dwarf_cfi_validate_fde): New function. + * libdw.h: Declare it. + * libdw.map (ELFUTILS_0.148): Add it. + + * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to + either DW_EH_PE_udata8 or DW_EH_PE_udata4. + + * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect. + Don't assume DW_EH_PE_aligned refers to native address size. + + * cfi.c (execute_cfi): Barf on CIE initial instructions changing the + address. + +2010-06-17 Roland McGrath <[email protected]> + + * libdwP.h (struct Dwarf_Line_s): Add members isa, discriminator, and + op_index. + * dwarf_getsrclines.c (dwarf_getsrclines): Move NEW_FILE macro guts + into an inner inline function. Set new fields. Check all fields for + overflow when setting. + * dwarf_lineisa.c: New file. + * dwarf_linediscriminator.c: New file. + * dwarf_lineop_index.c: New file. + * Makefile.am (libdw_a_SOURCES): Add them. + * libdw.map (ELFUTILS_0.148): Add them. + * libdw.h: Declare them. + +2010-06-16 Roland McGrath <[email protected]> + + * dwarf_next_cfi.c: Fix version 4 return_address_register decoding. + + * fde.c (fde_by_offset): Renamed to ... + (__libdw_fde_by_offset): ... this, made global and internal_function. + Don't take ADDRESS argument. + (__libdw_find_fde): Update caller. Do address sanity check here. + * cfi.h: Declare __libdw_fde_by_offset. + * cfi.c (dwarf_cfi_validate_fde): New function. + * libdw.h: Declare it. + * libdw.map (ELFUTILS_0.148): Add it. + + * cie.c (intern_new_cie): Canonicalize DW_EH_PE_absptr FDE encoding to + either DW_EH_PE_udata8 or DW_EH_PE_udata4. + + * encoded-value.h (read_encoded_value): Handle DW_EH_PE_indirect. + Don't assume DW_EH_PE_aligned refers to native address size. + + * cfi.c (execute_cfi): Barf on CIE initial instructions changing the + address. + +2010-06-15 Roland McGrath <[email protected]> + + * dwarf_formref.c (__libdw_formref): Diagnose DW_FORM_ref_sig8 like + DW_FORM_ref_addr. + * dwarf_formref_die.c (dwarf_formref_die): Diagnose it the same way + here, since we don't support it yet. + + * dwarf_next_cfi.c: Handle version 4 format. + + * dwarf_getsrclines.c: Handle version 4 format. + +2010-06-01 Roland McGrath <[email protected]> + + * libdwP.h: Remove unused IDX_debug_*names, add IDX_debug_types. + * dwarf_begin_elf.c (dwarf_scnnames): Likewise. + + * libdwP.h (CIE_VERSION): Remove unused macro. + + * dwarf_getsrclines.c: Fix version field test. + * libdwP.h (DWARF_VERSION): Remove useless macro. + + * dwarf_formudata.c (__libdw_formptr): Fix DW_FORM_sec_offset handling. + + * dwarf_formblock.c (dwarf_formblock): Handle DW_FORM_exprloc. + + * libdw_findcu.c (__libdw_findcu): Accept version 4. + +2010-05-31 Mark Wielaard <[email protected]> + + * cfi.h (dwarf_cfi_cie_p): Move definition from here, to .. + * libdw.h (dwarf_cfi_cie_p): ... here. + +2010-05-31 Mark Wielaard <[email protected]> + + * dwarf.h: Fix DW_LANG_Python constant. + +2010-05-28 Eduardo Santiago <[email protected]> + + * dwarf_getlocation.c (dwarf_getlocation): Do attr_ok check first + thing. + +2010-05-27 Roland McGrath <[email protected]> + + * dwarf.h: Add DW_AT_enum_class, DW_AT_linkage_name, + DW_TAG_template_alias, DW_LANG_Python, DW_LNE_set_discriminator. + +2010-05-08 Roland McGrath <[email protected]> + + * dwarf_getlocation.c (__libdw_intern_expression): Take new argument + REF_SIZE. Use that to handle DW_OP_call_ref correctly. + (getlocation): Update caller. + * dwarf_frame_cfa.c (dwarf_frame_cfa): Likewise. + * dwarf_frame_register.c (dwarf_frame_register): Likewise. + * libdwP.h: Update decl. + 2010-04-26 Roland McGrath <[email protected]> * cfi.h (struct Dwarf_Frame_s): Add cfa_invalid alternative in cfa_rule. @@ -1603,4 +1797,4 @@ 2003-08-11 Ulrich Drepper <[email protected]> - * Moved to CVS archive. + * Moved to CVS archive. diff --git a/libdw/Makefile.am b/libdw/Makefile.am index 08c3f092..a6c98a87 100644 --- a/libdw/Makefile.am +++ b/libdw/Makefile.am @@ -46,13 +46,14 @@ pkginclude_HEADERS = libdw.h \ c++/dwarf_comparator noinst_HEADERS = libdwP.h memory-access.h dwarf_abbrev_hash.h \ - cfi.h encoded-value.h \ + dwarf_sig8_hash.h cfi.h encoded-value.h \ known-dwarf.h c++/dwarf-knowledge.cc c++/data-values.hh libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \ dwarf_getpubnames.c dwarf_getabbrev.c dwarf_tag.c \ dwarf_error.c dwarf_nextcu.c dwarf_diename.c dwarf_offdie.c \ - dwarf_attr.c dwarf_formstring.c dwarf_abbrev_hash.c \ + dwarf_attr.c dwarf_formstring.c \ + dwarf_abbrev_hash.c dwarf_sig8_hash.c \ dwarf_attr_integrate.c dwarf_hasattr_integrate.c \ dwarf_child.c dwarf_haschildren.c dwarf_formaddr.c \ dwarf_formudata.c dwarf_formsdata.c dwarf_lowpc.c \ @@ -71,6 +72,8 @@ libdw_a_SOURCES = dwarf_begin.c dwarf_begin_elf.c dwarf_end.c dwarf_getelf.c \ dwarf_linecol.c dwarf_linebeginstatement.c \ dwarf_lineendsequence.c dwarf_lineblock.c \ dwarf_lineprologueend.c dwarf_lineepiloguebegin.c \ + dwarf_lineisa.c dwarf_linediscriminator.c \ + dwarf_lineop_index.c \ dwarf_onesrcline.c dwarf_formblock.c \ dwarf_getsrcfiles.c dwarf_filesrc.c dwarf_getsrcdirs.c \ dwarf_getlocation.c dwarf_getstring.c dwarf_offabbrev.c \ diff --git a/libdw/cfi.c b/libdw/cfi.c index 3cb378b6..aeb48e69 100644 --- a/libdw/cfi.c +++ b/libdw/cfi.c @@ -369,6 +369,7 @@ execute_cfi (Dwarf_CFI *cache, } /* We get here only for the cases that have just moved LOC. */ + cfi_assert (cie->initial_state != NULL); if (find_pc >= loc) /* This advance has not yet reached FIND_PC. */ fs->start = loc; diff --git a/libdw/cfi.h b/libdw/cfi.h index e04e76dd..ef9cd7e1 100644 --- a/libdw/cfi.h +++ b/libdw/cfi.h @@ -54,8 +54,6 @@ #include "libelfP.h" struct ebl; -#define dwarf_cfi_cie_p(entry) ((entry)->cie.CIE_id == DW_CIE_ID_64) - /* Cached CIE representation. */ struct dwarf_cie { @@ -229,6 +227,11 @@ extern struct dwarf_fde *__libdw_find_fde (Dwarf_CFI *cache, Dwarf_Addr address) __nonnull_attribute__ (1) internal_function; +/* Look for an FDE by its offset in the section. */ +extern struct dwarf_fde *__libdw_fde_by_offset (Dwarf_CFI *cache, + Dwarf_Off offset) + __nonnull_attribute__ (1) internal_function; + /* Process the FDE that contains the given PC address, to yield the frame state when stopped there. The return value is a DWARF_E_* error code. */ diff --git a/libdw/cie.c b/libdw/cie.c index 08752a6d..7c93f551 100644 --- a/libdw/cie.c +++ b/libdw/cie.c @@ -1,5 +1,5 @@ /* CIE reading. - Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2009-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -53,6 +53,7 @@ #include "cfi.h" #include "encoded-value.h" +#include <assert.h> #include <search.h> #include <stdlib.h> @@ -135,6 +136,29 @@ intern_new_cie (Dwarf_CFI *cache, Dwarf_Off offset, const Dwarf_CIE *info) break; } + if ((cie->fde_encoding & 0x0f) == DW_EH_PE_absptr) + { + /* Canonicalize encoding to a specific size. */ + assert (DW_EH_PE_absptr == 0); + + /* XXX should get from dwarf_next_cfi with v4 header. */ + uint_fast8_t address_size + = cache->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8; + switch (address_size) + { + case 8: + cie->fde_encoding |= DW_EH_PE_udata8; + break; + case 4: + cie->fde_encoding |= DW_EH_PE_udata4; + break; + default: + free (cie); + __libdw_seterrno (DWARF_E_INVALID_DWARF); + return NULL; + } + } + /* Save the initial instructions to be played out into initial state. */ cie->initial_instructions = info->initial_instructions; cie->initial_instructions_end = info->initial_instructions_end; diff --git a/libdw/dwarf.h b/libdw/dwarf.h index aefc1a79..dbf56e91 100644 --- a/libdw/dwarf.h +++ b/libdw/dwarf.h @@ -113,11 +113,22 @@ enum DW_TAG_shared_type = 0x40, DW_TAG_type_unit = 0x41, DW_TAG_rvalue_reference_type = 0x42, + DW_TAG_template_alias = 0x43, + DW_TAG_lo_user = 0x4080, + DW_TAG_MIPS_loop = 0x4081, DW_TAG_format_label = 0x4101, DW_TAG_function_template = 0x4102, DW_TAG_class_template = 0x4103, + + DW_TAG_GNU_BINCL = 0x4104, + DW_TAG_GNU_EINCL = 0x4105, + + DW_TAG_GNU_template_template_param = 0x4106, + DW_TAG_GNU_template_parameter_pack = 0x4107, + DW_TAG_GNU_formal_parameter_pack = 0x4108, + DW_TAG_hi_user = 0xffff }; @@ -226,6 +237,8 @@ enum DW_AT_main_subprogram = 0x6a, DW_AT_data_bit_offset = 0x6b, DW_AT_const_expr = 0x6c, + DW_AT_enum_class = 0x6d, + DW_AT_linkage_name = 0x6e, DW_AT_lo_user = 0x2000, @@ -565,6 +578,7 @@ enum DW_LANG_ObjC_plus_plus = 0x0011, /* Objective-C++ */ DW_LANG_UPC = 0x0012, /* Unified Parallel C */ DW_LANG_D = 0x0013, /* D */ + DW_LANG_Python = 0x0014, /* Python */ DW_LANG_lo_user = 0x8000, DW_LANG_Mips_Assembler = 0x8001, @@ -643,6 +657,7 @@ enum DW_LNE_end_sequence = 1, DW_LNE_set_address = 2, DW_LNE_define_file = 3, + DW_LNE_set_discriminator = 4, DW_LNE_lo_user = 128, DW_LNE_hi_user = 255 diff --git a/libdw/dwarf_abbrev_hash.c b/libdw/dwarf_abbrev_hash.c index 5c5d6cb1..bec1ceb2 100644 --- a/libdw/dwarf_abbrev_hash.c +++ b/libdw/dwarf_abbrev_hash.c @@ -1,5 +1,5 @@ /* Implementation of hash table for DWARF .debug_abbrev section content. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2000. @@ -52,6 +52,7 @@ # include <config.h> #endif +#include "dwarf_sig8_hash.h" #define NO_UNDEF #include "libdwP.h" diff --git a/libdw/dwarf_begin_elf.c b/libdw/dwarf_begin_elf.c index 391a8b85..b5fb7c91 100644 --- a/libdw/dwarf_begin_elf.c +++ b/libdw/dwarf_begin_elf.c @@ -1,5 +1,5 @@ /* Create descriptor from ELF descriptor for processing file. - Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009 Red Hat, Inc. + Copyright (C) 2002-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2002. @@ -66,6 +66,7 @@ static const char dwarf_scnnames[IDX_last][17] = { [IDX_debug_info] = ".debug_info", + [IDX_debug_types] = ".debug_types", [IDX_debug_abbrev] = ".debug_abbrev", [IDX_debug_aranges] = ".debug_aranges", [IDX_debug_line] = ".debug_line", @@ -73,10 +74,6 @@ static const char dwarf_scnnames[IDX_last][17] = [IDX_debug_loc] = ".debug_loc", [IDX_debug_pubnames] = ".debug_pubnames", [IDX_debug_str] = ".debug_str", - [IDX_debug_funcnames] = ".debug_funcnames", - [IDX_debug_typenames] = ".debug_typenames", - [IDX_debug_varnames] = ".debug_varnames", - [IDX_debug_weaknames] = ".debug_weaknames", [IDX_debug_macinfo] = ".debug_macinfo", [IDX_debug_ranges] = ".debug_ranges" }; @@ -249,8 +246,10 @@ dwarf_begin_elf (elf, cmd, scngrp) /* Allocate the data structure. */ Dwarf *result = (Dwarf *) calloc (1, sizeof (Dwarf) + mem_default_size); - if (result == NULL) + if (unlikely (result == NULL) + || unlikely (Dwarf_Sig8_Hash_init (&result->sig8_hash, 11) < 0)) { + free (result); __libdw_seterrno (DWARF_E_NOMEM); return NULL; } @@ -271,7 +270,6 @@ dwarf_begin_elf (elf, cmd, scngrp) result->mem_tail->remaining = result->mem_tail->size; result->mem_tail->prev = NULL; - if (cmd == DWARF_C_READ || cmd == DWARF_C_RDWR) { /* If the caller provides a section group we get the DWARF diff --git a/libdw/dwarf_cuoffset.c b/libdw/dwarf_cuoffset.c index 10238b43..47653200 100644 --- a/libdw/dwarf_cuoffset.c +++ b/libdw/dwarf_cuoffset.c @@ -1,5 +1,5 @@ /* Return offset of DIE in CU. - Copyright (C) 2003 Red Hat, Inc. + Copyright (C) 2003-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2003. @@ -62,7 +62,5 @@ dwarf_cuoffset (die) { return (die == NULL ? (Dwarf_Off) -1l - : (die->addr - - die->cu->dbg->sectiondata[IDX_debug_info]->d_buf - - die->cu->start)); + : (die->addr - cu_data (die->cu)->d_buf - die->cu->start)); } diff --git a/libdw/dwarf_diecu.c b/libdw/dwarf_diecu.c index a62b8222..cd98cf61 100644 --- a/libdw/dwarf_diecu.c +++ b/libdw/dwarf_diecu.c @@ -1,5 +1,5 @@ /* Return CU DIE containing given DIE. - Copyright (C) 2005, 2008 Red Hat, Inc. + Copyright (C) 2005-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -65,14 +65,7 @@ dwarf_diecu (die, result, address_sizep, offset_sizep) if (die == NULL) return NULL; - /* Clear the entire DIE structure. This signals we have not yet - determined any of the information. */ - memset (result, '\0', sizeof (Dwarf_Die)); - - result->addr = ((char *) die->cu->dbg->sectiondata[IDX_debug_info]->d_buf - + DIE_OFFSET_FROM_CU_OFFSET (die->cu->start, - die->cu->offset_size)); - result->cu = die->cu; + *result = CUDIE (die->cu); if (address_sizep != NULL) *address_sizep = die->cu->address_size; diff --git a/libdw/dwarf_dieoffset.c b/libdw/dwarf_dieoffset.c index 4d712f7f..ac4a84c8 100644 --- a/libdw/dwarf_dieoffset.c +++ b/libdw/dwarf_dieoffset.c @@ -1,5 +1,5 @@ /* Return offset of DIE. - Copyright (C) 2003, 2005 Red Hat, Inc. + Copyright (C) 2003-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2003. @@ -62,7 +62,6 @@ dwarf_dieoffset (die) { return (die == NULL ? ~0ul - : (Dwarf_Off) (die->addr - - die->cu->dbg->sectiondata[IDX_debug_info]->d_buf)); + : (Dwarf_Off) (die->addr - cu_data (die->cu)->d_buf)); } INTDEF(dwarf_dieoffset) diff --git a/libdw/dwarf_end.c b/libdw/dwarf_end.c index fda37fc1..ec10542e 100644 --- a/libdw/dwarf_end.c +++ b/libdw/dwarf_end.c @@ -1,5 +1,5 @@ /* Release debugging handling context. - Copyright (C) 2002, 2003, 2004, 2005, 2006, 2009 Red Hat, Inc. + Copyright (C) 2002-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2002. @@ -86,10 +86,13 @@ dwarf_end (dwarf) /* Clean up the CFI cache. */ __libdw_destroy_frame_cache (dwarf->cfi); + Dwarf_Sig8_Hash_free (&dwarf->sig8_hash); + /* The search tree for the CUs. NB: the CU data itself is allocated separately, but the abbreviation hash tables need to be handled. */ tdestroy (dwarf->cu_tree, cu_free); + tdestroy (dwarf->tu_tree, cu_free); struct libdw_memblock *memp = dwarf->mem_tail; /* The first block is allocated together with the Dwarf object. */ diff --git a/libdw/dwarf_formaddr.c b/libdw/dwarf_formaddr.c index 9938be7e..a8c786ff 100644 --- a/libdw/dwarf_formaddr.c +++ b/libdw/dwarf_formaddr.c @@ -1,5 +1,5 @@ /* Return address represented by attribute. - Copyright (C) 2003, 2005 Red Hat, Inc. + Copyright (C) 2003-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2003. @@ -71,7 +71,7 @@ dwarf_formaddr (attr, return_addr) } if (__libdw_read_address (attr->cu->dbg, - IDX_debug_info, attr->valp, + cu_sec_idx (attr->cu), attr->valp, attr->cu->address_size, return_addr)) return -1; diff --git a/libdw/dwarf_formblock.c b/libdw/dwarf_formblock.c index 51396d47..4eb815c4 100644 --- a/libdw/dwarf_formblock.c +++ b/libdw/dwarf_formblock.c @@ -1,5 +1,5 @@ /* Return block represented by attribute. - Copyright (C) 2004, 2005 Red Hat, Inc. + Copyright (C) 2004-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2004. @@ -84,6 +84,7 @@ dwarf_formblock (attr, return_block) break; case DW_FORM_block: + case DW_FORM_exprloc: datap = attr->valp; get_uleb128 (return_block->length, datap); return_block->data = (unsigned char *) datap; @@ -94,9 +95,10 @@ dwarf_formblock (attr, return_block) return -1; } - if (return_block->data + return_block->length - > ((unsigned char *) attr->cu->dbg->sectiondata[IDX_debug_info]->d_buf - + attr->cu->dbg->sectiondata[IDX_debug_info]->d_size)) + if (unlikely (cu_data (attr->cu)->d_size + - (return_block->data + - (unsigned char *) cu_data (attr->cu)->d_buf) + < return_block->length)) { /* Block does not fit. */ __libdw_seterrno (DWARF_E_INVALID_DWARF); diff --git a/libdw/dwarf_formref.c b/libdw/dwarf_formref.c index b8463b70..e4d35ae8 100644 --- a/libdw/dwarf_formref.c +++ b/libdw/dwarf_formref.c @@ -1,5 +1,5 @@ /* Return reference offset represented by attribute. - Copyright (C) 2003, 2005, 2007, 2008 Red Hat, Inc. + Copyright (C) 2003-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2003. @@ -92,6 +92,7 @@ __libdw_formref (attr, return_offset) break; case DW_FORM_ref_addr: + case DW_FORM_ref_sig8: __libdw_seterrno (DWARF_E_INVALID_REFERENCE); return -1; diff --git a/libdw/dwarf_formref_die.c b/libdw/dwarf_formref_die.c index a004a0fd..65242586 100644 --- a/libdw/dwarf_formref_die.c +++ b/libdw/dwarf_formref_die.c @@ -1,5 +1,5 @@ /* Look up the DIE in a reference-form attribute. - Copyright (C) 2005, 2007 Red Hat, Inc. + Copyright (C) 2005-2010 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,39 +51,81 @@ # include <config.h> #endif +#include <string.h> #include "libdwP.h" #include <dwarf.h> Dwarf_Die * -dwarf_formref_die (attr, die_mem) +dwarf_formref_die (attr, result) Dwarf_Attribute *attr; - Dwarf_Die *die_mem; + Dwarf_Die *result; { if (attr == NULL) return NULL; + struct Dwarf_CU *cu = attr->cu; + Dwarf_Off offset; if (attr->form == DW_FORM_ref_addr) { /* This has an absolute offset. */ - uint8_t ref_size = (attr->cu->version == 2 - ? attr->cu->address_size - : attr->cu->offset_size); + uint8_t ref_size = (cu->version == 2 + ? cu->address_size + : cu->offset_size); - if (__libdw_read_offset (attr->cu->dbg, IDX_debug_info, attr->valp, + if (__libdw_read_offset (cu->dbg, IDX_debug_info, attr->valp, ref_size, &offset, IDX_debug_info, 0)) return NULL; + + return INTUSE(dwarf_offdie) (cu->dbg, offset, result); + } + + Elf_Data *data; + if (attr->form == DW_FORM_ref_sig8) + { + /* This doesn't have an offset, but instead a value we + have to match in the .debug_types type unit headers. */ + + uint64_t sig = read_8ubyte_unaligned (cu->dbg, attr->valp); + cu = Dwarf_Sig8_Hash_find (&cu->dbg->sig8_hash, sig, NULL); + if (cu == NULL) + /* Not seen before. We have to scan through the type units. */ + do + { + cu = __libdw_intern_next_unit (attr->cu->dbg, true); + if (cu == NULL) + { + __libdw_seterrno (INTUSE(dwarf_errno) () + ?: DWARF_E_INVALID_REFERENCE); + return NULL; + } + Dwarf_Sig8_Hash_insert (&cu->dbg->sig8_hash, sig, cu); + } + while (cu->type_sig8 != sig); + + data = cu->dbg->sectiondata[IDX_debug_types]; + offset = cu->type_offset; } else { /* Other forms produce an offset from the CU. */ if (unlikely (__libdw_formref (attr, &offset) != 0)) return NULL; - offset += attr->cu->start; + + data = cu_data (cu); + } + + if (unlikely (data->d_size - cu->start <= offset)) + { + __libdw_seterrno (DWARF_E_INVALID_DWARF); + return NULL; } - return INTUSE(dwarf_offdie) (attr->cu->dbg, offset, die_mem); + memset (result, '\0', sizeof (Dwarf_Die)); + result->addr = (char *) data->d_buf + cu->start + offset; + result->cu = cu; + return result; } INTDEF (dwarf_formref_die) diff --git a/libdw/dwarf_formstring.c b/libdw/dwarf_formstring.c index f95d31b8..1dee9b2d 100644 --- a/libdw/dwarf_formstring.c +++ b/libdw/dwarf_formstring.c @@ -1,5 +1,5 @@ /* Return string associated with given attribute. - Copyright (C) 2003, 2004, 2005 Red Hat, Inc. + Copyright (C) 2003-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2003. @@ -79,7 +79,7 @@ dwarf_formstring (attrp) } uint64_t off; - if (__libdw_read_offset (dbg, IDX_debug_info, attrp->valp, + if (__libdw_read_offset (dbg, cu_sec_idx (attrp->cu), attrp->valp, attrp->cu->offset_size, &off, IDX_debug_str, 1)) return NULL; diff --git a/libdw/dwarf_formudata.c b/libdw/dwarf_formudata.c index d9d0a1cd..573a5783 100644 --- a/libdw/dwarf_formudata.c +++ b/libdw/dwarf_formudata.c @@ -1,5 +1,5 @@ /* Return unsigned constant represented by attribute. - Copyright (C) 2003-2009 Red Hat, Inc. + Copyright (C) 2003-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2003. @@ -73,27 +73,28 @@ __libdw_formptr (Dwarf_Attribute *attr, int sec_index, Dwarf_Word offset; if (attr->form == DW_FORM_sec_offset) { - if (__libdw_read_offset (attr->cu->dbg, IDX_debug_info, attr->valp, + if (__libdw_read_offset (attr->cu->dbg, cu_sec_idx (attr->cu), attr->valp, attr->cu->offset_size, &offset, sec_index, 0)) return NULL; } else if (attr->cu->version > 3) goto invalid; - - switch (attr->form) - { - case DW_FORM_data4: - case DW_FORM_data8: - if (__libdw_read_offset (attr->cu->dbg, IDX_debug_info, attr->valp, - attr->form == DW_FORM_data4 ? 4 : 8, - &offset, sec_index, 0)) - return NULL; - break; - - default: - if (INTUSE(dwarf_formudata) (attr, &offset)) - return NULL; - }; + else + switch (attr->form) + { + case DW_FORM_data4: + case DW_FORM_data8: + if (__libdw_read_offset (attr->cu->dbg, cu_sec_idx (attr->cu), + attr->valp, + attr->form == DW_FORM_data4 ? 4 : 8, + &offset, sec_index, 0)) + return NULL; + break; + + default: + if (INTUSE(dwarf_formudata) (attr, &offset)) + return NULL; + }; unsigned char *readp = d->d_buf + offset; unsigned char *endp = d->d_buf + d->d_size; @@ -133,7 +134,8 @@ dwarf_formudata (attr, return_uval) case DW_FORM_data4: case DW_FORM_data8: - if (__libdw_read_address (attr->cu->dbg, IDX_debug_info, attr->valp, + if (__libdw_read_address (attr->cu->dbg, cu_sec_idx (attr->cu), + attr->valp, attr->form == DW_FORM_data4 ? 4 : 8, return_uval)) return -1; diff --git a/libdw/dwarf_frame_cfa.c b/libdw/dwarf_frame_cfa.c index 0ba26b2f..2f3268a8 100644 --- a/libdw/dwarf_frame_cfa.c +++ b/libdw/dwarf_frame_cfa.c @@ -1,5 +1,5 @@ /* Get CFA expression for frame. - Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2009-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -83,7 +83,7 @@ dwarf_frame_cfa (fs, ops, nops) /* Parse the expression into internal form. */ result = __libdw_intern_expression (NULL, fs->cache->other_byte_order, - fs->cache->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8, + fs->cache->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8, 4, &fs->cache->expr_tree, &fs->cfa_data.expr, false, false, ops, nops, IDX_debug_frame); break; diff --git a/libdw/dwarf_frame_register.c b/libdw/dwarf_frame_register.c index e42b76bf..ae0db020 100644 --- a/libdw/dwarf_frame_register.c +++ b/libdw/dwarf_frame_register.c @@ -129,7 +129,7 @@ dwarf_frame_register (fs, regno, ops_mem, ops, nops) /* Parse the expression into internal form. */ if (__libdw_intern_expression (NULL, fs->cache->other_byte_order, - address_size, + address_size, 4, &fs->cache->expr_tree, &block, true, reg->rule == reg_val_expression, ops, nops, IDX_debug_frame) < 0) diff --git a/libdw/dwarf_getaranges.c b/libdw/dwarf_getaranges.c index 72334f5f..cced9bf8 100644 --- a/libdw/dwarf_getaranges.c +++ b/libdw/dwarf_getaranges.c @@ -1,5 +1,5 @@ /* Return list address ranges. - Copyright (C) 2000-2009 Red Hat, Inc. + Copyright (C) 2000-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2000. @@ -199,7 +199,8 @@ dwarf_getaranges (dbg, aranges, naranges) else offset_size = 4; new_arange->arange.offset = DIE_OFFSET_FROM_CU_OFFSET (offset, - offset_size); + offset_size, + false); /* Sanity-check the data. */ if (new_arange->arange.offset diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c index f362fe22..e960ef9e 100644 --- a/libdw/dwarf_getlocation.c +++ b/libdw/dwarf_getlocation.c @@ -165,16 +165,11 @@ check_constant_offset (Dwarf_Attribute *attr, case DW_FORM_data1: case DW_FORM_data2: + case DW_FORM_data4: + case DW_FORM_data8: case DW_FORM_sdata: case DW_FORM_udata: break; - - case DW_FORM_data4: - case DW_FORM_data8: - /* These are loclistptr, not constants. - XXX check cu->version > 3??? - */ - return 1; } /* Check whether we already cached this location. */ @@ -219,8 +214,8 @@ check_constant_offset (Dwarf_Attribute *attr, int internal_function -__libdw_intern_expression (Dwarf *dbg, - bool other_byte_order, unsigned int address_size, +__libdw_intern_expression (Dwarf *dbg, bool other_byte_order, + unsigned int address_size, unsigned int ref_size, void **cache, const Dwarf_Block *block, bool cfap, bool valuep, Dwarf_Op **llbuf, size_t *listlen, int sec_index) @@ -272,6 +267,13 @@ __libdw_intern_expression (Dwarf *dbg, return -1; break; + case DW_OP_call_ref: + /* DW_FORM_ref_addr, depends on offset size of CU. */ + if (__libdw_read_offset_inc (dbg, sec_index, &data, ref_size, + &newloc->number, IDX_debug_info, 0)) + return -1; + break; + case DW_OP_deref: case DW_OP_dup: case DW_OP_drop: @@ -303,7 +305,6 @@ __libdw_intern_expression (Dwarf *dbg, case DW_OP_reg0 ... DW_OP_reg31: case DW_OP_nop: case DW_OP_push_object_address: - case DW_OP_call_ref: case DW_OP_call_frame_cfa: case DW_OP_form_tls_address: case DW_OP_GNU_push_tls_address: @@ -521,7 +522,10 @@ getlocation (struct Dwarf_CU *cu, const Dwarf_Block *block, Dwarf_Op **llbuf, size_t *listlen, int sec_index) { return __libdw_intern_expression (cu->dbg, cu->dbg->other_byte_order, - cu->address_size, &cu->locs, block, + cu->address_size, (cu->version == 2 + ? cu->address_size + : cu->offset_size), + &cu->locs, block, false, false, llbuf, listlen, sec_index); } @@ -532,19 +536,19 @@ dwarf_getlocation (attr, llbuf, listlen) Dwarf_Op **llbuf; size_t *listlen; { + if (! attr_ok (attr)) + return -1; + int result = check_constant_offset (attr, llbuf, listlen); if (result != 1) return result; - if (! attr_ok (attr)) - return -1; - /* If it has a block form, it's a single location expression. */ Dwarf_Block block; if (INTUSE(dwarf_formblock) (attr, &block) != 0) return -1; - return getlocation (attr->cu, &block, llbuf, listlen, IDX_debug_info); + return getlocation (attr->cu, &block, llbuf, listlen, cu_sec_idx (attr->cu)); } int @@ -569,7 +573,7 @@ dwarf_getlocation_addr (attr, address, llbufs, listlens, maxlocs) return 0; if (llbufs != NULL && getlocation (attr->cu, &block, &llbufs[0], &listlens[0], - IDX_debug_info) != 0) + cu_sec_idx (attr->cu)) != 0) return -1; return listlens[0] == 0 ? 0 : 1; } diff --git a/libdw/dwarf_getsrclines.c b/libdw/dwarf_getsrclines.c index 43fad99a..6840b2b5 100644 --- a/libdw/dwarf_getsrclines.c +++ b/libdw/dwarf_getsrclines.c @@ -1,5 +1,5 @@ /* Return line number information of CU. - Copyright (C) 2004-2009 Red Hat, Inc. + Copyright (C) 2004-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2004. @@ -86,31 +86,6 @@ compare_lines (const void *a, const void *b) return (*p1)->addr - (*p2)->addr; } - -/* Adds a new line to the matrix. We cannot define a function because - we want to use alloca. */ -#define NEW_LINE(end_seq) \ - do { \ - /* Add the new line. */ \ - new_line = (struct linelist *) alloca (sizeof (struct linelist)); \ - \ - /* Set the line information. */ \ - new_line->line.addr = address; \ - new_line->line.file = file; \ - new_line->line.line = line; \ - new_line->line.column = column; \ - new_line->line.is_stmt = is_stmt; \ - new_line->line.basic_block = basic_block; \ - new_line->line.end_sequence = end_seq; \ - new_line->line.prologue_end = prologue_end; \ - new_line->line.epilogue_begin = epilogue_begin; \ - \ - new_line->next = linelist; \ - linelist = new_line; \ - ++nlinelist; \ - } while (0) - - int dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) { @@ -175,7 +150,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) /* The next element of the header is the version identifier. */ uint_fast16_t version = read_2ubyte_unaligned_inc (dbg, linep); - if (unlikely (version > DWARF_VERSION)) + if (unlikely (version < 2) || unlikely (version > 4)) { __libdw_seterrno (DWARF_E_VERSION); goto out; @@ -192,13 +167,23 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) /* Next the minimum instruction length. */ uint_fast8_t minimum_instr_len = *linep++; - /* Then the flag determining the default value of the is_stmt - register. */ + /* Next the maximum operations per instruction, in version 4 format. */ + uint_fast8_t max_ops_per_instr = 1; + if (version >= 4) + { + if (unlikely (lineendp - linep < 5)) + goto invalid_data; + max_ops_per_instr = *linep++; + if (unlikely (max_ops_per_instr == 0)) + goto invalid_data; + } + + /* Then the flag determining the default value of the is_stmt + register. */ uint_fast8_t default_is_stmt = *linep++; /* Now the line base. */ - int_fast8_t line_base = *((int_fast8_t *) linep); - ++linep; + int_fast8_t line_base = (int8_t) *linep++; /* And the line range. */ uint_fast8_t line_range = *linep++; @@ -209,9 +194,9 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) /* Remember array with the standard opcode length (-1 to account for the opcode with value zero not being mentioned). */ const uint8_t *standard_opcode_lengths = linep - 1; - linep += opcode_base - 1; - if (unlikely (linep >= lineendp)) + if (unlikely (lineendp - linep < opcode_base - 1)) goto invalid_data; + linep += opcode_base - 1; /* First comes the list of directories. Add the compilation directory first since the index zero is used for it. */ @@ -338,21 +323,77 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) /* We are about to process the statement program. Initialize the state machine registers (see 6.2.2 in the v2.1 specification). */ - Dwarf_Word address = 0; - size_t file = 1; - size_t line = 1; - size_t column = 0; + Dwarf_Word addr = 0; + unsigned int op_index = 0; + unsigned int file = 1; + int line = 1; + unsigned int column = 0; uint_fast8_t is_stmt = default_is_stmt; - int basic_block = 0; - int prologue_end = 0; - int epilogue_begin = 0; + bool basic_block = false; + bool prologue_end = false; + bool epilogue_begin = false; + unsigned int isa = 0; + unsigned int discriminator = 0; + + /* Apply the "operation advance" from a special opcode + or DW_LNS_advance_pc (as per DWARF4 6.2.5.1). */ + inline void advance_pc (unsigned int op_advance) + { + addr += minimum_instr_len * ((op_index + op_advance) + / max_ops_per_instr); + op_index = (op_index + op_advance) % max_ops_per_instr; + } - /* Process the instructions. */ + /* Process the instructions. */ struct linelist *linelist = NULL; unsigned int nlinelist = 0; + + /* Adds a new line to the matrix. + We cannot simply define a function because we want to use alloca. */ +#define NEW_LINE(end_seq) \ + do { \ + if (unlikely (add_new_line (alloca (sizeof (struct linelist)), \ + end_seq))) \ + goto invalid_data; \ + } while (0) + + inline bool add_new_line (struct linelist *new_line, bool end_sequence) + { + /* Set the line information. For some fields we use bitfields, + so we would lose information if the encoded values are too large. + Check just for paranoia, and call the data "invalid" if it + violates our assumptions on reasonable limits for the values. */ +#define SET(field) \ + do { \ + new_line->line.field = field; \ + if (unlikely (new_line->line.field != field)) \ + return true; \ + } while (0) + + SET (addr); + SET (op_index); + SET (file); + SET (line); + SET (column); + SET (is_stmt); + SET (basic_block); + SET (end_sequence); + SET (prologue_end); + SET (epilogue_begin); + SET (isa); + SET (discriminator); + +#undef SET + + new_line->next = linelist; + linelist = new_line; + ++nlinelist; + + return false; + } + while (linep < lineendp) { - struct linelist *new_line; unsigned int opcode; unsigned int u128; int s128; @@ -371,32 +412,30 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) */ int line_increment = (line_base + (opcode - opcode_base) % line_range); - unsigned int address_increment = (minimum_instr_len - * ((opcode - opcode_base) - / line_range)); /* Perform the increments. */ line += line_increment; - address += address_increment; + advance_pc ((opcode - opcode_base) / line_range); /* Add a new line with the current state machine values. */ NEW_LINE (0); /* Reset the flags. */ - basic_block = 0; - prologue_end = 0; - epilogue_begin = 0; + basic_block = false; + prologue_end = false; + epilogue_begin = false; + discriminator = 0; } else if (opcode == 0) { /* This an extended opcode. */ - if (unlikely (linep + 2 > lineendp)) + if (unlikely (lineendp - linep < 2)) goto invalid_data; /* The length. */ - unsigned int len = *linep++; + uint_fast8_t len = *linep++; - if (unlikely (linep + len > lineendp)) + if (unlikely ((size_t) (lineendp - linep) < len)) goto invalid_data; /* The sub-opcode. */ @@ -410,22 +449,28 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) NEW_LINE (1); /* Reset the registers. */ - address = 0; + addr = 0; + op_index = 0; file = 1; line = 1; column = 0; is_stmt = default_is_stmt; - basic_block = 0; - prologue_end = 0; - epilogue_begin = 0; + basic_block = false; + prologue_end = false; + epilogue_begin = false; + isa = 0; + discriminator = 0; break; case DW_LNE_set_address: /* The value is an address. The size is defined as apporiate for the target machine. We use the address size field from the CU header. */ + op_index = 0; + if (unlikely (lineendp - linep < cu->address_size)) + goto invalid_data; if (__libdw_read_address_inc (dbg, IDX_debug_line, &linep, - cu->address_size, &address)) + cu->address_size, &addr)) goto out; break; @@ -475,13 +520,23 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) } break; + case DW_LNE_set_discriminator: + /* Takes one ULEB128 parameter, the discriminator. */ + if (unlikely (standard_opcode_lengths[opcode] != 1)) + goto invalid_data; + + get_uleb128 (discriminator, linep); + break; + default: /* Unknown, ignore it. */ + if (unlikely ((size_t) (lineendp - (linep - 1)) < len)) + goto invalid_data; linep += len - 1; break; } } - else if (opcode <= DW_LNS_set_epilogue_begin) + else if (opcode <= DW_LNS_set_isa) { /* This is a known standard opcode. */ switch (opcode) @@ -495,13 +550,10 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) NEW_LINE (0); /* Reset the flags. */ - basic_block = 0; - /* XXX Whether the following two lines are necessary is - unclear. I guess the current v2.1 specification has - a bug in that it says clearing these two registers is - not necessary. */ - prologue_end = 0; - epilogue_begin = 0; + basic_block = false; + prologue_end = false; + epilogue_begin = false; + discriminator = 0; break; case DW_LNS_advance_pc: @@ -511,7 +563,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) goto invalid_data; get_uleb128 (u128, linep); - address += minimum_instr_len * u128; + advance_pc (u128); break; case DW_LNS_advance_line: @@ -555,7 +607,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) if (unlikely (standard_opcode_lengths[opcode] != 0)) goto invalid_data; - basic_block = 1; + basic_block = true; break; case DW_LNS_const_add_pc: @@ -563,17 +615,18 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) if (unlikely (standard_opcode_lengths[opcode] != 0)) goto invalid_data; - address += (minimum_instr_len - * ((255 - opcode_base) / line_range)); + advance_pc ((255 - opcode_base) / line_range); break; case DW_LNS_fixed_advance_pc: /* Takes one 16 bit parameter which is added to the address. */ - if (unlikely (standard_opcode_lengths[opcode] != 1)) + if (unlikely (standard_opcode_lengths[opcode] != 1) + || unlikely (lineendp - linep < 2)) goto invalid_data; - address += read_2ubyte_unaligned_inc (dbg, linep); + addr += read_2ubyte_unaligned_inc (dbg, linep); + op_index = 0; break; case DW_LNS_set_prologue_end: @@ -581,7 +634,7 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) if (unlikely (standard_opcode_lengths[opcode] != 0)) goto invalid_data; - prologue_end = 1; + prologue_end = true; break; case DW_LNS_set_epilogue_begin: @@ -589,7 +642,15 @@ dwarf_getsrclines (Dwarf_Die *cudie, Dwarf_Lines **lines, size_t *nlines) if (unlikely (standard_opcode_lengths[opcode] != 0)) goto invalid_data; - epilogue_begin = 1; + epilogue_begin = true; + break; + + case DW_LNS_set_isa: + /* Takes one uleb128 parameter which is stored in isa. */ + if (unlikely (standard_opcode_lengths[opcode] != 1)) + goto invalid_data; + + get_uleb128 (isa, linep); break; } } diff --git a/libdw/dwarf_linediscriminator.c b/libdw/dwarf_linediscriminator.c new file mode 100644 index 00000000..d17a99f2 --- /dev/null +++ b/libdw/dwarf_linediscriminator.c @@ -0,0 +1,66 @@ +/* Return code path discriminator in line record. + Copyright (C) 2010 Red Hat, Inc. + This file is part of Red Hat elfutils. + + Red Hat elfutils is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by the + Free Software Foundation; version 2 of the License. + + Red Hat elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License along + with Red Hat elfutils; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. + + In addition, as a special exception, Red Hat, Inc. gives You the + additional right to link the code of Red Hat elfutils with code licensed + under any Open Source Initiative certified open source license + (http://www.opensource.org/licenses/index.php) which requires the + distribution of source code with any binary distribution and to + distribute linked combinations of the two. Non-GPL Code permitted under + this exception must only link to the code of Red Hat elfutils through + those well defined interfaces identified in the file named EXCEPTION + found in the source code files (the "Approved Interfaces"). The files + of Non-GPL Code may instantiate templates or use macros or inline + functions from the Approved Interfaces without causing the resulting + work to be covered by the GNU General Public License. Only Red Hat, + Inc. may make changes or additions to the list of Approved Interfaces. + Red Hat's grant of this exception is conditioned upon your not adding + any new exceptions. If you wish to add a new Approved Interface or + exception, please contact Red Hat. You must obey the GNU General Public + License in all respects for all of the Red Hat elfutils code and other + code used in conjunction with Red Hat elfutils except the Non-GPL Code + covered by this exception. If you modify this file, you may extend this + exception to your version of the file, but you are not obligated to do + so. If you do not wish to provide this exception without modification, + you must delete this exception statement from your version and license + this file solely under the GPL without exception. + + Red Hat elfutils is an included package of the Open Invention Network. + An included package of the Open Invention Network is a package for which + Open Invention Network licensees cross-license their patents. No patent + license is granted, either expressly or impliedly, by designation as an + included package. Should you wish to participate in the Open Invention + Network licensing program, please visit www.openinventionnetwork.com + <http://www.openinventionnetwork.com>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "libdwP.h" + + +int +dwarf_linediscriminator (Dwarf_Line *line, unsigned int *discp) +{ + if (line == NULL) + return -1; + + *discp = line->discriminator; + + return 0; +} diff --git a/libdw/dwarf_lineisa.c b/libdw/dwarf_lineisa.c new file mode 100644 index 00000000..064761e0 --- /dev/null +++ b/libdw/dwarf_lineisa.c @@ -0,0 +1,66 @@ +/* Return ISA in line. + Copyright (C) 2010 Red Hat, Inc. + This file is part of Red Hat elfutils. + + Red Hat elfutils is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by the + Free Software Foundation; version 2 of the License. + + Red Hat elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License along + with Red Hat elfutils; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. + + In addition, as a special exception, Red Hat, Inc. gives You the + additional right to link the code of Red Hat elfutils with code licensed + under any Open Source Initiative certified open source license + (http://www.opensource.org/licenses/index.php) which requires the + distribution of source code with any binary distribution and to + distribute linked combinations of the two. Non-GPL Code permitted under + this exception must only link to the code of Red Hat elfutils through + those well defined interfaces identified in the file named EXCEPTION + found in the source code files (the "Approved Interfaces"). The files + of Non-GPL Code may instantiate templates or use macros or inline + functions from the Approved Interfaces without causing the resulting + work to be covered by the GNU General Public License. Only Red Hat, + Inc. may make changes or additions to the list of Approved Interfaces. + Red Hat's grant of this exception is conditioned upon your not adding + any new exceptions. If you wish to add a new Approved Interface or + exception, please contact Red Hat. You must obey the GNU General Public + License in all respects for all of the Red Hat elfutils code and other + code used in conjunction with Red Hat elfutils except the Non-GPL Code + covered by this exception. If you modify this file, you may extend this + exception to your version of the file, but you are not obligated to do + so. If you do not wish to provide this exception without modification, + you must delete this exception statement from your version and license + this file solely under the GPL without exception. + + Red Hat elfutils is an included package of the Open Invention Network. + An included package of the Open Invention Network is a package for which + Open Invention Network licensees cross-license their patents. No patent + license is granted, either expressly or impliedly, by designation as an + included package. Should you wish to participate in the Open Invention + Network licensing program, please visit www.openinventionnetwork.com + <http://www.openinventionnetwork.com>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "libdwP.h" + + +int +dwarf_lineisa (Dwarf_Line *line, unsigned int *isap) +{ + if (line == NULL) + return -1; + + *isap = line->isa; + + return 0; +} diff --git a/libdw/dwarf_lineop_index.c b/libdw/dwarf_lineop_index.c new file mode 100644 index 00000000..3b433104 --- /dev/null +++ b/libdw/dwarf_lineop_index.c @@ -0,0 +1,66 @@ +/* Return line VLIW operation index. + Copyright (C) 2010 Red Hat, Inc. + This file is part of Red Hat elfutils. + + Red Hat elfutils is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by the + Free Software Foundation; version 2 of the License. + + Red Hat elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License along + with Red Hat elfutils; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. + + In addition, as a special exception, Red Hat, Inc. gives You the + additional right to link the code of Red Hat elfutils with code licensed + under any Open Source Initiative certified open source license + (http://www.opensource.org/licenses/index.php) which requires the + distribution of source code with any binary distribution and to + distribute linked combinations of the two. Non-GPL Code permitted under + this exception must only link to the code of Red Hat elfutils through + those well defined interfaces identified in the file named EXCEPTION + found in the source code files (the "Approved Interfaces"). The files + of Non-GPL Code may instantiate templates or use macros or inline + functions from the Approved Interfaces without causing the resulting + work to be covered by the GNU General Public License. Only Red Hat, + Inc. may make changes or additions to the list of Approved Interfaces. + Red Hat's grant of this exception is conditioned upon your not adding + any new exceptions. If you wish to add a new Approved Interface or + exception, please contact Red Hat. You must obey the GNU General Public + License in all respects for all of the Red Hat elfutils code and other + code used in conjunction with Red Hat elfutils except the Non-GPL Code + covered by this exception. If you modify this file, you may extend this + exception to your version of the file, but you are not obligated to do + so. If you do not wish to provide this exception without modification, + you must delete this exception statement from your version and license + this file solely under the GPL without exception. + + Red Hat elfutils is an included package of the Open Invention Network. + An included package of the Open Invention Network is a package for which + Open Invention Network licensees cross-license their patents. No patent + license is granted, either expressly or impliedly, by designation as an + included package. Should you wish to participate in the Open Invention + Network licensing program, please visit www.openinventionnetwork.com + <http://www.openinventionnetwork.com>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include "libdwP.h" + + +int +dwarf_lineop_index (Dwarf_Line *line, unsigned int *idxp) +{ + if (line == NULL) + return -1; + + *idxp = line->op_index; + + return 0; +} diff --git a/libdw/dwarf_next_cfi.c b/libdw/dwarf_next_cfi.c index d5d4cfdb..0e90457d 100644 --- a/libdw/dwarf_next_cfi.c +++ b/libdw/dwarf_next_cfi.c @@ -1,5 +1,5 @@ /* Advance to next CFI entry. - Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2009-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -145,25 +145,48 @@ dwarf_next_cfi (e_ident, data, eh_frame_p, off, next_off, entry) /* Read the version stamp. Always an 8-bit value. */ uint8_t version = *bytes++; - if (version != 1 && version != 3) + if (version != 1 && (unlikely (version < 3) || unlikely (version > 4))) goto invalid; entry->cie.augmentation = (const char *) bytes; bytes = memchr (bytes, '\0', limit - bytes); - if (bytes == NULL) + if (unlikely (bytes == NULL)) goto invalid; ++bytes; + /* The address size for CFI is implicit in the ELF class. */ + uint_fast8_t address_size = e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8; + uint_fast8_t segment_size = 0; + if (version >= 4) + { + if (unlikely (limit - bytes < 5)) + goto invalid; + /* XXX We don't actually support address_size not matching the class. + To do so, we'd have to return it here so that intern_new_cie + could use it choose a specific fde_encoding. */ + if (unlikely (*bytes != address_size)) + { + __libdw_seterrno (DWARF_E_VERSION); + return -1; + } + address_size = *bytes++; + segment_size = *bytes++; + /* We don't actually support segment selectors. We'd have to + roll this into the fde_encoding bits or something. */ + if (unlikely (segment_size != 0)) + { + __libdw_seterrno (DWARF_E_VERSION); + return -1; + } + } + const char *ap = entry->cie.augmentation; /* g++ v2 "eh" has pointer immediately following augmentation string, so it must be handled first. */ if (unlikely (ap[0] == 'e' && ap[1] == 'h')) { - /* The address size for CFI is implicit in the ELF class. */ - unsigned int address_size = e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8; - ap += 2; bytes += address_size; } @@ -171,7 +194,7 @@ dwarf_next_cfi (e_ident, data, eh_frame_p, off, next_off, entry) get_uleb128 (entry->cie.code_alignment_factor, bytes); get_sleb128 (entry->cie.data_alignment_factor, bytes); - if (version == 3) /* DWARF 3 */ + if (version >= 3) /* DWARF 3+ */ get_uleb128 (entry->cie.return_address_register, bytes); else /* DWARF 2 */ entry->cie.return_address_register = *bytes++; diff --git a/libdw/dwarf_nextcu.c b/libdw/dwarf_nextcu.c index e436e115..2e8f4d79 100644 --- a/libdw/dwarf_nextcu.c +++ b/libdw/dwarf_nextcu.c @@ -1,5 +1,5 @@ /* Advance to next CU header. - Copyright (C) 2002-2009 Red Hat, Inc. + Copyright (C) 2002-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2002. @@ -57,26 +57,33 @@ int -dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, - address_sizep, offset_sizep) +dwarf_next_unit (dwarf, off, next_off, header_sizep, versionp, abbrev_offsetp, + address_sizep, offset_sizep, type_signaturep, type_offsetp) Dwarf *dwarf; Dwarf_Off off; Dwarf_Off *next_off; size_t *header_sizep; + Dwarf_Half *versionp; Dwarf_Off *abbrev_offsetp; uint8_t *address_sizep; uint8_t *offset_sizep; + uint64_t *type_signaturep; + Dwarf_Off *type_offsetp; { + const bool debug_types = type_signaturep != NULL; + const size_t sec_idx = debug_types ? IDX_debug_types : IDX_debug_info; + /* Maybe there has been an error before. */ if (dwarf == NULL) return -1; /* If we reached the end before don't do anything. */ if (off == (Dwarf_Off) -1l + || unlikely (dwarf->sectiondata[sec_idx] == NULL) /* Make sure there is enough space in the .debug_info section for at least the initial word. We cannot test the rest since we don't know yet whether this is a 64-bit object or not. */ - || unlikely (off + 4 >= dwarf->sectiondata[IDX_debug_info]->d_size)) + || unlikely (off + 4 >= dwarf->sectiondata[sec_idx]->d_size)) { *next_off = (Dwarf_Off) -1l; return 1; @@ -84,7 +91,7 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, /* This points into the .debug_info section to the beginning of the CU entry. */ - const unsigned char *data = dwarf->sectiondata[IDX_debug_info]->d_buf; + const unsigned char *data = dwarf->sectiondata[sec_idx]->d_buf; const unsigned char *bytes = data + off; /* The format of the CU header is described in dwarf2p1 7.5.1: @@ -122,13 +129,14 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, else if (unlikely (length >= DWARF3_LENGTH_MIN_ESCAPE_CODE && length <= DWARF3_LENGTH_MAX_ESCAPE_CODE)) { + invalid: __libdw_seterrno (DWARF_E_INVALID_DWARF); return -1; } /* Now we know how large the header is. */ - if (unlikely (DIE_OFFSET_FROM_CU_OFFSET (off, offset_size) - >= dwarf->sectiondata[IDX_debug_info]->d_size)) + if (unlikely (DIE_OFFSET_FROM_CU_OFFSET (off, offset_size, debug_types) + >= dwarf->sectiondata[sec_idx]->d_size)) { *next_off = -1; return 1; @@ -138,22 +146,47 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, /* This is a 64-bit DWARF format. */ length = read_8ubyte_unaligned_inc (dwarf, bytes); - /* Read the version stamp. Always a 16-bit value. - XXX Do we need the value? */ - read_2ubyte_unaligned_inc (dwarf, bytes); + /* Read the version stamp. Always a 16-bit value. */ + uint_fast16_t version = read_2ubyte_unaligned_inc (dwarf, bytes); /* Get offset in .debug_abbrev. Note that the size of the entry depends on whether this is a 32-bit or 64-bit DWARF definition. */ uint64_t abbrev_offset; - if (__libdw_read_offset_inc (dwarf, IDX_debug_info, &bytes, offset_size, + if (__libdw_read_offset_inc (dwarf, sec_idx, &bytes, offset_size, &abbrev_offset, IDX_debug_abbrev, 0)) return -1; + /* The address size. Always an 8-bit value. */ + uint8_t address_size = *bytes++; + + if (debug_types) + { + uint64_t type_sig8 = read_8ubyte_unaligned_inc (dwarf, bytes); + + Dwarf_Off type_offset; + if (__libdw_read_offset_inc (dwarf, sec_idx, &bytes, offset_size, + &type_offset, sec_idx, 0)) + return -1; + + /* Validate that the TYPE_OFFSET points past the header. */ + if (unlikely (type_offset < (size_t) (bytes - (data + off)))) + goto invalid; + + *type_signaturep = type_sig8; + if (type_offsetp != NULL) + *type_offsetp = type_offset; + } + + /* Store the header length. */ + if (header_sizep != NULL) + *header_sizep = bytes - (data + off); + + if (versionp != NULL) + *versionp = version; + if (abbrev_offsetp != NULL) *abbrev_offsetp = abbrev_offset; - /* The address size. Always an 8-bit value. */ - uint8_t address_size = *bytes++; if (address_sizep != NULL) *address_sizep = address_size; @@ -161,14 +194,27 @@ dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, if (offset_sizep != NULL) *offset_sizep = offset_size; - /* Store the header length. */ - if (header_sizep != NULL) - *header_sizep = bytes - (data + off); - /* See definition of DIE_OFFSET_FROM_CU_OFFSET macro for an explanation of the trick in this expression. */ *next_off = off + 2 * offset_size - 4 + length; return 0; } +INTDEF(dwarf_next_unit) + +int +dwarf_nextcu (dwarf, off, next_off, header_sizep, abbrev_offsetp, + address_sizep, offset_sizep) + Dwarf *dwarf; + Dwarf_Off off; + Dwarf_Off *next_off; + size_t *header_sizep; + Dwarf_Off *abbrev_offsetp; + uint8_t *address_sizep; + uint8_t *offset_sizep; +{ + return INTUSE(dwarf_next_unit) (dwarf, off, next_off, header_sizep, NULL, + abbrev_offsetp, address_sizep, offset_sizep, + NULL, NULL); +} INTDEF(dwarf_nextcu) diff --git a/libdw/dwarf_offdie.c b/libdw/dwarf_offdie.c index a9886f2c..925fe512 100644 --- a/libdw/dwarf_offdie.c +++ b/libdw/dwarf_offdie.c @@ -1,5 +1,5 @@ /* Return DIE at given offset. - Copyright (C) 2002, 2003, 2005 Red Hat, Inc. + Copyright (C) 2002-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2002. @@ -56,16 +56,15 @@ #include "libdwP.h" -Dwarf_Die * -dwarf_offdie (dbg, offset, result) - Dwarf *dbg; - Dwarf_Off offset; - Dwarf_Die *result; +static Dwarf_Die * +do_offdie (Dwarf *dbg, Dwarf_Off offset, Dwarf_Die *result, bool debug_types) { if (dbg == NULL) return NULL; - if (offset >= dbg->sectiondata[IDX_debug_info]->d_size) + Elf_Data *const data = dbg->sectiondata[debug_types ? IDX_debug_types + : IDX_debug_info]; + if (offset >= data->d_size) { __libdw_seterrno (DWARF_E_INVALID_DWARF); return NULL; @@ -75,10 +74,10 @@ dwarf_offdie (dbg, offset, result) determined any of the information. */ memset (result, '\0', sizeof (Dwarf_Die)); - result->addr = (char *) dbg->sectiondata[IDX_debug_info]->d_buf + offset; + result->addr = (char *) data->d_buf + offset; /* Get the CU. */ - result->cu = __libdw_findcu (dbg, offset); + result->cu = __libdw_findcu (dbg, offset, debug_types); if (result->cu == NULL) { /* This should never happen. The input file is malformed. */ @@ -88,4 +87,23 @@ dwarf_offdie (dbg, offset, result) return result; } + + +Dwarf_Die * +dwarf_offdie (dbg, offset, result) + Dwarf *dbg; + Dwarf_Off offset; + Dwarf_Die *result; +{ + return do_offdie (dbg, offset, result, false); +} INTDEF(dwarf_offdie) + +Dwarf_Die * +dwarf_offdie_types (dbg, offset, result) + Dwarf *dbg; + Dwarf_Off offset; + Dwarf_Die *result; +{ + return do_offdie (dbg, offset, result, true); +} diff --git a/libdw/dwarf_siblingof.c b/libdw/dwarf_siblingof.c index 0d427175..f8e54c18 100644 --- a/libdw/dwarf_siblingof.c +++ b/libdw/dwarf_siblingof.c @@ -1,5 +1,5 @@ /* Return sibling of given DIE. - Copyright (C) 2003, 2004, 2005, 2007, 2008 Red Hat, Inc. + Copyright (C) 2003-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2003. @@ -84,8 +84,7 @@ dwarf_siblingof (die, result) unsigned char *addr = this_die.addr; /* End of the buffer. */ unsigned char *endp - = ((unsigned char *) sibattr.cu->dbg->sectiondata[IDX_debug_info]->d_buf - + sibattr.cu->end); + = ((unsigned char *) cu_data (sibattr.cu)->d_buf + sibattr.cu->end); /* Search for the beginning of the next die on this level. We must not return the dies for children of the given die. */ @@ -103,8 +102,7 @@ dwarf_siblingof (die, result) return -1; /* Compute the next address. */ - addr = ((unsigned char *) - sibattr.cu->dbg->sectiondata[IDX_debug_info]->d_buf + addr = ((unsigned char *) cu_data (sibattr.cu)->d_buf + sibattr.cu->start + offset); } else if (unlikely (addr == NULL) diff --git a/libdw/dwarf_sig8_hash.c b/libdw/dwarf_sig8_hash.c new file mode 100644 index 00000000..53c07eac --- /dev/null +++ b/libdw/dwarf_sig8_hash.c @@ -0,0 +1,62 @@ +/* Implementation of hash table for DWARF .debug_types section content. + Copyright (C) 2010 Red Hat, Inc. + This file is part of Red Hat elfutils. + + Red Hat elfutils is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by the + Free Software Foundation; version 2 of the License. + + Red Hat elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License along + with Red Hat elfutils; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. + + In addition, as a special exception, Red Hat, Inc. gives You the + additional right to link the code of Red Hat elfutils with code licensed + under any Open Source Initiative certified open source license + (http://www.opensource.org/licenses/index.php) which requires the + distribution of source code with any binary distribution and to + distribute linked combinations of the two. Non-GPL Code permitted under + this exception must only link to the code of Red Hat elfutils through + those well defined interfaces identified in the file named EXCEPTION + found in the source code files (the "Approved Interfaces"). The files + of Non-GPL Code may instantiate templates or use macros or inline + functions from the Approved Interfaces without causing the resulting + work to be covered by the GNU General Public License. Only Red Hat, + Inc. may make changes or additions to the list of Approved Interfaces. + Red Hat's grant of this exception is conditioned upon your not adding + any new exceptions. If you wish to add a new Approved Interface or + exception, please contact Red Hat. You must obey the GNU General Public + License in all respects for all of the Red Hat elfutils code and other + code used in conjunction with Red Hat elfutils except the Non-GPL Code + covered by this exception. If you modify this file, you may extend this + exception to your version of the file, but you are not obligated to do + so. If you do not wish to provide this exception without modification, + you must delete this exception statement from your version and license + this file solely under the GPL without exception. + + Red Hat elfutils is an included package of the Open Invention Network. + An included package of the Open Invention Network is a package for which + Open Invention Network licensees cross-license their patents. No patent + license is granted, either expressly or impliedly, by designation as an + included package. Should you wish to participate in the Open Invention + Network licensing program, please visit www.openinventionnetwork.com + <http://www.openinventionnetwork.com>. */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#define NO_UNDEF +#include "dwarf_sig8_hash.h" +#undef NO_UNDEF + +/* This is defined in dwarf_abbrev_hash.c, we can just use it here. */ +#define next_prime __libdwarf_next_prime +extern size_t next_prime (size_t) attribute_hidden; + +#include <dynamicsizehash.c> diff --git a/libdw/dwarf_sig8_hash.h b/libdw/dwarf_sig8_hash.h new file mode 100644 index 00000000..0d8932b5 --- /dev/null +++ b/libdw/dwarf_sig8_hash.h @@ -0,0 +1,59 @@ +/* Hash table for DWARF .debug_types section content. + Copyright (C) 2010 Red Hat, Inc. + This file is part of Red Hat elfutils. + + Red Hat elfutils is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by the + Free Software Foundation; version 2 of the License. + + Red Hat elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License along + with Red Hat elfutils; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. + + In addition, as a special exception, Red Hat, Inc. gives You the + additional right to link the code of Red Hat elfutils with code licensed + under any Open Source Initiative certified open source license + (http://www.opensource.org/licenses/index.php) which requires the + distribution of source code with any binary distribution and to + distribute linked combinations of the two. Non-GPL Code permitted under + this exception must only link to the code of Red Hat elfutils through + those well defined interfaces identified in the file named EXCEPTION + found in the source code files (the "Approved Interfaces"). The files + of Non-GPL Code may instantiate templates or use macros or inline + functions from the Approved Interfaces without causing the resulting + work to be covered by the GNU General Public License. Only Red Hat, + Inc. may make changes or additions to the list of Approved Interfaces. + Red Hat's grant of this exception is conditioned upon your not adding + any new exceptions. If you wish to add a new Approved Interface or + exception, please contact Red Hat. You must obey the GNU General Public + License in all respects for all of the Red Hat elfutils code and other + code used in conjunction with Red Hat elfutils except the Non-GPL Code + covered by this exception. If you modify this file, you may extend this + exception to your version of the file, but you are not obligated to do + so. If you do not wish to provide this exception without modification, + you must delete this exception statement from your version and license + this file solely under the GPL without exception. + + Red Hat elfutils is an included package of the Open Invention Network. + An included package of the Open Invention Network is a package for which + Open Invention Network licensees cross-license their patents. No patent + license is granted, either expressly or impliedly, by designation as an + included package. Should you wish to participate in the Open Invention + Network licensing program, please visit www.openinventionnetwork.com + <http://www.openinventionnetwork.com>. */ + +#ifndef _DWARF_SIG8_HASH_H +#define _DWARF_SIG8_HASH_H 1 + +#define NAME Dwarf_Sig8_Hash +#define TYPE struct Dwarf_CU * +#define COMPARE(a, b) (0) + +#include <dynamicsizehash.h> + +#endif /* dwarf_sig8_hash.h */ diff --git a/libdw/encoded-value.h b/libdw/encoded-value.h index 3f9b2440..e118a1c4 100644 --- a/libdw/encoded-value.h +++ b/libdw/encoded-value.h @@ -1,5 +1,5 @@ /* DW_EH_PE_* support for libdw unwinder. - Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2009-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -136,13 +136,13 @@ read_encoded_value (const Dwarf_CFI *cache, uint8_t encoding, const uint8_t **p, break; case DW_EH_PE_aligned: { - const size_t address_size - = cache->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8; + const size_t size = encoded_value_size (&cache->data->d, cache->e_ident, + encoding, *p); size_t align = ((cache->frame_vaddr + (*p - (const uint8_t *) cache->data->d.d_buf)) - & (address_size - 1)); + & (size - 1)); if (align != 0) - *p += address_size - align; + *p += size - align; break; } @@ -163,24 +163,24 @@ read_encoded_value (const Dwarf_CFI *cache, uint8_t encoding, const uint8_t **p, case DW_EH_PE_udata4: if (__libdw_cfi_read_address_inc (cache, p, 4, &value)) - return false; + return true; break; case DW_EH_PE_sdata4: if (__libdw_cfi_read_address_inc (cache, p, 4, &value)) - return false; + return true; value = (Dwarf_Sword) (Elf32_Sword) value; /* Sign-extend. */ break; case DW_EH_PE_udata8: case DW_EH_PE_sdata8: if (__libdw_cfi_read_address_inc (cache, p, 8, &value)) - return false; + return true; break; case DW_EH_PE_absptr: if (__libdw_cfi_read_address_inc (cache, p, 0, &value)) - return false; + return true; break; case DW_EH_PE_uleb128: @@ -196,6 +196,20 @@ read_encoded_value (const Dwarf_CFI *cache, uint8_t encoding, const uint8_t **p, } *result += value; + + if (encoding & DW_EH_PE_indirect) + { + if (unlikely (*result < cache->frame_vaddr)) + return true; + *result -= cache->frame_vaddr; + if (unlikely (*result > (cache->data->d.d_size + - encoded_value_size (NULL, cache->e_ident, + DW_EH_PE_absptr, NULL)))) + return true; + const uint8_t *ptr = cache->data->d.d_buf + *result; + return __libdw_cfi_read_address_inc (cache, &ptr, 0, result); + } + return false; } diff --git a/libdw/fde.c b/libdw/fde.c index c826114c..5685252b 100644 --- a/libdw/fde.c +++ b/libdw/fde.c @@ -1,5 +1,5 @@ /* FDE reading. - Copyright (C) 2009 Red Hat, Inc. + Copyright (C) 2009-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -139,8 +139,9 @@ intern_fde (Dwarf_CFI *cache, const Dwarf_FDE *entry) return fde; } -static struct dwarf_fde * -fde_by_offset (Dwarf_CFI *cache, Dwarf_Addr address, Dwarf_Off offset) +struct dwarf_fde * +internal_function +__libdw_fde_by_offset (Dwarf_CFI *cache, Dwarf_Off offset) { Dwarf_CFI_Entry entry; Dwarf_Off next_offset; @@ -167,10 +168,6 @@ fde_by_offset (Dwarf_CFI *cache, Dwarf_Addr address, Dwarf_Off offset) if (cache->next_offset == offset) cache->next_offset = next_offset; - /* Sanity check the address range. */ - if (address < fde->start || address >= fde->end) - goto invalid; - return fde; } @@ -254,7 +251,15 @@ __libdw_find_fde (Dwarf_CFI *cache, Dwarf_Addr address) Dwarf_Off offset = binary_search_fde (cache, address); if (offset == (Dwarf_Off) -1l) goto no_match; - return fde_by_offset (cache, address, offset); + struct dwarf_fde *fde = __libdw_fde_by_offset (cache, offset); + if (unlikely (fde != NULL) + /* Sanity check the address range. */ + && unlikely (address < fde->start || address >= fde->end)) + { + __libdw_seterrno (DWARF_E_INVALID_DWARF); + return NULL; + } + return fde; } /* It's not there. Read more CFI entries until we find it. */ diff --git a/libdw/libdw.h b/libdw/libdw.h index 94320c7b..92021366 100644 --- a/libdw/libdw.h +++ b/libdw/libdw.h @@ -247,6 +247,8 @@ typedef union Dwarf_FDE fde; } Dwarf_CFI_Entry; +#define dwarf_cfi_cie_p(entry) ((entry)->cie.CIE_id == DW_CIE_ID_64) + /* Opaque type representing a frame state described by CFI. */ typedef struct Dwarf_Frame_s Dwarf_Frame; @@ -286,12 +288,22 @@ extern int dwarf_end (Dwarf *dwarf); /* Get the data block for the .debug_info section. */ extern Elf_Data *dwarf_getscn_info (Dwarf *dwarf); -/* Read the header for the DWARF CU header. */ +/* Read the header for the DWARF CU. */ extern int dwarf_nextcu (Dwarf *dwarf, Dwarf_Off off, Dwarf_Off *next_off, size_t *header_sizep, Dwarf_Off *abbrev_offsetp, uint8_t *address_sizep, uint8_t *offset_sizep) __nonnull_attribute__ (3); +/* Read the header of a DWARF CU or type unit. If TYPE_SIGNATUREP is not + null, this reads a type unit from the .debug_types section; otherwise + this reads a CU from the .debug_info section. */ +extern int dwarf_next_unit (Dwarf *dwarf, Dwarf_Off off, Dwarf_Off *next_off, + size_t *header_sizep, Dwarf_Half *versionp, + Dwarf_Off *abbrev_offsetp, + uint8_t *address_sizep, uint8_t *offset_sizep, + uint64_t *type_signaturep, Dwarf_Off *type_offsetp) + __nonnull_attribute__ (3); + /* Decode one DWARF CFI entry (CIE or FDE) from the raw section data. The E_IDENT from the originating ELF file indicates the address @@ -334,10 +346,15 @@ extern Dwarf_CFI *dwarf_getcfi_elf (Elf *elf); extern int dwarf_cfi_end (Dwarf_CFI *cache); -/* Return DIE at given offset. */ +/* Return DIE at given offset in .debug_types section. */ extern Dwarf_Die *dwarf_offdie (Dwarf *dbg, Dwarf_Off offset, Dwarf_Die *result) __nonnull_attribute__ (3); +/* Return DIE at given offset in .debug_types section. */ +extern Dwarf_Die *dwarf_offdie_types (Dwarf *dbg, Dwarf_Off offset, + Dwarf_Die *result) + __nonnull_attribute__ (3); + /* Return offset of DIE. */ extern Dwarf_Off dwarf_dieoffset (Dwarf_Die *die); @@ -561,6 +578,9 @@ extern int dwarf_getsrc_file (Dwarf *dbg, const char *fname, int line, int col, /* Return line address. */ extern int dwarf_lineaddr (Dwarf_Line *line, Dwarf_Addr *addrp); +/* Return line VLIW operation index. */ +extern int dwarf_lineop_index (Dwarf_Line *line, unsigned int *op_indexp); + /* Return line number. */ extern int dwarf_lineno (Dwarf_Line *line, int *linep) __nonnull_attribute__ (2); @@ -589,6 +609,14 @@ extern int dwarf_lineprologueend (Dwarf_Line *line, bool *flagp) extern int dwarf_lineepiloguebegin (Dwarf_Line *line, bool *flagp) __nonnull_attribute__ (2); +/* Return instruction-set architecture in this record. */ +extern int dwarf_lineisa (Dwarf_Line *line, unsigned int *isap) + __nonnull_attribute__ (2); + +/* Return code path discriminator in this record. */ +extern int dwarf_linediscriminator (Dwarf_Line *line, unsigned int *discp) + __nonnull_attribute__ (2); + /* Find line information for address. */ extern const char *dwarf_linesrc (Dwarf_Line *line, diff --git a/libdw/libdw.map b/libdw/libdw.map index 1a9afb13..8e93dff8 100644 --- a/libdw/libdw.map +++ b/libdw/libdw.map @@ -237,3 +237,13 @@ ELFUTILS_0.146 { global: dwfl_core_file_report; } ELFUTILS_0.144; + +ELFUTILS_0.148 { + global: + dwarf_lineisa; + dwarf_linediscriminator; + dwarf_lineop_index; + + dwarf_next_unit; + dwarf_offdie_types; +} ELFUTILS_0.146; diff --git a/libdw/libdwP.h b/libdw/libdwP.h index 7a3a360a..bbe92896 100644 --- a/libdw/libdwP.h +++ b/libdw/libdwP.h @@ -61,13 +61,6 @@ #define _(Str) dgettext ("elfutils", Str) -/* Version of the DWARF specification we support. */ -#define DWARF_VERSION 3 - -/* Version of the CIE format. */ -#define CIE_VERSION 1 - - /* Known location expressions already decoded. */ struct loc_s { @@ -90,6 +83,7 @@ struct loc_block_s enum { IDX_debug_info = 0, + IDX_debug_types, IDX_debug_abbrev, IDX_debug_aranges, IDX_debug_line, @@ -97,10 +91,6 @@ enum IDX_debug_loc, IDX_debug_pubnames, IDX_debug_str, - IDX_debug_funcnames, - IDX_debug_typenames, - IDX_debug_varnames, - IDX_debug_weaknames, IDX_debug_macinfo, IDX_debug_ranges, IDX_last @@ -149,6 +139,8 @@ enum }; +#include "dwarf_sig8_hash.h" + /* This is the structure representing the debugging state. */ struct Dwarf { @@ -179,6 +171,11 @@ struct Dwarf void *cu_tree; Dwarf_Off next_cu_offset; + /* Search tree and sig8 hash table for .debug_types type units. */ + void *tu_tree; + Dwarf_Off next_tu_offset; + Dwarf_Sig8_Hash sig8_hash; + /* Address ranges. */ Dwarf_Aranges *aranges; @@ -250,6 +247,12 @@ struct Dwarf_Line_s unsigned int end_sequence:1; unsigned int prologue_end:1; unsigned int epilogue_begin:1; + /* The remaining bit fields are not flags, but hold values presumed to be + small. All the flags and other bit fields should add up to 48 bits + to give the whole struct a nice round size. */ + unsigned int op_index:8; + unsigned int isa:8; + unsigned int discriminator:24; }; struct Dwarf_Lines_s @@ -283,6 +286,10 @@ struct Dwarf_CU uint8_t offset_size; uint16_t version; + /* Zero if this is a normal CU. Nonzero if it is a type unit. */ + size_t type_offset; + uint64_t type_sig8; + /* Hash table for the abbreviations. */ Dwarf_Abbrev_Hash abbrev_hash; /* Offset of the first abbreviation. */ @@ -305,28 +312,32 @@ struct Dwarf_CU LEN VER OFFSET ADDR 4-bytes + 2-bytes + 4-bytes + 1-byte for 32-bit dwarf 12-bytes + 2-bytes + 8-bytes + 1-byte for 64-bit dwarf + or in .debug_types, SIGNATURE TYPE-OFFSET + 4-bytes + 2-bytes + 4-bytes + 1-byte + 8-bytes + 4-bytes for 32-bit + 12-bytes + 2-bytes + 8-bytes + 1-byte + 8-bytes + 8-bytes for 64-bit Note the trick in the computation. If the offset_size is 4 the '- 4' term changes the '3 *' into a '2 *'. If the offset_size is 8 it accounts for the 4-byte escape value used at the start of the length. */ -#define DIE_OFFSET_FROM_CU_OFFSET(cu_offset, offset_size) \ - ((cu_offset) + 3 * (offset_size) - 4 + 3) - -#define CUDIE_ADDR(fromcu) \ - ((char *) (fromcu)->dbg->sectiondata[IDX_debug_info]->d_buf \ - + DIE_OFFSET_FROM_CU_OFFSET ((fromcu)->start, (fromcu)->offset_size)) +#define DIE_OFFSET_FROM_CU_OFFSET(cu_offset, offset_size, type_unit) \ + ((type_unit) ? ((cu_offset) + 4 * (offset_size) - 4 + 3 + 8) \ + : ((cu_offset) + 3 * (offset_size) - 4 + 3)) + +#define CUDIE_INIT(fromcu) \ + { \ + ((char *) cu_data (fromcu)->d_buf \ + + DIE_OFFSET_FROM_CU_OFFSET ((fromcu)->start, \ + (fromcu)->offset_size, \ + (fromcu)->type_offset != 0)), \ + (fromcu), \ + NULL, 0l \ + } #ifdef __cplusplus -# define CUDIE(name, fromcu) \ - Dwarf_Die name = { CUDIE_ADDR (fromcu), (fromcu), NULL, 0l } +# define CUDIE(name, fromcu) Dwarf_Die name = CUDIE_INIT (fromcu) #else -# define CUDIE(fromcu) \ - ((Dwarf_Die) \ - { \ - .cu = (fromcu), \ - .addr = CUDIE_ADDR (fromcu), \ - }) +# define CUDIE(fromcu) ((Dwarf_Die) CUDIE_INIT (fromcu)) #endif /* Macro information. */ @@ -379,8 +390,12 @@ extern void *__libdw_allocate (Dwarf *dbg, size_t minsize, size_t align) /* Default OOM handler. */ extern void __libdw_oom (void) __attribute ((noreturn, visibility ("hidden"))); +/* Allocate the internal data for a unit not seen before. */ +extern struct Dwarf_CU *__libdw_intern_next_unit (Dwarf *dbg, bool debug_types) + __nonnull_attribute__ (1) internal_function; + /* Find CU for given offset. */ -extern struct Dwarf_CU *__libdw_findcu (Dwarf *dbg, Dwarf_Off offset) +extern struct Dwarf_CU *__libdw_findcu (Dwarf *dbg, Dwarf_Off offset, bool tu) __nonnull_attribute__ (1) internal_function; /* Return tag of given DIE. */ @@ -439,11 +454,12 @@ extern int __libdw_visit_scopes (unsigned int depth, extern int __libdw_intern_expression (Dwarf *dbg, bool other_byte_order, unsigned int address_size, + unsigned int ref_size, void **cache, const Dwarf_Block *block, bool cfap, bool valuep, Dwarf_Op **llbuf, size_t *listlen, int sec_index) - __nonnull_attribute__ (4, 5, 8, 9) internal_function; + __nonnull_attribute__ (5, 6, 9, 10) internal_function; /* Return error code of last failing function call. This value is kept @@ -601,6 +617,18 @@ unsigned char * __libdw_formptr (Dwarf_Attribute *attr, int sec_index, internal_function; #endif /* Not C++ */ +static inline size_t +cu_sec_idx (struct Dwarf_CU *cu) +{ + return cu->type_offset == 0 ? IDX_debug_info : IDX_debug_types; +} + +static inline Elf_Data * +cu_data (struct Dwarf_CU *cu) +{ + return cu->dbg->sectiondata[cu_sec_idx (cu)]; +} + /* Aliases to avoid PLTs. */ INTDECL (dwarf_aggregate_size) @@ -630,6 +658,7 @@ INTDECL (dwarf_haspc) INTDECL (dwarf_highpc) INTDECL (dwarf_lowpc) INTDECL (dwarf_nextcu) +INTDECL (dwarf_next_unit) INTDECL (dwarf_offdie) INTDECL (dwarf_ranges) INTDECL (dwarf_siblingof) diff --git a/libdw/libdw_findcu.c b/libdw/libdw_findcu.c index afff6d3a..8e5f9e9b 100644 --- a/libdw/libdw_findcu.c +++ b/libdw/libdw_findcu.c @@ -1,5 +1,5 @@ /* Find CU for given offset. - Copyright (C) 2003, 2004, 2005, 2007 Red Hat, Inc. + Copyright (C) 2003-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2003. @@ -57,6 +57,58 @@ #include "libdwP.h" +struct Dwarf_CU * +internal_function +__libdw_intern_next_unit (dbg, debug_types) + Dwarf *dbg; + bool debug_types; +{ + Dwarf_Off *const offsetp + = debug_types ? &dbg->next_tu_offset : &dbg->next_cu_offset; + + Dwarf_Off oldoff = *offsetp; + uint16_t version; + uint8_t address_size; + uint8_t offset_size; + Dwarf_Off abbrev_offset; + uint64_t type_sig8 = 0; + Dwarf_Off type_offset = 0; + + if (INTUSE(dwarf_next_unit) (dbg, oldoff, offsetp, NULL, + &version, &abbrev_offset, + &address_size, &offset_size, + debug_types ? &type_sig8 : NULL, + debug_types ? &type_offset : NULL) != 0) + /* No more entries. */ + return NULL; + + /* We only know how to handle the DWARF version 2 through 4 formats. */ + if (unlikely (version < 2) || unlikely (version > 4)) + { + __libdw_seterrno (DWARF_E_INVALID_DWARF); + return NULL; + } + + /* Create an entry for this CU. */ + struct Dwarf_CU *newp = libdw_typed_alloc (dbg, struct Dwarf_CU); + + newp->dbg = dbg; + newp->start = oldoff; + newp->end = *offsetp; + newp->address_size = address_size; + newp->offset_size = offset_size; + newp->version = version; + newp->type_sig8 = type_sig8; + newp->type_offset = type_offset; + Dwarf_Abbrev_Hash_init (&newp->abbrev_hash, 41); + newp->orig_abbrev_offset = newp->last_abbrev_offset = abbrev_offset; + newp->lines = NULL; + newp->locs = NULL; + + return newp; +} + + static int findcu_cb (const void *arg1, const void *arg2) { @@ -83,21 +135,24 @@ findcu_cb (const void *arg1, const void *arg2) return 0; } - struct Dwarf_CU * -__libdw_findcu (dbg, start) +__libdw_findcu (dbg, start, debug_types) Dwarf *dbg; Dwarf_Off start; + bool debug_types; { + void **tree = debug_types ? &dbg->tu_tree : &dbg->cu_tree; + Dwarf_Off *next_offset + = debug_types ? &dbg->next_tu_offset : &dbg->next_cu_offset; + /* Maybe we already know that CU. */ struct Dwarf_CU fake = { .start = start, .end = 0 }; - struct Dwarf_CU **found = tfind (&fake, &dbg->cu_tree, findcu_cb); + struct Dwarf_CU **found = tfind (&fake, tree, findcu_cb); if (found != NULL) return *found; - if (start < dbg->next_cu_offset) + if (start < *next_offset) { - invalid: __libdw_seterrno (DWARF_E_INVALID_DWARF); return NULL; } @@ -105,51 +160,22 @@ __libdw_findcu (dbg, start) /* No. Then read more CUs. */ while (1) { - Dwarf_Off oldoff = dbg->next_cu_offset; - uint8_t address_size; - uint8_t offset_size; - Dwarf_Off abbrev_offset; - - if (INTUSE(dwarf_nextcu) (dbg, oldoff, &dbg->next_cu_offset, NULL, - &abbrev_offset, &address_size, &offset_size) - != 0) - /* No more entries. */ + Dwarf_Off oldoff = *next_offset; + struct Dwarf_CU *newp = __libdw_intern_next_unit (dbg, debug_types); + if (newp == NULL) return NULL; - /* XXX We need the version number but dwarf_nextcu swallows it. */ - const char *bytes = (dbg->sectiondata[IDX_debug_info]->d_buf + oldoff - + (2 * offset_size - 4)); - uint16_t version = read_2ubyte_unaligned (dbg, bytes); - - /* We only know how to handle the DWARF version 2 and 3 formats. */ - if (unlikely (version != 2) && unlikely (version != 3)) - goto invalid; - - /* Create an entry for this CU. */ - struct Dwarf_CU *newp = libdw_typed_alloc (dbg, struct Dwarf_CU); - - newp->dbg = dbg; - newp->start = oldoff; - newp->end = dbg->next_cu_offset; - newp->address_size = address_size; - newp->offset_size = offset_size; - newp->version = version; - Dwarf_Abbrev_Hash_init (&newp->abbrev_hash, 41); - newp->orig_abbrev_offset = newp->last_abbrev_offset = abbrev_offset; - newp->lines = NULL; - newp->locs = NULL; - /* Add the new entry to the search tree. */ - if (tsearch (newp, &dbg->cu_tree, findcu_cb) == NULL) + if (tsearch (newp, tree, findcu_cb) == NULL) { - /* Something went wrong. Unfo the operation. */ - dbg->next_cu_offset = oldoff; + /* Something went wrong. Undo the operation. */ + *next_offset = oldoff; __libdw_seterrno (DWARF_E_NOMEM); return NULL; } /* Is this the one we are looking for? */ - if (start < dbg->next_cu_offset) + if (start < *next_offset) // XXX Match exact offset. return newp; } diff --git a/libdw/memory-access.h b/libdw/memory-access.h index 13f79ec2..b7799e92 100644 --- a/libdw/memory-access.h +++ b/libdw/memory-access.h @@ -1,5 +1,5 @@ /* Unaligned memory access functionality. - Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2009 Red Hat, Inc. + Copyright (C) 2000-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2001. @@ -90,7 +90,7 @@ _v |= (uint64_t) (__b & 0x7f) << (nth * 7); \ if (likely ((__b & 0x80) == 0)) \ { \ - var = (_v << (64 - (nth * 7) - 7) >> (64 - (nth * 7) - 7)); \ + var = (_v << (64 - (nth * 7) - 7)) >> (64 - (nth * 7) - 7); \ break; \ } \ else do {} while (0) @@ -109,9 +109,13 @@ { \ get_sleb128_step (var, *addrp, i, return var); \ } \ - /* Other implementations set VALUE to INT_MAX in this \ - case. So we better do this as well. */ \ - return INT64_MAX; \ + __b = *(*addrp)++; \ + if (likely ((__b & 0x80) == 0)) \ + return var | ((uint64_t) __b << 63); \ + else \ + /* Other implementations set VALUE to INT_MAX in this \ + case. So we better do this as well. */ \ + return INT64_MAX; \ } while (0) #ifdef IS_LIBDW @@ -122,14 +126,14 @@ extern int64_t __libdw_get_sleb128 (int64_t acc, unsigned int i, const unsigned char **addrp) internal_function attribute_hidden; #else -static uint64_t +static inline uint64_t __attribute__ ((unused)) __libdw_get_uleb128 (uint64_t acc, unsigned int i, const unsigned char **addrp) { unsigned char __b; get_uleb128_rest_return (acc, i, addrp); } -static int64_t +static inline int64_t __attribute__ ((unused)) __libdw_get_sleb128 (int64_t acc, unsigned int i, const unsigned char **addrp) { diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index a9f36d96..ff850ebf 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,61 @@ +2010-06-16 Roland McGrath <[email protected]> + + * cu.c (cudie_offset): Use DIE_OFFSET_FROM_CU_OFFSET macro. + +2010-06-14 Roland McGrath <[email protected]> + + * find-debuginfo.c (try_open): Take new arg MAIN_STAT. Compare + candidate file to that st_dev/st_ino and pretend it didn't exist + if they match. + (find_debuginfo_in_path): Update caller, pass main file's info. + +2010-05-20 Roland McGrath <[email protected]> + + * linux-proc-maps.c (find_sysinfo_ehdr): Renamed to ... + (grovel_auxv): ... this. Take DWFL argument. + (dwfl_linux_proc_report): Update caller. + + * dwfl_module_getdwarf.c (open_elf): Calculate alignment for bias + based on dwfl->segment_align or manifest alignment of MOD->low_addr. + +2010-05-19 Roland McGrath <[email protected]> + + * linux-kernel-modules.c (intuit_kernel_bounds): Rewritten. + +2010-05-06 Roland McGrath <[email protected]> + + * segment.c (insert): Clear inserted elements of DWFL->lookup_module. + + * libdwflP.h (DWFL_ERRORS): Add WRONG_ID_ELF. + * dwfl_build_id_find_elf.c: Set MOD->main.valid when there is a build + ID but we didn't find a file. + * dwfl_module_getdwarf.c (__libdwfl_getelf): When that's set, check + and refuse any fallback file-by-name if it lacks the matching ID. + + * dwfl_error.c (dwfl_errno): Add INTDEF. + * libdwflP.h: Add INTDECL. + + * dwfl_module_getdwarf.c (open_elf): Do elf_end and clear FILE->elf in + failure cases. + +2010-05-04 Roland McGrath <[email protected]> + + * dwfl_segment_report_module.c: Use "[pie]" rather than "[dso]" for an + ET_DYN that has a DT_DEBUG. + + * dwfl_segment_report_module.c: Fix jump-start of NDX-finding loop. + + * segment.c (insert): Fix moving of values following insertion. + (reify_segments): Fix up MOD->segment backpointer indices after + later insertions in the main loop invalidate them. + + * link_map.c (dwfl_link_map_report): Detect bias of embedded phdrs and + apply it to PT_DYNAMIC p_vaddr so we handle a PIE correctly. + + * core-file.c (dwfl_core_file_report): Return any nonzero count of + modules reported, even if link_map grovelling failed and only sniffing + found anything. + 2010-04-26 Roland McGrath <[email protected]> * relocate.c (relocate_section): Treat R_*_NONE reloc as no reloc. diff --git a/libdwfl/core-file.c b/libdwfl/core-file.c index 2f0ca8a6..1b556dde 100644 --- a/libdwfl/core-file.c +++ b/libdwfl/core-file.c @@ -419,6 +419,7 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf) return ndx; /* Now sniff segment contents for modules. */ + int sniffed = 0; ndx = 0; do { @@ -427,7 +428,13 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf) core_file_read_eagerly, elf); if (unlikely (seg < 0)) return seg; - ndx = seg > ndx ? seg : ndx + 1; + if (seg > ndx) + { + ndx = seg; + ++sniffed; + } + else + ++ndx; } while (ndx < (int) phnum); @@ -465,7 +472,13 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *elf) /* Now we have NT_AUXV contents. From here on this processing could be used for a live process with auxv read from /proc. */ - return dwfl_link_map_report (dwfl, auxv, auxv_size, - dwfl_elf_phdr_memory_callback, elf); + int listed = dwfl_link_map_report (dwfl, auxv, auxv_size, + dwfl_elf_phdr_memory_callback, elf); + + /* We return the number of modules we found if we found any. + If we found none, we return -1 instead of 0 if there was an + error rather than just nothing found. If link_map handling + failed, we still have the sniffed modules. */ + return sniffed == 0 || listed > sniffed ? listed : sniffed; } INTDEF (dwfl_core_file_report) diff --git a/libdwfl/cu.c b/libdwfl/cu.c index 8f01ea6b..5f73d2a3 100644 --- a/libdwfl/cu.c +++ b/libdwfl/cu.c @@ -1,5 +1,5 @@ /* Keeping track of DWARF compilation units in libdwfl. - Copyright (C) 2005, 2006 Red Hat, Inc. + Copyright (C) 2005-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -172,7 +172,8 @@ less_lazy (Dwfl_Module *mod) static inline Dwarf_Off cudie_offset (const struct dwfl_cu *cu) { - return cu->die.cu->start + 3 * cu->die.cu->offset_size - 4 + 3; + return DIE_OFFSET_FROM_CU_OFFSET (cu->die.cu->start, cu->die.cu->offset_size, + cu->die.cu->type_sig8 != 0); } static int @@ -273,7 +274,7 @@ __libdwfl_nextcu (Dwfl_Module *mod, struct dwfl_cu *lastcu, size_t cuhdrsz; Dwarf_Off nextoff; int end = INTUSE(dwarf_nextcu) (mod->dw, cuoff, &nextoff, &cuhdrsz, - NULL, NULL, NULL); + NULL, NULL, NULL); if (end < 0) return DWFL_E_LIBDW; if (end > 0) diff --git a/libdwfl/dwfl_build_id_find_elf.c b/libdwfl/dwfl_build_id_find_elf.c index fcc6f1e5..e27c8e12 100644 --- a/libdwfl/dwfl_build_id_find_elf.c +++ b/libdwfl/dwfl_build_id_find_elf.c @@ -1,5 +1,5 @@ /* Find an ELF file for a module from its build ID. - Copyright (C) 2007, 2008, 2009 Red Hat, Inc. + Copyright (C) 2007-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -160,6 +160,12 @@ dwfl_build_id_find_elf (Dwfl_Module *mod, free (*file_name); *file_name = NULL; } + else if (errno == 0 && mod->build_id_len > 0) + /* Setting this with no file yet loaded is a marker that + the build ID is authoritative even if we also know a + putative *FILE_NAME. */ + mod->main.valid = true; + return fd; } INTDEF (dwfl_build_id_find_elf) diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c index df2765af..9144a378 100644 --- a/libdwfl/dwfl_error.c +++ b/libdwfl/dwfl_error.c @@ -1,5 +1,5 @@ /* Error handling in libdwfl. - Copyright (C) 2005, 2006, 2009 Red Hat, Inc. + Copyright (C) 2005-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -72,6 +72,7 @@ dwfl_errno (void) global_error = DWFL_E_NOERROR; return result; } +INTDEF (dwfl_errno) static const struct msgtable diff --git a/libdwfl/dwfl_module_getdwarf.c b/libdwfl/dwfl_module_getdwarf.c index b084673e..41ed0730 100644 --- a/libdwfl/dwfl_module_getdwarf.c +++ b/libdwfl/dwfl_module_getdwarf.c @@ -75,6 +75,8 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file) } else if (unlikely (elf_kind (file->elf) != ELF_K_ELF)) { + elf_end (file->elf); + file->elf = NULL; close (file->fd); file->fd = -1; return DWFL_E_BADELF; @@ -84,6 +86,8 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file) if (ehdr == NULL) { elf_error: + elf_end (file->elf); + file->elf = NULL; close (file->fd); file->fd = -1; return DWFL_E (LIBELF, elf_errno ()); @@ -108,8 +112,16 @@ open_elf (Dwfl_Module *mod, struct dwfl_file *file) goto elf_error; if (ph->p_type == PT_LOAD) { - file->bias = ((mod->low_addr & -ph->p_align) - - (ph->p_vaddr & -ph->p_align)); + GElf_Addr align = mod->dwfl->segment_align; + if (align <= 1) + { + if ((mod->low_addr & (ph->p_align - 1)) == 0) + align = ph->p_align; + else + align = ((GElf_Addr) 1 << ffsll (mod->low_addr)) >> 1; + } + + file->bias = ((mod->low_addr & -align) - (ph->p_vaddr & -align)); break; } } @@ -137,9 +149,12 @@ __libdwfl_getelf (Dwfl_Module *mod) mod->main.fd = (*mod->dwfl->callbacks->find_elf) (MODCB_ARGS (mod), &mod->main.name, &mod->main.elf); + const bool fallback = mod->main.elf == NULL && mod->main.fd < 0; mod->elferr = open_elf (mod, &mod->main); + if (mod->elferr != DWFL_E_NOERROR) + return; - if (mod->elferr == DWFL_E_NOERROR && !mod->main.valid) + if (!mod->main.valid) { /* Clear any explicitly reported build ID, just in case it was wrong. We'll fetch it from the file when asked. */ @@ -147,6 +162,42 @@ __libdwfl_getelf (Dwfl_Module *mod) mod->build_id_bits = NULL; mod->build_id_len = 0; } + else if (fallback) + { + /* We have an authoritative build ID for this module, so + don't use a file by name that doesn't match that ID. */ + + assert (mod->build_id_len > 0); + + switch (__builtin_expect (__libdwfl_find_build_id (mod, false, + mod->main.elf), 2)) + { + case 2: + /* Build ID matches as it should. */ + return; + + case -1: /* ELF error. */ + mod->elferr = INTUSE(dwfl_errno) (); + break; + + case 0: /* File has no build ID note. */ + case 1: /* FIle has a build ID that does not match. */ + mod->elferr = DWFL_E_WRONG_ID_ELF; + break; + + default: + abort (); + } + + /* We get here when it was the right ELF file. Clear it out. */ + elf_end (mod->main.elf); + mod->main.elf = NULL; + if (mod->main.fd >= 0) + { + close (mod->main.fd); + mod->main.fd = -1; + } + } } /* Search an ELF file for a ".gnu_debuglink" section. */ diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index 5f982f41..3f77cfc7 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c @@ -111,7 +111,9 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, if (segment >= dwfl->lookup_elts) segment = dwfl->lookup_elts - 1; - while (segment > 0 && dwfl->lookup_segndx[segment] > ndx) + while (segment > 0 + && (dwfl->lookup_segndx[segment] > ndx + || dwfl->lookup_segndx[segment] == -1)) --segment; while (dwfl->lookup_segndx[segment] < ndx) @@ -451,12 +453,14 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, /* Examine its .dynamic section to get more interesting details. If it has DT_SONAME, we'll use that as the module name. + If it has a DT_DEBUG, then it's actually a PIE rather than a DSO. We need its DT_STRTAB and DT_STRSZ to decipher DT_SONAME, and they also tell us the essential portion of the file for fetching symbols. */ GElf_Addr soname_stroff = 0; GElf_Addr dynstr_vaddr = 0; GElf_Xword dynstrsz = 0; + bool execlike = false; inline bool consider_dyn (GElf_Sxword tag, GElf_Xword val) { switch (tag) @@ -464,6 +468,10 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, default: return false; + case DT_DEBUG: + execlike = true; + break; + case DT_SONAME: soname_stroff = val; break; @@ -520,7 +528,7 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name, /* We'll use the name passed in or a stupid default if not DT_SONAME. */ if (name == NULL) - name = ehdr.e32.e_type == ET_EXEC ? "[exe]" : "[dso]"; + name = ehdr.e32.e_type == ET_EXEC ? "[exe]" : execlike ? "[pie]" : "[dso]"; void *soname = NULL; size_t soname_size = 0; diff --git a/libdwfl/find-debuginfo.c b/libdwfl/find-debuginfo.c index 8fdaeb39..375bbaa8 100644 --- a/libdwfl/find-debuginfo.c +++ b/libdwfl/find-debuginfo.c @@ -51,13 +51,15 @@ #include <stdio.h> #include <fcntl.h> #include <unistd.h> +#include <sys/stat.h> #include "system.h" /* Try to open64 [DIR/][SUBDIR/]DEBUGLINK, return file descriptor or -1. On success, *DEBUGINFO_FILE_NAME has the malloc'd name of the open file. */ static int -try_open (const char *dir, const char *subdir, const char *debuglink, +try_open (const struct stat64 *main_stat, + const char *dir, const char *subdir, const char *debuglink, char **debuginfo_file_name) { char *fname; @@ -72,9 +74,19 @@ try_open (const char *dir, const char *subdir, const char *debuglink, : asprintf (&fname, "%s/%s/%s", dir, subdir, debuglink)) < 0) return -1; + struct stat64 st; int fd = TEMP_FAILURE_RETRY (open64 (fname, O_RDONLY)); if (fd < 0) free (fname); + else if (fstat64 (fd, &st) == 0 + && st.st_ino == main_stat->st_ino + && st.st_dev == main_stat->st_dev) + { + /* This is the main file by another name. Don't look at it again. */ + close (fd); + errno = ENOENT; + fd = -1; + } else *debuginfo_file_name = fname; @@ -162,6 +174,16 @@ find_debuginfo_in_path (Dwfl_Module *mod, const char *file_name, ++path; } + /* XXX dev/ino should be cached in struct dwfl_file. */ + struct stat64 main_stat; + if (unlikely ((mod->main.fd != -1 ? fstat64 (mod->main.fd, &main_stat) + : file_name != NULL ? stat64 (file_name, &main_stat) + : -1) < 0)) + { + main_stat.st_dev = 0; + main_stat.st_ino = 0; + } + char *file_dirname = (file_basename == file_name ? NULL : strndupa (file_name, file_basename - 1 - file_name)); char *p; @@ -199,7 +221,7 @@ find_debuginfo_in_path (Dwfl_Module *mod, const char *file_name, } char *fname = NULL; - int fd = try_open (dir, subdir, debuglink_file, &fname); + int fd = try_open (&main_stat, dir, subdir, debuglink_file, &fname); if (fd < 0) switch (errno) { diff --git a/libdwfl/libdwflP.h b/libdwfl/libdwflP.h index 58edacb9..e4c7e7c8 100644 --- a/libdwfl/libdwflP.h +++ b/libdwfl/libdwflP.h @@ -93,7 +93,8 @@ DWFL_ERROR (TRUNCATED, N_("image truncated")) \ DWFL_ERROR (ALREADY_ELF, N_("ELF file opened")) \ DWFL_ERROR (BADELF, N_("not a valid ELF file")) \ - DWFL_ERROR (WEIRD_TYPE, N_("cannot handle DWARF type description")) + DWFL_ERROR (WEIRD_TYPE, N_("cannot handle DWARF type description")) \ + DWFL_ERROR (WRONG_ID_ELF, N_("ELF file does not match build ID")) #define DWFL_ERROR(name, text) DWFL_E_##name, typedef enum { DWFL_ERRORS DWFL_E_NUM } Dwfl_Error; @@ -404,6 +405,7 @@ extern int dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size, /* Avoid PLT entries. */ INTDECL (dwfl_begin) INTDECL (dwfl_errmsg) +INTDECL (dwfl_errno) INTDECL (dwfl_addrmodule) INTDECL (dwfl_addrsegment) INTDECL (dwfl_addrdwarf) diff --git a/libdwfl/link_map.c b/libdwfl/link_map.c index fe7f40ce..403b2df6 100644 --- a/libdwfl/link_map.c +++ b/libdwfl/link_map.c @@ -684,6 +684,33 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size, /* If we found the phdr dimensions, search phdrs for PT_DYNAMIC. */ GElf_Addr dyn_vaddr = 0; GElf_Xword dyn_filesz = 0; + GElf_Addr dyn_bias = (GElf_Addr) -1; + + inline bool consider_phdr (GElf_Word type, + GElf_Addr vaddr, GElf_Xword filesz) + { + switch (type) + { + case PT_PHDR: + if (dyn_bias == (GElf_Addr) -1 + /* Do a sanity check on the putative address. */ + && ((vaddr & (dwfl->segment_align - 1)) + == (phdr & (dwfl->segment_align - 1)))) + { + dyn_bias = phdr - vaddr; + return dyn_vaddr != 0; + } + break; + + case PT_DYNAMIC: + dyn_vaddr = vaddr; + dyn_filesz = filesz; + return dyn_bias != (GElf_Addr) -1; + } + + return false; + } + if (phdr != 0 && phnum != 0) { Dwfl_Module *phdr_mod; @@ -725,22 +752,18 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size, if (elfclass == ELFCLASS32) { for (size_t i = 0; i < phnum; ++i) - if (u->p32[i].p_type == PT_DYNAMIC) - { - dyn_vaddr = u->p32[i].p_vaddr; - dyn_filesz = u->p32[i].p_filesz; - break; - } + if (consider_phdr (u->p32[i].p_type, + u->p32[i].p_vaddr, + u->p32[i].p_filesz)) + break; } else { for (size_t i = 0; i < phnum; ++i) - if (u->p64[i].p_type == PT_DYNAMIC) - { - dyn_vaddr = u->p64[i].p_vaddr; - dyn_filesz = u->p64[i].p_filesz; - break; - } + if (consider_phdr (u->p64[i].p_type, + u->p64[i].p_vaddr, + u->p64[i].p_filesz)) + break; } } @@ -775,6 +798,9 @@ dwfl_link_map_report (Dwfl *dwfl, const void *auxv, size_t auxv_size, /* If we found PT_DYNAMIC, search it for DT_DEBUG. */ if (dyn_filesz != 0) { + if (dyn_bias != (GElf_Addr) -1) + dyn_vaddr += dyn_bias; + Elf_Data in = { .d_type = ELF_T_DYN, diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c index e07073cd..c30ff1a3 100644 --- a/libdwfl/linux-kernel-modules.c +++ b/libdwfl/linux-kernel-modules.c @@ -1,5 +1,5 @@ /* Standard libdwfl callbacks for debugging the running Linux kernel. - Copyright (C) 2005-2009 Red Hat, Inc. + Copyright (C) 2005-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -411,41 +411,40 @@ intuit_kernel_bounds (Dwarf_Addr *start, Dwarf_Addr *end, Dwarf_Addr *notes) char *line = NULL; size_t linesz = 0; - size_t n = getline (&line, &linesz, f); - Dwarf_Addr first; + size_t n; char *p = NULL; - int result = 0; - if (n > 0 && (first = strtoull (line, &p, 16)) > 0 && p > line) - { - Dwarf_Addr last = 0; - while ((n = getline (&line, &linesz, f)) > 1 && line[n - 2] != ']') - { - p = NULL; - last = strtoull (line, &p, 16); - if (p == NULL || p == line || last == 0) - { - result = -1; - break; - } + const char *type; - if (*notes == 0) - { - const char *sym = (strsep (&p, " \t\n") - ? strsep (&p, " \t\n") : NULL); - if (sym != NULL && !strcmp (sym, "__start_notes")) - *notes = last; - } - } - if ((n == 0 && feof_unlocked (f)) || (n > 1 && line[n - 2] == ']')) - { - Dwarf_Addr round_kernel = sysconf (_SC_PAGE_SIZE); - first &= -(Dwarf_Addr) round_kernel; - last += round_kernel - 1; - last &= -(Dwarf_Addr) round_kernel; - *start = first; - *end = last; - result = 0; - } + inline bool read_address (Dwarf_Addr *addr) + { + if ((n = getline (&line, &linesz, f)) < 1 || line[n - 2] == ']') + return false; + *addr = strtoull (line, &p, 16); + p += strspn (p, " \t"); + type = strsep (&p, " \t\n"); + if (type == NULL) + return false; + return p != NULL && p != line; + } + + int result; + do + result = read_address (start) ? 0 : -1; + while (result == 0 && strchr ("TtRr", *type) == NULL); + + if (result == 0) + { + *end = *start; + while (read_address (end)) + if (*notes == 0 && !strcmp (p, "__start_notes\n")) + *notes = *end; + + Dwarf_Addr round_kernel = sysconf (_SC_PAGE_SIZE); + *start &= -(Dwarf_Addr) round_kernel; + *end += round_kernel - 1; + *end &= -(Dwarf_Addr) round_kernel; + if (*start >= *end || *end - *start < round_kernel) + result = -1; } free (line); diff --git a/libdwfl/linux-proc-maps.c b/libdwfl/linux-proc-maps.c index 2206f63c..8504a5f3 100644 --- a/libdwfl/linux-proc-maps.c +++ b/libdwfl/linux-proc-maps.c @@ -1,5 +1,5 @@ /* Standard libdwfl callbacks for debugging a live Linux process. - Copyright (C) 2005, 2007, 2008 Red Hat, Inc. + Copyright (C) 2005-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -70,7 +70,7 @@ /* Search /proc/PID/auxv for the AT_SYSINFO_EHDR tag. */ static int -find_sysinfo_ehdr (pid_t pid, GElf_Addr *sysinfo_ehdr) +grovel_auxv (pid_t pid, Dwfl *dwfl, GElf_Addr *sysinfo_ehdr) { char *fname; if (asprintf (&fname, PROCAUXVFMT, pid) < 0) @@ -100,18 +100,30 @@ find_sysinfo_ehdr (pid_t pid, GElf_Addr *sysinfo_ehdr) if (d.a32[i].a_type == AT_SYSINFO_EHDR) { *sysinfo_ehdr = d.a32[i].a_un.a_val; - nread = 0; - break; + if (dwfl->segment_align > 1) + { + nread = 0; + break; + } } + else if (d.a32[i].a_type == AT_PAGESZ + && dwfl->segment_align <= 1) + dwfl->segment_align = d.a32[i].a_un.a_val; break; case 8: for (size_t i = 0; (char *) &d.a64[i] < &d.buffer[nread]; ++i) if (d.a64[i].a_type == AT_SYSINFO_EHDR) { *sysinfo_ehdr = d.a64[i].a_un.a_val; - nread = 0; - break; + if (dwfl->segment_align > 1) + { + nread = 0; + break; + } } + else if (d.a64[i].a_type == AT_PAGESZ + && dwfl->segment_align <= 1) + dwfl->segment_align = d.a64[i].a_un.a_val; break; default: abort (); @@ -238,7 +250,7 @@ dwfl_linux_proc_report (Dwfl *dwfl, pid_t pid) /* We'll notice the AT_SYSINFO_EHDR address specially when we hit it. */ GElf_Addr sysinfo_ehdr = 0; - int result = find_sysinfo_ehdr (pid, &sysinfo_ehdr); + int result = grovel_auxv (pid, dwfl, &sysinfo_ehdr); if (result != 0) return result; diff --git a/libdwfl/segment.c b/libdwfl/segment.c index 36c850f0..9d78c87f 100644 --- a/libdwfl/segment.c +++ b/libdwfl/segment.c @@ -1,5 +1,5 @@ /* Manage address space lookup table for libdwfl. - Copyright (C) 2008, 2009 Red Hat, Inc. + Copyright (C) 2008, 2009, 2010 Red Hat, Inc. This file is part of Red Hat elfutils. Red Hat elfutils is free software; you can redistribute it and/or modify @@ -107,19 +107,22 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr start, GElf_Addr end, int segndx) if (unlikely (i < dwfl->lookup_elts)) { - memcpy (&dwfl->lookup_addr[i + need], &dwfl->lookup_addr[i], - need * sizeof dwfl->lookup_addr[0]); - memcpy (&dwfl->lookup_segndx[i + need], &dwfl->lookup_segndx[i], - need * sizeof dwfl->lookup_segndx[0]); + const size_t move = dwfl->lookup_elts - i; + memmove (&dwfl->lookup_addr[i + need], &dwfl->lookup_addr[i], + move * sizeof dwfl->lookup_addr[0]); + memmove (&dwfl->lookup_segndx[i + need], &dwfl->lookup_segndx[i], + move * sizeof dwfl->lookup_segndx[0]); if (dwfl->lookup_module != NULL) - memcpy (&dwfl->lookup_module[i + need], &dwfl->lookup_module[i], - need * sizeof dwfl->lookup_module[0]); + memmove (&dwfl->lookup_module[i + need], &dwfl->lookup_module[i], + move * sizeof dwfl->lookup_module[0]); } if (need_start) { dwfl->lookup_addr[i] = start; dwfl->lookup_segndx[i] = segndx; + if (dwfl->lookup_module != NULL) + dwfl->lookup_module[i] = NULL; ++i; } else @@ -129,6 +132,8 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr start, GElf_Addr end, int segndx) { dwfl->lookup_addr[i] = end; dwfl->lookup_segndx[i] = -1; + if (dwfl->lookup_module != NULL) + dwfl->lookup_module[i] = NULL; } dwfl->lookup_elts += need; @@ -167,11 +172,14 @@ static bool reify_segments (Dwfl *dwfl) { int hint = -1; + int highest = -1; + bool fixup = false; for (Dwfl_Module *mod = dwfl->modulelist; mod != NULL; mod = mod->next) if (! mod->gc) { const GElf_Addr start = segment_start (dwfl, mod->low_addr); const GElf_Addr end = segment_end (dwfl, mod->high_addr); + bool resized = false; int idx = lookup (dwfl, start, hint); if (unlikely (idx < 0)) @@ -180,6 +188,7 @@ reify_segments (Dwfl *dwfl) if (unlikely (insert (dwfl, 0, start, end, -1))) return true; idx = 0; + resized = true; } else if (dwfl->lookup_addr[idx] > start) { @@ -188,6 +197,7 @@ reify_segments (Dwfl *dwfl) dwfl->lookup_segndx[idx]))) return true; ++idx; + resized = true; } else if (dwfl->lookup_addr[idx] < start) { @@ -196,14 +206,18 @@ reify_segments (Dwfl *dwfl) if (unlikely (insert (dwfl, idx + 1, start, end, -1))) return true; ++idx; + resized = true; } if ((size_t) idx + 1 < dwfl->lookup_elts - && end < dwfl->lookup_addr[idx + 1] + && end < dwfl->lookup_addr[idx + 1]) + { /* The module ends in the middle of this segment. Split it. */ - && unlikely (insert (dwfl, idx + 1, - end, dwfl->lookup_addr[idx + 1], -1))) - return true; + if (unlikely (insert (dwfl, idx + 1, + end, dwfl->lookup_addr[idx + 1], -1))) + return true; + resized = true; + } if (dwfl->lookup_module == NULL) { @@ -221,9 +235,23 @@ reify_segments (Dwfl *dwfl) dwfl->lookup_module[idx++] = mod; while ((size_t) idx < dwfl->lookup_elts && dwfl->lookup_addr[idx] < end); + assert (dwfl->lookup_module[mod->segment] == mod); + + if (resized && idx - 1 >= highest) + /* Expanding the lookup tables invalidated backpointers + we've already stored. Reset those ones. */ + fixup = true; + + highest = idx - 1; hint = (size_t) idx < dwfl->lookup_elts ? idx : -1; } + if (fixup) + /* Reset backpointer indices invalidated by table insertions. */ + for (size_t idx = 0; idx < dwfl->lookup_elts; ++idx) + if (dwfl->lookup_module[idx] != NULL) + dwfl->lookup_module[idx]->segment = idx; + return false; } diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 7e6b9929..c1479ae4 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,3 +1,9 @@ +2010-06-14 Ulrich Drepper <[email protected]> + + * gelf_update_shdr.c: Implicitly set ELF_F_DIRTY bit. + * gelf_update_phdr.c: Likewise. + * gelf_update_ehdr.c: Likewise. + 2010-04-14 Roland McGrath <[email protected]> * elf32_getphdr.c: Check for e_phoff/size outside the file bounds. @@ -763,4 +769,4 @@ 2003-08-11 Ulrich Drepper <[email protected]> - * Moved to CVS archive. + * Moved to CVS archive. diff --git a/libelf/gelf_update_ehdr.c b/libelf/gelf_update_ehdr.c index 4d5c2b6c..baf7a3f8 100644 --- a/libelf/gelf_update_ehdr.c +++ b/libelf/gelf_update_ehdr.c @@ -1,5 +1,5 @@ /* Update ELF header. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000, 2001, 2002, 2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2000. @@ -127,6 +127,9 @@ gelf_update_ehdr (Elf *elf, GElf_Ehdr *src) memcpy (ehdr, src, sizeof (Elf64_Ehdr)); } + /* Mark the ELF header as modified. */ + elf->state.elf.ehdr_flags |= ELF_F_DIRTY; + result = 1; out: diff --git a/libelf/gelf_update_phdr.c b/libelf/gelf_update_phdr.c index d6d5f5ae..b90e5c04 100644 --- a/libelf/gelf_update_phdr.c +++ b/libelf/gelf_update_phdr.c @@ -152,6 +152,9 @@ gelf_update_phdr (Elf *elf, int ndx, GElf_Phdr *src) memcpy (phdr + ndx, src, sizeof (Elf64_Phdr)); } + /* Mark the program header as modified. */ + elf->state.elf.phdr_flags |= ELF_F_DIRTY; + result = 1; out: diff --git a/libelf/gelf_update_shdr.c b/libelf/gelf_update_shdr.c index c57eab80..c4e38294 100644 --- a/libelf/gelf_update_shdr.c +++ b/libelf/gelf_update_shdr.c @@ -1,5 +1,5 @@ /* Update section header. - Copyright (C) 2000, 2001, 2002 Red Hat, Inc. + Copyright (C) 2000, 2001, 2002, 2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2000. @@ -120,6 +120,9 @@ gelf_update_shdr (Elf_Scn *scn, GElf_Shdr *src) (void) memcpy (shdr, src, sizeof (GElf_Shdr)); } + /* Mark the section header as modified. */ + scn->shdr_flags |= ELF_F_DIRTY; + result = 1; out: @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: elfutils VERSION\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2010-05-03 14:14-0700\n" +"POT-Creation-Date: 2010-06-28 12:08-0700\n" "PO-Revision-Date: 2009-06-29 15:15+0200\n" "Last-Translator: Michael Münch <[email protected]>\n" "Language-Team: German\n" @@ -21,8 +21,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 0.3\n" -#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822 -#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295 +#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823 +#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308 #, c-format msgid "memory exhausted" msgstr "Kein Speicher mehr verfügbar" @@ -209,7 +209,7 @@ msgstr "" msgid "invalid CFI section" msgstr "ungültiger Abschnitt" -#: libdwfl/argp-std.c:67 src/unstrip.c:2237 +#: libdwfl/argp-std.c:67 src/unstrip.c:2250 msgid "Input selection options:" msgstr "Eingabeauswahloptionen:" @@ -362,6 +362,10 @@ msgstr "Ungültige ELF Datei" msgid "cannot handle DWARF type description" msgstr "konnte Elf-Deskriptor nicht erzeugen: %s" +#: libdwfl/libdwflP.h:97 +msgid "ELF file does not match build ID" +msgstr "" + #: libebl/eblbackendname.c:63 msgid "No backend" msgstr "Kein Backend" @@ -422,7 +426,7 @@ msgstr "ungültige Grösse des Quell-Operanden" msgid "invalid size of destination operand" msgstr "ungültige Grösse des Ziel-Operanden" -#: libelf/elf_error.c:108 src/readelf.c:4779 +#: libelf/elf_error.c:108 src/readelf.c:4826 #, c-format msgid "invalid encoding" msgstr "ungültige Kodierung" @@ -505,7 +509,7 @@ msgstr "data/scn Unterschied" msgid "invalid section header" msgstr "ungültiger Abschnitts-Header" -#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343 +#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529 #, c-format msgid "invalid data" msgstr "Ungültige Daten" @@ -587,7 +591,7 @@ msgstr "" #: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239 #: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181 -#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227 +#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227 #: src/strip.c:204 src/unstrip.c:234 #, c-format msgid "" @@ -602,7 +606,7 @@ msgstr "" #: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244 #: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186 -#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232 +#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232 #: src/strip.c:209 src/unstrip.c:239 #, c-format msgid "Written by %s.\n" @@ -618,12 +622,12 @@ msgstr "Abschnitt syntax benötigt genau ein Modul" msgid "offset %#<PRIxMAX> lies outside section '%s'" msgstr "" -#: src/addr2line.c:461 +#: src/addr2line.c:469 #, c-format msgid "cannot find symbol '%s'" msgstr "Konnte Symbol '%s' nicht finden" -#: src/addr2line.c:466 +#: src/addr2line.c:474 #, c-format msgid "offset %#<PRIxMAX> lies outside contents of '%s'" msgstr "" @@ -1009,8 +1013,8 @@ msgstr "" #: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767 #: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301 -#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900 -#: src/unstrip.c:1929 +#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913 +#: src/unstrip.c:1942 #, c-format msgid "cannot open '%s'" msgstr "'%s' kann nicht geöffnet werden" @@ -1066,7 +1070,7 @@ msgstr "" msgid "FILE..." msgstr "DATEI..." -#: src/elflint.c:159 src/readelf.c:272 +#: src/elflint.c:159 src/readelf.c:273 #, c-format msgid "cannot open input file" msgstr "Kann Eingabedatei nicht öffnen" @@ -1085,7 +1089,7 @@ msgstr "Fehler beim Schliessen des Elf-Desktriptor: %s\n" msgid "No errors" msgstr "Keine Fehler" -#: src/elflint.c:223 src/readelf.c:425 +#: src/elflint.c:223 src/readelf.c:426 msgid "Missing file name.\n" msgstr "Dateiname fehlt.\n" @@ -3159,7 +3163,7 @@ msgstr "" msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s" msgstr "" -#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543 +#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543 #, c-format msgid "cannot determine number of sections: %s" msgstr "" @@ -3390,7 +3394,7 @@ msgstr "" msgid "cannot get header of 0th section: %s" msgstr "" -#: src/ldgeneric.c:6941 src/unstrip.c:1808 +#: src/ldgeneric.c:6941 src/unstrip.c:1820 #, c-format msgid "cannot update ELF header: %s" msgstr "" @@ -3591,11 +3595,11 @@ msgstr "%s%s%s: Dateiformat nicht erkannt" msgid "cannot create search tree" msgstr "Kann Suchbaum nicht erstellen" -#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885 -#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549 -#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265 -#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939 -#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604 +#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886 +#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550 +#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266 +#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940 +#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794 #: src/size.c:425 src/size.c:499 src/strip.c:483 #, c-format msgid "cannot get section header string table index" @@ -3682,7 +3686,7 @@ msgstr "" msgid "Show information from FILEs (a.out by default)." msgstr "" -#: src/objdump.c:236 src/readelf.c:430 +#: src/objdump.c:236 src/readelf.c:431 msgid "No operation specified.\n" msgstr "Keine Operation angegeben.\n" @@ -3691,11 +3695,11 @@ msgstr "Keine Operation angegeben.\n" msgid "while close `%s'" msgstr "" -#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818 +#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819 msgid "INVALID SYMBOL" msgstr "" -#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851 +#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852 msgid "INVALID SECTION" msgstr "" @@ -3834,293 +3838,293 @@ msgstr "Keine symbolischen Namen für Adressen in DWARF-Daten suchen" msgid "Print information from ELF file in human-readable form." msgstr "Informationen aus der ELF-Datei in menschenlesbarer Form ausgeben." -#: src/readelf.c:401 +#: src/readelf.c:402 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "" -#: src/readelf.c:465 +#: src/readelf.c:466 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "konnte Elf-Deskriptor nicht erzeugen: %s" -#: src/readelf.c:477 +#: src/readelf.c:478 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "" -#: src/readelf.c:482 +#: src/readelf.c:483 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "" -#: src/readelf.c:574 +#: src/readelf.c:575 #, c-format msgid "cannot stat input file" msgstr "" -#: src/readelf.c:576 +#: src/readelf.c:577 #, c-format msgid "input file is empty" msgstr "" -#: src/readelf.c:578 +#: src/readelf.c:579 #, c-format msgid "failed reading '%s': %s" msgstr "Konnte '%s' nicht lesen: %s" -#: src/readelf.c:614 +#: src/readelf.c:615 #, c-format msgid "cannot read ELF header: %s" msgstr "" -#: src/readelf.c:622 +#: src/readelf.c:623 #, c-format msgid "cannot create EBL handle" msgstr "" -#: src/readelf.c:635 +#: src/readelf.c:636 #, fuzzy, c-format msgid "cannot determine number of program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" -#: src/readelf.c:721 +#: src/readelf.c:722 msgid "NONE (None)" msgstr "" -#: src/readelf.c:722 +#: src/readelf.c:723 msgid "REL (Relocatable file)" msgstr "" -#: src/readelf.c:723 +#: src/readelf.c:724 msgid "EXEC (Executable file)" msgstr "" -#: src/readelf.c:724 +#: src/readelf.c:725 msgid "DYN (Shared object file)" msgstr "" -#: src/readelf.c:725 +#: src/readelf.c:726 msgid "CORE (Core file)" msgstr "" -#: src/readelf.c:730 +#: src/readelf.c:731 #, c-format msgid "OS Specific: (%x)\n" msgstr "" -#: src/readelf.c:732 +#: src/readelf.c:733 #, c-format msgid "Processor Specific: (%x)\n" msgstr "" -#: src/readelf.c:742 +#: src/readelf.c:743 msgid "" "ELF Header:\n" " Magic: " msgstr "" -#: src/readelf.c:746 +#: src/readelf.c:747 #, c-format msgid "" "\n" " Class: %s\n" msgstr "" -#: src/readelf.c:751 +#: src/readelf.c:752 #, fuzzy, c-format msgid " Data: %s\n" msgstr " Daten: %s\n" -#: src/readelf.c:757 +#: src/readelf.c:758 #, c-format msgid " Ident Version: %hhd %s\n" msgstr "" -#: src/readelf.c:759 src/readelf.c:776 +#: src/readelf.c:760 src/readelf.c:777 msgid "(current)" msgstr "(aktuell)" -#: src/readelf.c:763 +#: src/readelf.c:764 #, c-format msgid " OS/ABI: %s\n" msgstr "" -#: src/readelf.c:766 +#: src/readelf.c:767 #, c-format msgid " ABI Version: %hhd\n" msgstr "" -#: src/readelf.c:769 +#: src/readelf.c:770 msgid " Type: " msgstr " Typ: " -#: src/readelf.c:772 +#: src/readelf.c:773 #, c-format msgid " Machine: %s\n" msgstr "" -#: src/readelf.c:774 +#: src/readelf.c:775 #, c-format msgid " Version: %d %s\n" msgstr "" -#: src/readelf.c:778 +#: src/readelf.c:779 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr "" -#: src/readelf.c:781 +#: src/readelf.c:782 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr "" -#: src/readelf.c:782 src/readelf.c:785 +#: src/readelf.c:783 src/readelf.c:786 msgid "(bytes into file)" msgstr "" -#: src/readelf.c:784 +#: src/readelf.c:785 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr "" -#: src/readelf.c:787 +#: src/readelf.c:788 #, c-format msgid " Flags: %s\n" msgstr "" -#: src/readelf.c:790 +#: src/readelf.c:791 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811 +#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812 msgid "(bytes)" msgstr "(Bytes)" -#: src/readelf.c:793 +#: src/readelf.c:794 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:796 +#: src/readelf.c:797 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr "" -#: src/readelf.c:803 +#: src/readelf.c:804 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr "" -#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837 +#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838 msgid " ([0] not available)" msgstr "" -#: src/readelf.c:810 +#: src/readelf.c:811 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr "" -#: src/readelf.c:813 +#: src/readelf.c:814 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr "" -#: src/readelf.c:820 +#: src/readelf.c:821 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr "" -#: src/readelf.c:833 +#: src/readelf.c:834 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr "" -#: src/readelf.c:841 +#: src/readelf.c:842 #, c-format msgid "" " Section header string table index: XINDEX%s\n" "\n" msgstr "" -#: src/readelf.c:845 +#: src/readelf.c:846 #, c-format msgid "" " Section header string table index: %<PRId16>\n" "\n" msgstr "" -#: src/readelf.c:877 +#: src/readelf.c:878 #, c-format msgid "" "There are %d section headers, starting at offset %#<PRIx64>:\n" "\n" msgstr "" -#: src/readelf.c:887 +#: src/readelf.c:888 msgid "Section Headers:" msgstr "" -#: src/readelf.c:890 +#: src/readelf.c:891 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" msgstr "" -#: src/readelf.c:892 +#: src/readelf.c:893 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" msgstr "" -#: src/readelf.c:899 src/readelf.c:1052 +#: src/readelf.c:900 src/readelf.c:1053 #, c-format msgid "cannot get section: %s" msgstr "" -#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353 -#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553 -#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244 -#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588 -#: src/unstrip.c:1778 +#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353 +#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558 +#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250 +#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593 +#: src/unstrip.c:1782 #, c-format msgid "cannot get section header: %s" msgstr "" -#: src/readelf.c:964 +#: src/readelf.c:965 msgid "Program Headers:" msgstr "Programm-Köpfe:" -#: src/readelf.c:966 +#: src/readelf.c:967 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" -#: src/readelf.c:969 +#: src/readelf.c:970 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" msgstr "" -#: src/readelf.c:1009 +#: src/readelf.c:1010 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "" -#: src/readelf.c:1030 +#: src/readelf.c:1031 msgid "" "\n" " Section to Segment mapping:\n" " Segment Sections..." msgstr "" -#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870 +#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883 #, c-format msgid "cannot get program header: %s" msgstr "" -#: src/readelf.c:1175 +#: src/readelf.c:1176 #, c-format msgid "" "\n" @@ -4131,7 +4135,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1180 +#: src/readelf.c:1181 #, c-format msgid "" "\n" @@ -4142,15 +4146,15 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1188 +#: src/readelf.c:1189 msgid "<INVALID SYMBOL>" msgstr "" -#: src/readelf.c:1202 +#: src/readelf.c:1203 msgid "<INVALID SECTION>" msgstr "" -#: src/readelf.c:1353 +#: src/readelf.c:1354 #, c-format msgid "" "\n" @@ -4163,43 +4167,43 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1365 +#: src/readelf.c:1366 msgid " Type Value\n" msgstr "" -#: src/readelf.c:1389 +#: src/readelf.c:1390 #, c-format msgid "Shared library: [%s]\n" msgstr "" -#: src/readelf.c:1394 +#: src/readelf.c:1395 #, c-format msgid "Library soname: [%s]\n" msgstr "" -#: src/readelf.c:1399 +#: src/readelf.c:1400 #, c-format msgid "Library rpath: [%s]\n" msgstr "" -#: src/readelf.c:1404 +#: src/readelf.c:1405 #, c-format msgid "Library runpath: [%s]\n" msgstr "" -#: src/readelf.c:1424 +#: src/readelf.c:1425 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "" -#: src/readelf.c:1534 src/readelf.c:1720 +#: src/readelf.c:1535 src/readelf.c:1721 #, c-format msgid "" "\n" "Invalid symbol table at offset %#0<PRIx64>\n" msgstr "" -#: src/readelf.c:1552 src/readelf.c:1737 +#: src/readelf.c:1553 src/readelf.c:1738 #, c-format msgid "" "\n" @@ -4212,7 +4216,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1567 +#: src/readelf.c:1568 #, c-format msgid "" "\n" @@ -4223,29 +4227,29 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1577 +#: src/readelf.c:1578 msgid " Offset Type Value Name\n" msgstr "" -#: src/readelf.c:1579 +#: src/readelf.c:1580 msgid " Offset Type Value Name\n" msgstr "" -#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674 -#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831 -#: src/readelf.c:1850 src/readelf.c:1863 +#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675 +#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832 +#: src/readelf.c:1851 src/readelf.c:1864 msgid "<INVALID RELOC>" msgstr "" -#: src/readelf.c:1749 +#: src/readelf.c:1750 msgid " Offset Type Value Addend Name\n" msgstr "" -#: src/readelf.c:1751 +#: src/readelf.c:1752 msgid " Offset Type Value Addend Name\n" msgstr "" -#: src/readelf.c:1952 +#: src/readelf.c:1953 #, c-format msgid "" "\n" @@ -4256,40 +4260,40 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1958 +#: src/readelf.c:1959 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:1968 +#: src/readelf.c:1969 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: src/readelf.c:1970 +#: src/readelf.c:1971 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr "" -#: src/readelf.c:1990 +#: src/readelf.c:1991 #, c-format msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" msgstr "" -#: src/readelf.c:2078 +#: src/readelf.c:2079 #, c-format msgid "bad dynamic symbol" msgstr "" -#: src/readelf.c:2160 +#: src/readelf.c:2161 msgid "none" msgstr "keine" -#: src/readelf.c:2177 +#: src/readelf.c:2178 msgid "| <unknown>" msgstr "| <unbekannt>" -#: src/readelf.c:2202 +#: src/readelf.c:2203 #, c-format msgid "" "\n" @@ -4302,17 +4306,17 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2225 +#: src/readelf.c:2226 #, fuzzy, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Version: %hu Datei: %s Cnt: %hu\n" -#: src/readelf.c:2238 +#: src/readelf.c:2239 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Name: %s Flags: %s Version: %hu\n" -#: src/readelf.c:2269 +#: src/readelf.c:2270 #, c-format msgid "" "\n" @@ -4325,17 +4329,17 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2299 +#: src/readelf.c:2300 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" -#: src/readelf.c:2314 +#: src/readelf.c:2315 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr "" -#: src/readelf.c:2546 +#: src/readelf.c:2547 #, c-format msgid "" "\n" @@ -4348,15 +4352,15 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2576 +#: src/readelf.c:2577 msgid " 0 *local* " msgstr " 0 *lokal* " -#: src/readelf.c:2581 +#: src/readelf.c:2582 msgid " 1 *global* " msgstr " 1 *global* " -#: src/readelf.c:2612 +#: src/readelf.c:2613 #, c-format msgid "" "\n" @@ -4371,41 +4375,41 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2636 +#: src/readelf.c:2637 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr "" -#: src/readelf.c:2638 +#: src/readelf.c:2639 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:2645 +#: src/readelf.c:2646 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:2658 +#: src/readelf.c:2659 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" -" unsuccessful lookup: %f\n" +"\t\t\t unsuccessful lookup: %f\n" msgstr "" -#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759 +#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760 #, c-format msgid "cannot get data for section %d: %s" msgstr "" -#: src/readelf.c:2813 +#: src/readelf.c:2814 #, c-format msgid "" " Symbol Bias: %u\n" " Bitmask Size: %zu bytes %<PRIuFAST32>%% bits set 2nd hash shift: %u\n" msgstr "" -#: src/readelf.c:2887 +#: src/readelf.c:2888 #, c-format msgid "" "\n" @@ -4416,13 +4420,13 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:2901 +#: src/readelf.c:2902 msgid "" " Library Time Stamp Checksum Version " "Flags" msgstr "" -#: src/readelf.c:2951 +#: src/readelf.c:2952 #, c-format msgid "" "\n" @@ -4430,140 +4434,140 @@ msgid "" "#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:2967 +#: src/readelf.c:2968 msgid " Owner Size\n" msgstr "" -#: src/readelf.c:2993 +#: src/readelf.c:2994 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" -#: src/readelf.c:3025 +#: src/readelf.c:3026 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" -#: src/readelf.c:3030 +#: src/readelf.c:3031 #, c-format msgid " File: %11<PRIu32>\n" msgstr " File: %11<PRIu32>\n" -#: src/readelf.c:3065 +#: src/readelf.c:3066 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3068 +#: src/readelf.c:3069 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3071 +#: src/readelf.c:3072 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3078 +#: src/readelf.c:3079 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3081 +#: src/readelf.c:3082 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3117 +#: src/readelf.c:3118 #, c-format msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3120 +#: src/readelf.c:3121 #, c-format msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3125 +#: src/readelf.c:3126 #, c-format msgid "%#<PRIx64> <%s+%#<PRIx64>>" msgstr "%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3128 +#: src/readelf.c:3129 #, c-format msgid "%#0*<PRIx64> <%s+%#<PRIx64>>" msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3134 +#: src/readelf.c:3135 #, c-format msgid "%s+%#<PRIx64> <%s>" msgstr "%s+%#<PRIx64> <%s>" -#: src/readelf.c:3137 +#: src/readelf.c:3138 #, c-format msgid "%s+%#0*<PRIx64> <%s>" msgstr "%s+%#0*<PRIx64> <%s>" -#: src/readelf.c:3141 +#: src/readelf.c:3142 #, c-format msgid "%#<PRIx64> <%s>" msgstr "%#<PRIx64> <%s>" -#: src/readelf.c:3144 +#: src/readelf.c:3145 #, c-format msgid "%#0*<PRIx64> <%s>" msgstr "%#0*<PRIx64> <%s>" -#: src/readelf.c:3149 +#: src/readelf.c:3150 #, c-format msgid "%s+%#<PRIx64>" msgstr "%s+%#<PRIx64>" -#: src/readelf.c:3152 +#: src/readelf.c:3153 #, c-format msgid "%s+%#0*<PRIx64>" msgstr "%s+%#0*<PRIx64>" -#: src/readelf.c:3260 +#: src/readelf.c:3284 #, c-format msgid "unknown tag %hx" msgstr "unbekannter Tag %hx" -#: src/readelf.c:3262 +#: src/readelf.c:3286 #, c-format msgid "unknown user tag %hx" msgstr "unbekannter Benutzer-Tag %hx" -#: src/readelf.c:3480 +#: src/readelf.c:3510 #, c-format msgid "unknown attribute %hx" msgstr "unbekanntes Attribut %hx" -#: src/readelf.c:3483 +#: src/readelf.c:3513 #, c-format msgid "unknown user attribute %hx" msgstr "unbekanntes Benutzer-Attribut %hx" -#: src/readelf.c:3529 +#: src/readelf.c:3563 #, c-format msgid "unknown form %<PRIx64>" msgstr "unbekannte Form %<PRIx64>" -#: src/readelf.c:3763 +#: src/readelf.c:3797 msgid "empty block" msgstr "" -#: src/readelf.c:3766 +#: src/readelf.c:3800 #, c-format msgid "%zu byte block:" msgstr "" -#: src/readelf.c:4175 +#: src/readelf.c:4222 #, c-format msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" msgstr "" -#: src/readelf.c:4188 +#: src/readelf.c:4235 #, c-format msgid "" "\n" @@ -4571,37 +4575,37 @@ msgid "" " [ Code]\n" msgstr "" -#: src/readelf.c:4195 +#: src/readelf.c:4242 #, c-format msgid "" "\n" "Abbreviation section at offset %<PRIu64>:\n" msgstr "" -#: src/readelf.c:4208 +#: src/readelf.c:4255 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr "" -#: src/readelf.c:4224 +#: src/readelf.c:4271 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr "" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "yes" msgstr "ja" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "no" msgstr "nein" -#: src/readelf.c:4263 +#: src/readelf.c:4310 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "" -#: src/readelf.c:4268 +#: src/readelf.c:4315 #, c-format msgid "" "\n" @@ -4612,118 +4616,118 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:4298 +#: src/readelf.c:4345 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4300 +#: src/readelf.c:4347 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" msgstr "" -#: src/readelf.c:4319 +#: src/readelf.c:4366 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "" -#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897 -#: src/readelf.c:5992 src/readelf.c:6164 +#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079 +#: src/readelf.c:6178 src/readelf.c:6350 #, c-format msgid "" "\n" "DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n" msgstr "" -#: src/readelf.c:4338 src/readelf.c:5911 +#: src/readelf.c:4385 src/readelf.c:6097 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr "" -#: src/readelf.c:4360 src/readelf.c:5933 +#: src/readelf.c:4407 src/readelf.c:6119 #, c-format msgid " [%6tx] base address %s\n" msgstr "" -#: src/readelf.c:4371 +#: src/readelf.c:4418 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4373 +#: src/readelf.c:4420 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332 +#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518 #, c-format msgid "cannot get %s content: %s" msgstr "" -#: src/readelf.c:4806 +#: src/readelf.c:4853 #, c-format msgid "" "\n" "Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n" msgstr "" -#: src/readelf.c:4833 src/readelf.c:5486 +#: src/readelf.c:4881 src/readelf.c:5615 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "" -#: src/readelf.c:4855 +#: src/readelf.c:4903 #, c-format msgid "" "\n" " [%6tx] Zero terminator\n" msgstr "" -#: src/readelf.c:4924 +#: src/readelf.c:4987 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "ungültige Abschnittsausrichtung" -#: src/readelf.c:4936 +#: src/readelf.c:4999 msgid "FDE address encoding: " msgstr "" -#: src/readelf.c:4942 +#: src/readelf.c:5005 msgid "LSDA pointer encoding: " msgstr "" -#: src/readelf.c:5034 +#: src/readelf.c:5101 #, c-format msgid " (offset: %#<PRIx64>)" msgstr "" -#: src/readelf.c:5041 +#: src/readelf.c:5108 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr "" -#: src/readelf.c:5068 +#: src/readelf.c:5135 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr "" -#: src/readelf.c:5114 +#: src/readelf.c:5182 #, c-format msgid "cannot get attribute code: %s" msgstr "" -#: src/readelf.c:5122 +#: src/readelf.c:5190 #, c-format msgid "cannot get attribute form: %s" msgstr "" -#: src/readelf.c:5135 +#: src/readelf.c:5203 #, c-format msgid "cannot get attribute value: %s" msgstr "" -#: src/readelf.c:5331 +#: src/readelf.c:5428 #, c-format msgid "" "\n" @@ -4731,7 +4735,16 @@ msgid "" " [Offset]\n" msgstr "" -#: src/readelf.c:5356 +#: src/readelf.c:5458 +#, c-format +msgid "" +" Type unit at offset %<PRIu64>:\n" +" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %" +"<PRIu8>, Offset size: %<PRIu8>\n" +" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n" +msgstr "" + +#: src/readelf.c:5466 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -4739,44 +4752,44 @@ msgid "" "<PRIu8>, Offset size: %<PRIu8>\n" msgstr "" -#: src/readelf.c:5374 +#: src/readelf.c:5489 #, c-format msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s" msgstr "" -#: src/readelf.c:5385 +#: src/readelf.c:5500 #, c-format msgid "cannot get DIE offset: %s" msgstr "" -#: src/readelf.c:5393 +#: src/readelf.c:5508 #, c-format msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s" msgstr "" -#: src/readelf.c:5422 +#: src/readelf.c:5537 #, c-format msgid "cannot get next DIE: %s\n" msgstr "" -#: src/readelf.c:5429 +#: src/readelf.c:5544 #, c-format msgid "cannot get next DIE: %s" msgstr "" -#: src/readelf.c:5464 +#: src/readelf.c:5593 #, c-format msgid "cannot get line data section data: %s" msgstr "" -#: src/readelf.c:5477 +#: src/readelf.c:5606 #, c-format msgid "" "\n" "Table at offset %Zu:\n" msgstr "" -#: src/readelf.c:5529 +#: src/readelf.c:5661 #, c-format msgid "" "\n" @@ -4784,6 +4797,7 @@ msgid "" " DWARF version: %<PRIuFAST16>\n" " Prologue length: %<PRIu64>\n" " Minimum instruction length: %<PRIuFAST8>\n" +" Maximum operations per instruction: %<PRIuFAST8>\n" " Initial value if '%s': %<PRIuFAST8>\n" " Line base: %<PRIdFAST8>\n" " Line range: %<PRIuFAST8>\n" @@ -4792,154 +4806,179 @@ msgid "" "Opcodes:\n" msgstr "" -#: src/readelf.c:5548 +#: src/readelf.c:5682 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "" -#: src/readelf.c:5563 +#: src/readelf.c:5697 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:5571 +#: src/readelf.c:5705 msgid "" "\n" "Directory table:" msgstr "" -#: src/readelf.c:5587 +#: src/readelf.c:5721 msgid "" "\n" "File name table:\n" " Entry Dir Time Size Name" msgstr "" -#: src/readelf.c:5616 +#: src/readelf.c:5750 msgid "" "\n" "Line number statements:" msgstr "" -#: src/readelf.c:5677 +#: src/readelf.c:5824 +#, c-format +msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" +msgstr "" + +#: src/readelf.c:5829 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr "" -#: src/readelf.c:5697 +#: src/readelf.c:5849 #, c-format msgid " extended opcode %u: " msgstr "" -#: src/readelf.c:5702 +#: src/readelf.c:5854 msgid "end of sequence" msgstr "" -#: src/readelf.c:5717 +#: src/readelf.c:5871 #, c-format msgid "set address to %s\n" msgstr "" -#: src/readelf.c:5738 +#: src/readelf.c:5892 #, c-format msgid "define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" -#: src/readelf.c:5747 +#: src/readelf.c:5905 +#, c-format +msgid " set discriminator to %u\n" +msgstr "" + +#: src/readelf.c:5910 msgid "unknown opcode" msgstr "" -#: src/readelf.c:5759 +#: src/readelf.c:5922 msgid " copy" msgstr "" -#: src/readelf.c:5769 +#: src/readelf.c:5933 +#, c-format +msgid "advance address by %u to %s, op_index to %u\n" +msgstr "" + +#: src/readelf.c:5937 #, c-format msgid "advance address by %u to %s\n" msgstr "" -#: src/readelf.c:5780 +#: src/readelf.c:5948 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr "" -#: src/readelf.c:5788 +#: src/readelf.c:5956 #, c-format msgid " set file to %<PRIu64>\n" msgstr "" -#: src/readelf.c:5798 +#: src/readelf.c:5966 #, c-format msgid " set column to %<PRIu64>\n" msgstr "" -#: src/readelf.c:5805 +#: src/readelf.c:5973 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr "" -#: src/readelf.c:5811 +#: src/readelf.c:5979 msgid " set basic block flag" msgstr "" -#: src/readelf.c:5821 +#: src/readelf.c:5988 +#, c-format +msgid "advance address by constant %u to %s, op_index to %u\n" +msgstr "" + +#: src/readelf.c:5992 #, c-format msgid "advance address by constant %u to %s\n" msgstr "" -#: src/readelf.c:5837 +#: src/readelf.c:6010 #, c-format msgid "advance address by fixed value %u to %s\n" msgstr "" -#: src/readelf.c:5846 +#: src/readelf.c:6019 msgid " set prologue end flag" msgstr "" -#: src/readelf.c:5851 +#: src/readelf.c:6024 msgid " set epilogue begin flag" msgstr "" -#: src/readelf.c:5860 +#: src/readelf.c:6033 +#, c-format +msgid " set isa to %u\n" +msgstr "" + +#: src/readelf.c:6042 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" msgstr[0] "" msgstr[1] "" -#: src/readelf.c:5892 +#: src/readelf.c:6074 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "" -#: src/readelf.c:5947 +#: src/readelf.c:6133 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s..%s" -#: src/readelf.c:5949 +#: src/readelf.c:6135 #, c-format msgid " %s..%s" msgstr " %s..%s" -#: src/readelf.c:6002 +#: src/readelf.c:6188 #, c-format msgid "cannot get macro information section data: %s" msgstr "" -#: src/readelf.c:6081 +#: src/readelf.c:6267 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "" -#: src/readelf.c:6149 +#: src/readelf.c:6335 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" -#: src/readelf.c:6188 +#: src/readelf.c:6374 #, c-format msgid "" "\n" @@ -4947,47 +4986,47 @@ msgid "" " %*s String\n" msgstr "" -#: src/readelf.c:6202 +#: src/readelf.c:6388 #, c-format msgid " *** error while reading strings: %s\n" msgstr "" -#: src/readelf.c:6222 +#: src/readelf.c:6408 #, c-format msgid "" "\n" "Call frame search table section [%2zu] '.eh_frame_hdr':\n" msgstr "" -#: src/readelf.c:6324 +#: src/readelf.c:6510 #, c-format msgid "" "\n" "Exception handling table section [%2zu] '.gcc_except_table':\n" msgstr "" -#: src/readelf.c:6347 +#: src/readelf.c:6533 #, c-format msgid " LPStart encoding: %#x " msgstr "" -#: src/readelf.c:6359 +#: src/readelf.c:6545 #, c-format msgid " TType encoding: %#x " msgstr "" -#: src/readelf.c:6373 +#: src/readelf.c:6559 #, c-format msgid " Call site encoding: %#x " msgstr "" -#: src/readelf.c:6386 +#: src/readelf.c:6572 msgid "" "\n" " Call site table:" msgstr "" -#: src/readelf.c:6400 +#: src/readelf.c:6586 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -4996,128 +5035,128 @@ msgid "" " Action: %u\n" msgstr "" -#: src/readelf.c:6460 +#: src/readelf.c:6646 #, c-format msgid "invalid TType encoding" msgstr "" -#: src/readelf.c:6484 +#: src/readelf.c:6671 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "" -#: src/readelf.c:6620 src/readelf.c:7221 +#: src/readelf.c:6810 src/readelf.c:7411 #, c-format msgid "cannot convert core note data: %s" msgstr "" -#: src/readelf.c:6961 +#: src/readelf.c:7151 #, c-format msgid "" "\n" "%*s... <repeats %u more times> ..." msgstr "" -#: src/readelf.c:7320 +#: src/readelf.c:7510 msgid " Owner Data size Type\n" msgstr "" -#: src/readelf.c:7338 +#: src/readelf.c:7528 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr "" -#: src/readelf.c:7372 +#: src/readelf.c:7562 #, c-format msgid "cannot get content of note section: %s" msgstr "" -#: src/readelf.c:7399 +#: src/readelf.c:7589 #, c-format msgid "" "\n" "Note section [%2zu] '%s' of %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:7422 +#: src/readelf.c:7612 #, c-format msgid "" "\n" "Note segment of %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:7468 +#: src/readelf.c:7658 #, c-format msgid "" "\n" "Section [%Zu] '%s' has no data to dump.\n" msgstr "" -#: src/readelf.c:7474 src/readelf.c:7497 +#: src/readelf.c:7664 src/readelf.c:7687 #, c-format msgid "cannot get data for section [%Zu] '%s': %s" msgstr "" -#: src/readelf.c:7478 +#: src/readelf.c:7668 #, c-format msgid "" "\n" "Hex dump of section [%Zu] '%s', %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:7491 +#: src/readelf.c:7681 #, c-format msgid "" "\n" "Section [%Zu] '%s' has no strings to dump.\n" msgstr "" -#: src/readelf.c:7501 +#: src/readelf.c:7691 #, c-format msgid "" "\n" "String section [%Zu] '%s' contains %<PRIu64> bytes at offset %#0<PRIx64>:\n" msgstr "" -#: src/readelf.c:7549 +#: src/readelf.c:7739 #, c-format msgid "" "\n" "section [%lu] does not exist" msgstr "" -#: src/readelf.c:7576 +#: src/readelf.c:7766 #, c-format msgid "" "\n" "section '%s' does not exist" msgstr "" -#: src/readelf.c:7637 +#: src/readelf.c:7827 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "" -#: src/readelf.c:7640 +#: src/readelf.c:7830 #, c-format msgid "" "\n" "Archive '%s' has no symbol index\n" msgstr "" -#: src/readelf.c:7644 +#: src/readelf.c:7834 #, c-format msgid "" "\n" "Index of archive '%s' has %Zu entries:\n" msgstr "" -#: src/readelf.c:7662 +#: src/readelf.c:7852 #, c-format msgid "cannot extract member at offset %Zu in '%s': %s" msgstr "" -#: src/readelf.c:7667 +#: src/readelf.c:7857 #, c-format msgid "Archive member '%s' contains:\n" msgstr "" @@ -5471,7 +5510,7 @@ msgstr "" msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:264 src/unstrip.c:1817 +#: src/unstrip.c:264 src/unstrip.c:1830 #, c-format msgid "cannot create program headers: %s" msgstr "konnte Programm-Kopf nicht erstellen: %s" @@ -5486,12 +5525,12 @@ msgstr "konnte Programm-Kopf nicht kopieren: %s" msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:283 src/unstrip.c:1505 +#: src/unstrip.c:283 src/unstrip.c:1511 #, c-format msgid "cannot get section data: %s" msgstr "konnte Abschnittsdaten nicht holen: %s" -#: src/unstrip.c:285 src/unstrip.c:1507 +#: src/unstrip.c:285 src/unstrip.c:1513 #, c-format msgid "cannot copy section data: %s" msgstr "konnte Abschnittsdaten nicht kopieren: %s" @@ -5501,181 +5540,190 @@ msgstr "konnte Abschnittsdaten nicht kopieren: %s" msgid "cannot create directory '%s'" msgstr "konnte Verzeichnis nicht erstellen: %s" -#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540 +#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545 #, c-format msgid "cannot get symbol table entry: %s" msgstr "konnte Eintrag aus der Symboltabelle nicht holen: %s" -#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613 -#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715 +#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616 +#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720 #, c-format msgid "cannot update symbol table: %s" msgstr "konnte Symboltabelle nicht aktualisieren: %s" -#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209 -#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791 +#: src/unstrip.c:375 #, c-format msgid "cannot update section header: %s" msgstr "" -#: src/unstrip.c:408 src/unstrip.c:419 +#: src/unstrip.c:414 src/unstrip.c:425 #, c-format msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:507 +#: src/unstrip.c:512 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:519 +#: src/unstrip.c:524 #, c-format msgid "unexpected section type in [%Zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:769 +#: src/unstrip.c:772 #, c-format msgid "invalid string offset in symbol [%Zu]" msgstr "" -#: src/unstrip.c:911 src/unstrip.c:1248 +#: src/unstrip.c:914 src/unstrip.c:1254 #, c-format msgid "cannot read section [%Zu] name: %s" msgstr "" -#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004 +#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:992 +#: src/unstrip.c:995 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1047 src/unstrip.c:1370 +#: src/unstrip.c:1050 src/unstrip.c:1376 #, c-format msgid "cannot find matching section for [%Zu] '%s'" msgstr "" -#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451 +#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1195 +#: src/unstrip.c:1198 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1223 src/unstrip.c:1227 +#: src/unstrip.c:1225 src/unstrip.c:1229 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466 +#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1293 src/unstrip.c:1385 +#: src/unstrip.c:1240 +#, c-format +msgid "more sections in stripped file than debug file -- arguments reversed?" +msgstr "" + +#: src/unstrip.c:1299 src/unstrip.c:1391 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1445 +#: src/unstrip.c:1451 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1548 +#: src/unstrip.c:1553 #, c-format msgid "symbol [%Zu] has invalid section index" msgstr "" -#: src/unstrip.c:1800 +#: src/unstrip.c:1791 +#, fuzzy, c-format +msgid "cannot read section data: %s" +msgstr "konnte Abschnittsdaten nicht holen: %s" + +#: src/unstrip.c:1812 #, c-format msgid "cannot get ELF header: %s" msgstr "" -#: src/unstrip.c:1827 +#: src/unstrip.c:1840 #, c-format msgid "cannot update program header: %s" msgstr "konnte Programm-Kopf nicht aktualisieren: %s" -#: src/unstrip.c:1832 src/unstrip.c:1911 +#: src/unstrip.c:1845 src/unstrip.c:1924 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:1880 +#: src/unstrip.c:1893 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1883 +#: src/unstrip.c:1896 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034 +#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:1960 +#: src/unstrip.c:1973 #, c-format msgid "'%s' and '%s' do not seem to match" msgstr "" -#: src/unstrip.c:1991 +#: src/unstrip.c:2004 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:1995 +#: src/unstrip.c:2008 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2010 +#: src/unstrip.c:2023 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2014 +#: src/unstrip.c:2027 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2027 +#: src/unstrip.c:2040 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2058 +#: src/unstrip.c:2071 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2191 +#: src/unstrip.c:2204 #, c-format msgid "no matching modules found" msgstr "kein passendes Modul gefunden" -#: src/unstrip.c:2200 +#: src/unstrip.c:2213 #, c-format msgid "matched more than one module" msgstr "mehr als ein passendes Modul" -#: src/unstrip.c:2247 +#: src/unstrip.c:2260 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2248 +#: src/unstrip.c:2261 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" @@ -4,14 +4,15 @@ # Domingo Becker <[email protected]>, 2009. # Gladys Guerrero Lozano <[email protected]>, 2009. # Héctor Daniel Cabrera <[email protected]>, 2009, 2010. +# Claudio Rodrigo Pereyra Diaz <[email protected]>, 2010. # msgid "" msgstr "" "Project-Id-Version: elfutils.master.es\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2010-05-03 14:14-0700\n" -"PO-Revision-Date: 2010-04-19 10:51-0300\n" -"Last-Translator: Héctor Daniel Cabrera <[email protected]>\n" +"POT-Creation-Date: 2010-06-28 12:08-0700\n" +"PO-Revision-Date: 2010-06-23 10:03-0300\n" +"Last-Translator: Claudio Rodrigo Pereyra Diaz <[email protected]>\n" "Language-Team: Fedora Spanish <[email protected]>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,8 +22,8 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Country: ARGENTINA\n" -#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822 -#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295 +#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823 +#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308 #, c-format msgid "memory exhausted" msgstr "memoria agotada" @@ -208,7 +209,7 @@ msgstr ".debug_ranges section faltante" msgid "invalid CFI section" msgstr "sección CFI inválida" -#: libdwfl/argp-std.c:67 src/unstrip.c:2237 +#: libdwfl/argp-std.c:67 src/unstrip.c:2250 msgid "Input selection options:" msgstr "Opciones de selección de entrada:" @@ -357,6 +358,10 @@ msgstr "no es un archivo ELF válido" msgid "cannot handle DWARF type description" msgstr "no es posible manipular tipo de descripción DWARF" +#: libdwfl/libdwflP.h:97 +msgid "ELF file does not match build ID" +msgstr "El archivo ELF no coincide con el ID construido" + #: libebl/eblbackendname.c:63 msgid "No backend" msgstr "No hay segundo plano (Backend)" @@ -417,7 +422,7 @@ msgstr "tamaño inválido del operando fuente" msgid "invalid size of destination operand" msgstr "tamaño inválido del operando destino" -#: libelf/elf_error.c:108 src/readelf.c:4779 +#: libelf/elf_error.c:108 src/readelf.c:4826 #, c-format msgid "invalid encoding" msgstr "codificación inválida" @@ -498,7 +503,7 @@ msgstr "no coinciden los datos/scn" msgid "invalid section header" msgstr "encabezamiento de sección inválida" -#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343 +#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529 #, c-format msgid "invalid data" msgstr "datos inválidos" @@ -585,7 +590,7 @@ msgstr "[DIREC...]" #: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239 #: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181 -#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227 +#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227 #: src/strip.c:204 src/unstrip.c:234 #, c-format msgid "" @@ -601,7 +606,7 @@ msgstr "" #: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244 #: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186 -#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232 +#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232 #: src/strip.c:209 src/unstrip.c:239 #, c-format msgid "Written by %s.\n" @@ -617,12 +622,12 @@ msgstr "Sintaxis de sección requiere exactamente un módulo" msgid "offset %#<PRIxMAX> lies outside section '%s'" msgstr "Compensación %#<PRIxMAX> se encuentra fuera de sección '%s'" -#: src/addr2line.c:461 +#: src/addr2line.c:469 #, c-format msgid "cannot find symbol '%s'" msgstr "no se puede encontrar símbolo '%s'" -#: src/addr2line.c:466 +#: src/addr2line.c:474 #, c-format msgid "offset %#<PRIxMAX> lies outside contents of '%s'" msgstr "compensación %#<PRIxMAX> se encuentra fuera de contenido de '%s'" @@ -1009,8 +1014,8 @@ msgstr "Valor inválido '%s' para parámetro --gaps" #: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767 #: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301 -#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900 -#: src/unstrip.c:1929 +#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913 +#: src/unstrip.c:1942 #, c-format msgid "cannot open '%s'" msgstr "Imposible abrir '%s'" @@ -1068,7 +1073,7 @@ msgstr "Chequeo minucioso de ficheros ELF de acuerdo con gABI/psABI " msgid "FILE..." msgstr "FICHERO..." -#: src/elflint.c:159 src/readelf.c:272 +#: src/elflint.c:159 src/readelf.c:273 #, c-format msgid "cannot open input file" msgstr "no se puede abrir el fichero de entrada" @@ -1087,7 +1092,7 @@ msgstr "error al cerrar el descriptor ELF: %s\n" msgid "No errors" msgstr "No hay errores" -#: src/elflint.c:223 src/readelf.c:425 +#: src/elflint.c:223 src/readelf.c:426 msgid "Missing file name.\n" msgstr "Falta el nombre de archivo.\n" @@ -3455,7 +3460,7 @@ msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s" msgstr "" "Advertencia: el tamaño de `%s' cambió de %<PRIu64> en %s a %<PRIu64> en %s" -#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543 +#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543 #, c-format msgid "cannot determine number of sections: %s" msgstr "no se pudieron determinar el número de secciones: %s" @@ -3711,7 +3716,7 @@ msgstr "error interno: sección non-nobits sigue a sección nobits" msgid "cannot get header of 0th section: %s" msgstr "No se puede obtener encabezamiento de sección 0th: %s" -#: src/ldgeneric.c:6941 src/unstrip.c:1808 +#: src/ldgeneric.c:6941 src/unstrip.c:1820 #, c-format msgid "cannot update ELF header: %s" msgstr "No se puede actualizar encabezamiento ELF: %s" @@ -3915,11 +3920,11 @@ msgstr "%s%s%s: no se reconoció el formato de fichero" msgid "cannot create search tree" msgstr "No se puede crear el árbol de búsqueda" -#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885 -#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549 -#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265 -#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939 -#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604 +#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886 +#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550 +#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266 +#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940 +#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794 #: src/size.c:425 src/size.c:499 src/strip.c:483 #, c-format msgid "cannot get section header string table index" @@ -4009,7 +4014,7 @@ msgstr "Sólo muestra información para NOMBRE de sección." msgid "Show information from FILEs (a.out by default)." msgstr "Muestra información de FICHEROS (a.out por defecto)." -#: src/objdump.c:236 src/readelf.c:430 +#: src/objdump.c:236 src/readelf.c:431 msgid "No operation specified.\n" msgstr "No se especificó una operación.\n" @@ -4018,11 +4023,11 @@ msgstr "No se especificó una operación.\n" msgid "while close `%s'" msgstr "mientras cierra `%s'" -#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818 +#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819 msgid "INVALID SYMBOL" msgstr "SÍMBOLO INVÁLIDO" -#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851 +#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852 msgid "INVALID SECTION" msgstr "SECCIÓN INVÁLIDA" @@ -4166,87 +4171,87 @@ msgstr "" "Imprimir información del fichero ELF en una forma comprensible para los " "seres humanos." -#: src/readelf.c:401 +#: src/readelf.c:402 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Sección de depuración DWARF desconocida `%s'.\n" -#: src/readelf.c:465 +#: src/readelf.c:466 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "no se puede crear descriptor ELF: %s" -#: src/readelf.c:477 +#: src/readelf.c:478 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "'%s' no es un archivo, no se puede imprimir índice de archivo" -#: src/readelf.c:482 +#: src/readelf.c:483 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "error al cerrar el descriptor ELF: %s" -#: src/readelf.c:574 +#: src/readelf.c:575 #, c-format msgid "cannot stat input file" msgstr "no sepudo stat archivo de entrada" -#: src/readelf.c:576 +#: src/readelf.c:577 #, c-format msgid "input file is empty" msgstr "archivo de entrada vacío" -#: src/readelf.c:578 +#: src/readelf.c:579 #, c-format msgid "failed reading '%s': %s" msgstr "Falló lectura de '%s': %s" -#: src/readelf.c:614 +#: src/readelf.c:615 #, c-format msgid "cannot read ELF header: %s" msgstr "no se pudo leer encabezamiento ELF: %s" -#: src/readelf.c:622 +#: src/readelf.c:623 #, c-format msgid "cannot create EBL handle" msgstr "no se puede crear EBL" -#: src/readelf.c:635 +#: src/readelf.c:636 #, c-format msgid "cannot determine number of program headers: %s" msgstr "no se pudo determinar la cantidad de encabezados de programa: %s" -#: src/readelf.c:721 +#: src/readelf.c:722 msgid "NONE (None)" msgstr "NONE (Ninguno)" -#: src/readelf.c:722 +#: src/readelf.c:723 msgid "REL (Relocatable file)" msgstr "REL (Fichero reubicable)" -#: src/readelf.c:723 +#: src/readelf.c:724 msgid "EXEC (Executable file)" msgstr "EXEC (Fichero ejecutable)" -#: src/readelf.c:724 +#: src/readelf.c:725 msgid "DYN (Shared object file)" msgstr "DYN (Fichero objeto compartido)" -#: src/readelf.c:725 +#: src/readelf.c:726 msgid "CORE (Core file)" msgstr "CORE (Fichero núcleo)" -#: src/readelf.c:730 +#: src/readelf.c:731 #, c-format msgid "OS Specific: (%x)\n" msgstr "OS Specific: (%x)\n" -#: src/readelf.c:732 +#: src/readelf.c:733 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Específico del procesador: (%x)\n" -#: src/readelf.c:742 +#: src/readelf.c:743 msgid "" "ELF Header:\n" " Magic: " @@ -4254,7 +4259,7 @@ msgstr "" "Encabezamiento ELF:\n" " Mágico: " -#: src/readelf.c:746 +#: src/readelf.c:747 #, c-format msgid "" "\n" @@ -4263,119 +4268,119 @@ msgstr "" "\n" " Clase: %s\n" -#: src/readelf.c:751 +#: src/readelf.c:752 #, c-format msgid " Data: %s\n" msgstr " Datos: %s\n" -#: src/readelf.c:757 +#: src/readelf.c:758 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Versión ident: %hhd %s\n" -#: src/readelf.c:759 src/readelf.c:776 +#: src/readelf.c:760 src/readelf.c:777 msgid "(current)" msgstr "(actual)" -#: src/readelf.c:763 +#: src/readelf.c:764 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:766 +#: src/readelf.c:767 #, c-format msgid " ABI Version: %hhd\n" msgstr " Versión ABI: %hhd\n" -#: src/readelf.c:769 +#: src/readelf.c:770 msgid " Type: " msgstr " Tipo: " -#: src/readelf.c:772 +#: src/readelf.c:773 #, c-format msgid " Machine: %s\n" msgstr " Máquina: %s\n" -#: src/readelf.c:774 +#: src/readelf.c:775 #, c-format msgid " Version: %d %s\n" msgstr " Versión: %d %s\n" -#: src/readelf.c:778 +#: src/readelf.c:779 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " Dirección de punto de entrada: %#<PRIx64>\n" -#: src/readelf.c:781 +#: src/readelf.c:782 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " Inicio de encabezamientos de programa: %<PRId64> %s\n" -#: src/readelf.c:782 src/readelf.c:785 +#: src/readelf.c:783 src/readelf.c:786 msgid "(bytes into file)" msgstr " (bytes en el archivo)" -#: src/readelf.c:784 +#: src/readelf.c:785 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " Inicio de encabezamientos de sección: %<PRId64> %s\n" -#: src/readelf.c:787 +#: src/readelf.c:788 #, c-format msgid " Flags: %s\n" msgstr " Indicadores: %s\n" -#: src/readelf.c:790 +#: src/readelf.c:791 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Tamaño de este encabezamiento: %<PRId16> %s\n" -#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811 +#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812 msgid "(bytes)" msgstr "(bytes)" -#: src/readelf.c:793 +#: src/readelf.c:794 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr "" " Tamaño de las entradas en encabezamiento del programa: %<PRId16> %s\n" -#: src/readelf.c:796 +#: src/readelf.c:797 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " Cantidad de entradas de encabezados de programa: %<PRId16>" -#: src/readelf.c:803 +#: src/readelf.c:804 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr " (%<PRIu32> in [0].sh_info)" -#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837 +#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838 msgid " ([0] not available)" msgstr " ([0] no disponible)" -#: src/readelf.c:810 +#: src/readelf.c:811 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr "" " Tamaño de las entradas en el encabezamiento de sección: %<PRId16> %s\n" -#: src/readelf.c:813 +#: src/readelf.c:814 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " Cantidad de entradas en los encabezamientos de sección: %<PRId16>" -#: src/readelf.c:820 +#: src/readelf.c:821 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> en [0].sh_size)" -#: src/readelf.c:833 +#: src/readelf.c:834 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> en [0].sh_link)" -#: src/readelf.c:841 +#: src/readelf.c:842 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4384,14 +4389,14 @@ msgstr "" " Índice de tabla de cadenas de sección de encabezamiento de : XINDEX%s\n" "\n" -#: src/readelf.c:845 +#: src/readelf.c:846 #, c-format msgid "" " Section header string table index: %<PRId16>\n" "\n" msgstr " Índice de tabla de cadenas de sección de encabezamiento: %<PRId16>\n" -#: src/readelf.c:877 +#: src/readelf.c:878 #, c-format msgid "" "There are %d section headers, starting at offset %#<PRIx64>:\n" @@ -4400,11 +4405,11 @@ msgstr "" "Hay %d encabezamientos de sección, comenzando en compensación %#<PRIx64>:\n" "\n" -#: src/readelf.c:887 +#: src/readelf.c:888 msgid "Section Headers:" msgstr "encabezamientos de sección:" -#: src/readelf.c:890 +#: src/readelf.c:891 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4412,7 +4417,7 @@ msgstr "" "[Nr] Nombre Tipo Dirección Off Tamaño Inf Al " "Enlace banderas ES" -#: src/readelf.c:892 +#: src/readelf.c:893 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4420,32 +4425,32 @@ msgstr "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" -#: src/readelf.c:899 src/readelf.c:1052 +#: src/readelf.c:900 src/readelf.c:1053 #, c-format msgid "cannot get section: %s" msgstr "No se puede encontrar la sección: %s" -#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353 -#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553 -#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244 -#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588 -#: src/unstrip.c:1778 +#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353 +#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558 +#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250 +#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593 +#: src/unstrip.c:1782 #, c-format msgid "cannot get section header: %s" msgstr "No se puede obtener encabezamiento de sección: %s" -#: src/readelf.c:964 +#: src/readelf.c:965 msgid "Program Headers:" msgstr "encabezamientos de programa:" -#: src/readelf.c:966 +#: src/readelf.c:967 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Tipo Compensación Dirección Virtual Dirección " "Física Tamaño de Fichero Tamaño de Memoria Alineación de bandera" -#: src/readelf.c:969 +#: src/readelf.c:970 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4453,12 +4458,12 @@ msgstr "" " Tipo Compensación Dirección Virtual Dirección " "Física Tamaño de Fichero Tamaño de Memoria Alineación de bandera" -#: src/readelf.c:1009 +#: src/readelf.c:1010 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Solicitando intérprete de programa: %s]\n" -#: src/readelf.c:1030 +#: src/readelf.c:1031 msgid "" "\n" " Section to Segment mapping:\n" @@ -4468,12 +4473,12 @@ msgstr "" " Sección para asignación de segmento:\n" " Secciones de segmento..." -#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870 +#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883 #, c-format msgid "cannot get program header: %s" msgstr "no se puede obtener memoria para encabezamiento del programa: %s" -#: src/readelf.c:1175 +#: src/readelf.c:1176 #, c-format msgid "" "\n" @@ -4488,7 +4493,7 @@ msgstr[1] "" "\n" "Grupo de sección COMDAT [%2zu] '%s' con firma '%s' contiene entradas %zu:\n" -#: src/readelf.c:1180 +#: src/readelf.c:1181 #, c-format msgid "" "\n" @@ -4503,15 +4508,15 @@ msgstr[1] "" "\n" "Grupo de sección [%2zu] '%s' con firma '%s' contiene entradas %zu:\n" -#: src/readelf.c:1188 +#: src/readelf.c:1189 msgid "<INVALID SYMBOL>" msgstr "<SÍMBOLO INVÁLIDO>" -#: src/readelf.c:1202 +#: src/readelf.c:1203 msgid "<INVALID SECTION>" msgstr "<SECCIÓN INVÁLIDA>" -#: src/readelf.c:1353 +#: src/readelf.c:1354 #, c-format msgid "" "\n" @@ -4532,36 +4537,36 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%" "2u] '%s'\n" -#: src/readelf.c:1365 +#: src/readelf.c:1366 msgid " Type Value\n" msgstr " Tipo Valor\n" -#: src/readelf.c:1389 +#: src/readelf.c:1390 #, c-format msgid "Shared library: [%s]\n" msgstr "Biblioteca compartida: [%s]\n" -#: src/readelf.c:1394 +#: src/readelf.c:1395 #, c-format msgid "Library soname: [%s]\n" msgstr "Nombre-so de la biblioteca: [%s]\n" -#: src/readelf.c:1399 +#: src/readelf.c:1400 #, c-format msgid "Library rpath: [%s]\n" msgstr "Rpath de la biblioteca: [%s]\n" -#: src/readelf.c:1404 +#: src/readelf.c:1405 #, c-format msgid "Library runpath: [%s]\n" msgstr "Ruta de ejecución de la biblioteca: [%s]\n" -#: src/readelf.c:1424 +#: src/readelf.c:1425 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (bytes)\n" -#: src/readelf.c:1534 src/readelf.c:1720 +#: src/readelf.c:1535 src/readelf.c:1721 #, c-format msgid "" "\n" @@ -4570,7 +4575,7 @@ msgstr "" "\n" "Tabla de símbolos inválida en compensación %#0<PRIx64>\n" -#: src/readelf.c:1552 src/readelf.c:1737 +#: src/readelf.c:1553 src/readelf.c:1738 #, c-format msgid "" "\n" @@ -4589,7 +4594,7 @@ msgstr[1] "" "Sección de reubicación [%2zu] '%s' para sección [%2u] '%s' en compensación %" "#0<PRIx64> contiene entradas %d:\n" -#: src/readelf.c:1567 +#: src/readelf.c:1568 #, c-format msgid "" "\n" @@ -4606,29 +4611,29 @@ msgstr[1] "" "Sección de reubicación [%2u] '%s' en compensación %#0<PRIx64> contiene " "entradas %d:\n" -#: src/readelf.c:1577 +#: src/readelf.c:1578 msgid " Offset Type Value Name\n" msgstr " Compensación Tipo Valor Nombre\n" -#: src/readelf.c:1579 +#: src/readelf.c:1580 msgid " Offset Type Value Name\n" msgstr " Compensación Tipo Valor Nombre\n" -#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674 -#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831 -#: src/readelf.c:1850 src/readelf.c:1863 +#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675 +#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832 +#: src/readelf.c:1851 src/readelf.c:1864 msgid "<INVALID RELOC>" msgstr "<REUBIC INVÁLIDA>" -#: src/readelf.c:1749 +#: src/readelf.c:1750 msgid " Offset Type Value Addend Name\n" msgstr " Compensación Tipo Valor Nombre Adend\n" -#: src/readelf.c:1751 +#: src/readelf.c:1752 msgid " Offset Type Value Addend Name\n" msgstr " Compensación Tipo Valor Nombre Adend\n" -#: src/readelf.c:1952 +#: src/readelf.c:1953 #, c-format msgid "" "\n" @@ -4643,40 +4648,40 @@ msgstr[1] "" "\n" "La tabla de símbolos [%2u] '%s' contiene entradas %u:\n" -#: src/readelf.c:1958 +#: src/readelf.c:1959 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] "símbolos locales %lu Tabla de cadena: [%2u] '%s'\n" msgstr[1] " Símbolos locales %lu Tabla de cadenas: [%2u] '%s'\n" -#: src/readelf.c:1968 +#: src/readelf.c:1969 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Núm: Valor Tamaño Tipo Unión Vis Nombre Ndx\n" -#: src/readelf.c:1970 +#: src/readelf.c:1971 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Num: Valor Tamaño Tipo Unión Vis Nombre Ndx\n" -#: src/readelf.c:1990 +#: src/readelf.c:1991 #, c-format msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -#: src/readelf.c:2078 +#: src/readelf.c:2079 #, c-format msgid "bad dynamic symbol" msgstr "símbolo dinámico erróneo" -#: src/readelf.c:2160 +#: src/readelf.c:2161 msgid "none" msgstr "nada" -#: src/readelf.c:2177 +#: src/readelf.c:2178 msgid "| <unknown>" msgstr "| <desconocido>" -#: src/readelf.c:2202 +#: src/readelf.c:2203 #, c-format msgid "" "\n" @@ -4697,17 +4702,17 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%" "2u] '%s'\n" -#: src/readelf.c:2225 +#: src/readelf.c:2226 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Versión: %hu Fichero: %s Conteo: %hu\n" -#: src/readelf.c:2238 +#: src/readelf.c:2239 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Nombre: %s Banderas: %s Versión: %hu\n" -#: src/readelf.c:2269 +#: src/readelf.c:2270 #, c-format msgid "" "\n" @@ -4728,18 +4733,18 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%" "2u] '%s'\n" -#: src/readelf.c:2299 +#: src/readelf.c:2300 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" " %#06x: Versión: %hd Banderas: %s Índice: %hd Conteo: %hd Nombre: %s\n" -#: src/readelf.c:2314 +#: src/readelf.c:2315 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Principal %d: %s\n" -#: src/readelf.c:2546 +#: src/readelf.c:2547 #, c-format msgid "" "\n" @@ -4760,15 +4765,15 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%" "2u] '%s'" -#: src/readelf.c:2576 +#: src/readelf.c:2577 msgid " 0 *local* " msgstr " 0 *local* " -#: src/readelf.c:2581 +#: src/readelf.c:2582 msgid " 1 *global* " msgstr " 1 *global* " -#: src/readelf.c:2612 +#: src/readelf.c:2613 #, c-format msgid "" "\n" @@ -4793,36 +4798,36 @@ msgstr[1] "" " Dirección: %#0*<PRIx64> Compensación: %#08<PRIx64> Enlace a sección: [%" "2u] '%s'\n" -#: src/readelf.c:2636 +#: src/readelf.c:2637 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Longitud Número % of total Cobertura\n" -#: src/readelf.c:2638 +#: src/readelf.c:2639 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:2645 +#: src/readelf.c:2646 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:2658 +#: src/readelf.c:2659 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" -" unsuccessful lookup: %f\n" +"\t\t\t unsuccessful lookup: %f\n" msgstr "" " Número promedio de pruebas: búsqueda exitosa: %f\n" " búsqueda sin éxito: %f\n" -#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759 +#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760 #, c-format msgid "cannot get data for section %d: %s" msgstr "No se pueden obtener datos para la sección %d: %s" -#: src/readelf.c:2813 +#: src/readelf.c:2814 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4832,7 +4837,7 @@ msgstr "" " Tamaño de Bitmask: %zu bytes %<PRIuFAST32>%% bits establecen segundo " "cambio de dispersión: %u\n" -#: src/readelf.c:2887 +#: src/readelf.c:2888 #, c-format msgid "" "\n" @@ -4849,7 +4854,7 @@ msgstr[1] "" "Sección de lista de biblioteca [%2zu] '%s' en compensación %#0<PRIx64> " "contiene entradas %d:\n" -#: src/readelf.c:2901 +#: src/readelf.c:2902 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4857,7 +4862,7 @@ msgstr "" " Biblioteca Marca de tiempo Indicadores " "de versión de suma de verificación" -#: src/readelf.c:2951 +#: src/readelf.c:2952 #, c-format msgid "" "\n" @@ -4868,140 +4873,140 @@ msgstr "" "Sección de atributos de objeto [%2zu] '%s' de %<PRIu64> bytes con " "desplazamiento %#0<PRIx64>:\n" -#: src/readelf.c:2967 +#: src/readelf.c:2968 msgid " Owner Size\n" msgstr " Propietario Tamaño\n" -#: src/readelf.c:2993 +#: src/readelf.c:2994 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" -#: src/readelf.c:3025 +#: src/readelf.c:3026 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" -#: src/readelf.c:3030 +#: src/readelf.c:3031 #, c-format msgid " File: %11<PRIu32>\n" msgstr " File: %11<PRIu32>\n" -#: src/readelf.c:3065 +#: src/readelf.c:3066 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3068 +#: src/readelf.c:3069 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3071 +#: src/readelf.c:3072 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3078 +#: src/readelf.c:3079 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3081 +#: src/readelf.c:3082 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3117 +#: src/readelf.c:3118 #, c-format msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3120 +#: src/readelf.c:3121 #, c-format msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3125 +#: src/readelf.c:3126 #, c-format msgid "%#<PRIx64> <%s+%#<PRIx64>>" msgstr "%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3128 +#: src/readelf.c:3129 #, c-format msgid "%#0*<PRIx64> <%s+%#<PRIx64>>" msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3134 +#: src/readelf.c:3135 #, c-format msgid "%s+%#<PRIx64> <%s>" msgstr "%s+%#<PRIx64> <%s>" -#: src/readelf.c:3137 +#: src/readelf.c:3138 #, c-format msgid "%s+%#0*<PRIx64> <%s>" msgstr "%s+%#0*<PRIx64> <%s>" -#: src/readelf.c:3141 +#: src/readelf.c:3142 #, c-format msgid "%#<PRIx64> <%s>" msgstr "%#<PRIx64> <%s>" -#: src/readelf.c:3144 +#: src/readelf.c:3145 #, c-format msgid "%#0*<PRIx64> <%s>" msgstr "%#0*<PRIx64> <%s>" -#: src/readelf.c:3149 +#: src/readelf.c:3150 #, c-format msgid "%s+%#<PRIx64>" msgstr "%s+%#<PRIx64>" -#: src/readelf.c:3152 +#: src/readelf.c:3153 #, c-format msgid "%s+%#0*<PRIx64>" msgstr "%s+%#0*<PRIx64>" -#: src/readelf.c:3260 +#: src/readelf.c:3284 #, c-format msgid "unknown tag %hx" msgstr "etiqueta %hx desconocida" -#: src/readelf.c:3262 +#: src/readelf.c:3286 #, c-format msgid "unknown user tag %hx" msgstr "Usuario de etiqueta %hx desconocido " -#: src/readelf.c:3480 +#: src/readelf.c:3510 #, c-format msgid "unknown attribute %hx" msgstr "atributo de sección %hx desconocido" -#: src/readelf.c:3483 +#: src/readelf.c:3513 #, c-format msgid "unknown user attribute %hx" msgstr "Atributo de usuario desconocido %hx" -#: src/readelf.c:3529 +#: src/readelf.c:3563 #, c-format msgid "unknown form %<PRIx64>" msgstr "Forma %<PRIx64> desconocida" -#: src/readelf.c:3763 +#: src/readelf.c:3797 msgid "empty block" msgstr "bloque vacío" -#: src/readelf.c:3766 +#: src/readelf.c:3800 #, c-format msgid "%zu byte block:" msgstr "bloque de byte %zu:" -#: src/readelf.c:4175 +#: src/readelf.c:4222 #, c-format msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" -#: src/readelf.c:4188 +#: src/readelf.c:4235 #, c-format msgid "" "\n" @@ -5012,7 +5017,7 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" " [ Código]\n" -#: src/readelf.c:4195 +#: src/readelf.c:4242 #, c-format msgid "" "\n" @@ -5021,30 +5026,30 @@ msgstr "" "\n" "Sección de abreviatura en compensación %<PRIu64>:\n" -#: src/readelf.c:4208 +#: src/readelf.c:4255 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** error en lectura de abreviatura: %s\n" -#: src/readelf.c:4224 +#: src/readelf.c:4271 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] compensación: %<PRId64>, hijos: %s, etiqueta: %s\n" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "yes" msgstr "sí" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "no" msgstr "no" -#: src/readelf.c:4263 +#: src/readelf.c:4310 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "no se ha podido obtener contenido de .debug_aranges: %s" -#: src/readelf.c:4268 +#: src/readelf.c:4315 #, c-format msgid "" "\n" @@ -5059,12 +5064,12 @@ msgstr[1] "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64> contiene entradas %zu:\n" -#: src/readelf.c:4298 +#: src/readelf.c:4345 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4300 +#: src/readelf.c:4347 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" @@ -5072,13 +5077,13 @@ msgstr "" " Inicio [%*zu]: %0#*<PRIx64>, longitud: %5<PRIu64>, compensación CU DIE: %" "6<PRId64>\n" -#: src/readelf.c:4319 +#: src/readelf.c:4366 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "no se ha podido obtener contenido de .debug_ranges: %s" -#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897 -#: src/readelf.c:5992 src/readelf.c:6164 +#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079 +#: src/readelf.c:6178 src/readelf.c:6350 #, c-format msgid "" "\n" @@ -5087,32 +5092,32 @@ msgstr "" "\n" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" -#: src/readelf.c:4338 src/readelf.c:5911 +#: src/readelf.c:4385 src/readelf.c:6097 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <DATOS INVÁLIDOS>\n" -#: src/readelf.c:4360 src/readelf.c:5933 +#: src/readelf.c:4407 src/readelf.c:6119 #, c-format msgid " [%6tx] base address %s\n" msgstr " [%6tx] (dirección base) %s\n" -#: src/readelf.c:4371 +#: src/readelf.c:4418 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4373 +#: src/readelf.c:4420 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332 +#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518 #, c-format msgid "cannot get %s content: %s" msgstr "No se puede obtener el contenido %s: %s" -#: src/readelf.c:4806 +#: src/readelf.c:4853 #, c-format msgid "" "\n" @@ -5122,12 +5127,12 @@ msgstr "" "Sección de información de marco de llamada [%2zu] '%s' en compensación %" "#<PRIx64>:\n" -#: src/readelf.c:4833 src/readelf.c:5486 +#: src/readelf.c:4881 src/readelf.c:5615 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "Datos inválidos en sección [%zu] '%s'" -#: src/readelf.c:4855 +#: src/readelf.c:4903 #, c-format msgid "" "\n" @@ -5136,50 +5141,50 @@ msgstr "" "\n" " [%6tx] Terminator cero\n" -#: src/readelf.c:4924 +#: src/readelf.c:4987 #, c-format msgid "invalid augmentation length" msgstr "longitud de aumento inválida" -#: src/readelf.c:4936 +#: src/readelf.c:4999 msgid "FDE address encoding: " msgstr "Codificación de dirección FDE:" -#: src/readelf.c:4942 +#: src/readelf.c:5005 msgid "LSDA pointer encoding: " msgstr "Codificación de puntero LSDA:" -#: src/readelf.c:5034 +#: src/readelf.c:5101 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (compensación: %#<PRIx64>)" -#: src/readelf.c:5041 +#: src/readelf.c:5108 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (fin de compensación: %#<PRIx64>)" -#: src/readelf.c:5068 +#: src/readelf.c:5135 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr "Puntero %-26sLSDA: %#<PRIx64>\n" -#: src/readelf.c:5114 +#: src/readelf.c:5182 #, c-format msgid "cannot get attribute code: %s" msgstr "No se puede obtener código de atributo: %s" -#: src/readelf.c:5122 +#: src/readelf.c:5190 #, c-format msgid "cannot get attribute form: %s" msgstr "No se puede obtener forma de atributo: %s" -#: src/readelf.c:5135 +#: src/readelf.c:5203 #, c-format msgid "cannot get attribute value: %s" msgstr "No se puede obtener valor: %s" -#: src/readelf.c:5331 +#: src/readelf.c:5428 #, c-format msgid "" "\n" @@ -5190,7 +5195,20 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" " [Offset]\n" -#: src/readelf.c:5356 +#: src/readelf.c:5458 +#, c-format +msgid "" +" Type unit at offset %<PRIu64>:\n" +" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %" +"<PRIu8>, Offset size: %<PRIu8>\n" +" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n" +msgstr "" +"Tipo de unidad al compensar %<PRIu64>:\n" +" Versión: %<PRIu16>, Abreviación de sección de compensación: %<PRIu64>, " +"Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n" +" Tipo de firma: %#<PRIx64>, Tipo de compensación: %#<PRIx64>\n" + +#: src/readelf.c:5466 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5201,39 +5219,39 @@ msgstr "" " Versión: %<PRIu16>, Compensación de sección de abreviatura: %<PRIu64>, " "Tamaño de dirección: %<PRIu8>, Tamaño de compensación: %<PRIu8>\n" -#: src/readelf.c:5374 +#: src/readelf.c:5489 #, c-format msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s" msgstr "no se puede obtener DIE en compensación %<PRIu64> en sección '%s': %s" -#: src/readelf.c:5385 +#: src/readelf.c:5500 #, c-format msgid "cannot get DIE offset: %s" msgstr "no se puede obtener DIE en compensación: %s" -#: src/readelf.c:5393 +#: src/readelf.c:5508 #, c-format msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s" msgstr "" "no se ha podido obtener etiqueta de DIE en compensación%<PRIu64> en sección " "'%s': %s" -#: src/readelf.c:5422 +#: src/readelf.c:5537 #, c-format msgid "cannot get next DIE: %s\n" msgstr "No se puede obtener próximo DIE: %s\n" -#: src/readelf.c:5429 +#: src/readelf.c:5544 #, c-format msgid "cannot get next DIE: %s" msgstr "No se puede obtener próximo DIE: %s" -#: src/readelf.c:5464 +#: src/readelf.c:5593 #, c-format msgid "cannot get line data section data: %s" msgstr "No se puede obtener sección de datos de línea: %s" -#: src/readelf.c:5477 +#: src/readelf.c:5606 #, c-format msgid "" "\n" @@ -5242,7 +5260,7 @@ msgstr "" "\n" "Tabla en compensación %Zu:\n" -#: src/readelf.c:5529 +#: src/readelf.c:5661 #, c-format msgid "" "\n" @@ -5250,6 +5268,7 @@ msgid "" " DWARF version: %<PRIuFAST16>\n" " Prologue length: %<PRIu64>\n" " Minimum instruction length: %<PRIuFAST8>\n" +" Maximum operations per instruction: %<PRIuFAST8>\n" " Initial value if '%s': %<PRIuFAST8>\n" " Line base: %<PRIdFAST8>\n" " Line range: %<PRIuFAST8>\n" @@ -5258,30 +5277,31 @@ msgid "" "Opcodes:\n" msgstr "" "\n" -" Longitud: %<PRIu64>\n" +" Longitud: %<PRIu64>\n" " Versión DWARF: %<PRIuFAST16>\n" -" Longitud de prólogo: %<PRIu64>\n" +" Longitud de prólogo: %<PRIu64>\n" " Longitud de instrucción mínima: %<PRIuFAST8>\n" +" Máximo operaciones por instrucción: %<PRIuFAST8>\n" " Valor inicial si '%s': %<PRIuFAST8>\n" -" Base de línea: %<PRIdFAST8>\n" -" Rango de línea: %<PRIuFAST8>\n" -" Base de código operativo: %<PRIuFAST8>\n" +" Base de línea: %<PRIdFAST8>\n" +" Rango de línea: %<PRIuFAST8>\n" +" Base de código operativo: %<PRIuFAST8>\n" "\n" "Códigos operativos:\n" -#: src/readelf.c:5548 +#: src/readelf.c:5682 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "datos inválidos en compensación %tu en sección [%zu] '%s'" -#: src/readelf.c:5563 +#: src/readelf.c:5697 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" msgstr[0] " [%*<PRIuFAST8>] argumento %hhu \n" msgstr[1] " [%*<PRIuFAST8>] argumento %hhu\n" -#: src/readelf.c:5571 +#: src/readelf.c:5705 msgid "" "\n" "Directory table:" @@ -5289,7 +5309,7 @@ msgstr "" "\n" "Tabla de Directorio:" -#: src/readelf.c:5587 +#: src/readelf.c:5721 msgid "" "\n" "File name table:\n" @@ -5299,7 +5319,7 @@ msgstr "" "Tabla de nombre de archivo:\n" " Directorio de entrada Tiempo Tamaño Nombre" -#: src/readelf.c:5616 +#: src/readelf.c:5750 msgid "" "\n" "Line number statements:" @@ -5307,127 +5327,153 @@ msgstr "" "\n" " Declaraciones de número de Línea:" -#: src/readelf.c:5677 +#: src/readelf.c:5824 +#, c-format +msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" +msgstr "" +" opcode especial %u: dirección+%u = %s, op_index = %u, línea%+d = %zu\n" + +#: src/readelf.c:5829 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr " opcode especial %u: dirección+%u = %s, línea%+d = %zu\n" -#: src/readelf.c:5697 +#: src/readelf.c:5849 #, c-format msgid " extended opcode %u: " msgstr " Código operativo extendido %u: " -#: src/readelf.c:5702 +#: src/readelf.c:5854 msgid "end of sequence" msgstr "Fin de secuencia" -#: src/readelf.c:5717 +#: src/readelf.c:5871 #, c-format msgid "set address to %s\n" msgstr "Establecer dirección a %s\n" -#: src/readelf.c:5738 +#: src/readelf.c:5892 #, c-format msgid "define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" "definir nuevo archivo: dir=%u, mtime=%<PRIu64>, longitud=%<PRIu64>, nombre=%" "s\n" -#: src/readelf.c:5747 +#: src/readelf.c:5905 +#, c-format +msgid " set discriminator to %u\n" +msgstr " establecer discriminador a %u\n" + +#: src/readelf.c:5910 msgid "unknown opcode" msgstr "código operativo desconocido " -#: src/readelf.c:5759 +#: src/readelf.c:5922 msgid " copy" msgstr "Copiar" -#: src/readelf.c:5769 +#: src/readelf.c:5933 +#, c-format +msgid "advance address by %u to %s, op_index to %u\n" +msgstr "dirección avanzada por %u a %s, op_index a %u\n" + +#: src/readelf.c:5937 #, c-format msgid "advance address by %u to %s\n" msgstr "Dirección de avance por %u a %s\n" -#: src/readelf.c:5780 +#: src/readelf.c:5948 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr " línea de avance por la constante %d a %<PRId64>\n" -#: src/readelf.c:5788 +#: src/readelf.c:5956 #, c-format msgid " set file to %<PRIu64>\n" msgstr " establecer archivo a %<PRIu64>\n" -#: src/readelf.c:5798 +#: src/readelf.c:5966 #, c-format msgid " set column to %<PRIu64>\n" msgstr " Establecer columna a %<PRIu64>\n" -#: src/readelf.c:5805 +#: src/readelf.c:5973 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr "Establecer '%s' a %<PRIuFAST8>\n" -#: src/readelf.c:5811 +#: src/readelf.c:5979 msgid " set basic block flag" msgstr "Establecer bandera de bloque básico" -#: src/readelf.c:5821 +#: src/readelf.c:5988 +#, c-format +msgid "advance address by constant %u to %s, op_index to %u\n" +msgstr "dirección avanzada por constante %u a %s, op_index a %u\n" + +#: src/readelf.c:5992 #, c-format msgid "advance address by constant %u to %s\n" msgstr "Dirección de avance por constante %u a %s\n" -#: src/readelf.c:5837 +#: src/readelf.c:6010 #, c-format msgid "advance address by fixed value %u to %s\n" msgstr "dirección de avance por valor corregido %u a %s\n" -#: src/readelf.c:5846 +#: src/readelf.c:6019 msgid " set prologue end flag" msgstr " Establecer bandera prologue_end" -#: src/readelf.c:5851 +#: src/readelf.c:6024 msgid " set epilogue begin flag" msgstr " Establecer bandera epilogue_begin" -#: src/readelf.c:5860 +#: src/readelf.c:6033 +#, c-format +msgid " set isa to %u\n" +msgstr " establecer isa para %u\n" + +#: src/readelf.c:6042 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" msgstr[0] " opcódigo con parámetro %<PRIu8> desconocido:" msgstr[1] " opcódigo con parámetros %<PRIu8> desconocido:" -#: src/readelf.c:5892 +#: src/readelf.c:6074 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "no es posible obtener contenido de .debug_loc: %s" -#: src/readelf.c:5947 +#: src/readelf.c:6133 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s..%s" -#: src/readelf.c:5949 +#: src/readelf.c:6135 #, c-format msgid " %s..%s" msgstr " %s..%s" -#: src/readelf.c:6002 +#: src/readelf.c:6188 #, c-format msgid "cannot get macro information section data: %s" msgstr "no es posible obtener datos de la sección de macro información: %s" -#: src/readelf.c:6081 +#: src/readelf.c:6267 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** cadena no finalizada al final de la sección" -#: src/readelf.c:6149 +#: src/readelf.c:6335 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" " Compensación [%5d] DIE: %6<PRId64>, Compensación CU DIE: %6<PRId64>, " "nombre: %s\n" -#: src/readelf.c:6188 +#: src/readelf.c:6374 #, c-format msgid "" "\n" @@ -5438,12 +5484,12 @@ msgstr "" "Sección DWARF [%2zu] '%s' en compensación %#<PRIx64>:\n" " %*s String\n" -#: src/readelf.c:6202 +#: src/readelf.c:6388 #, c-format msgid " *** error while reading strings: %s\n" msgstr " *** error en lectura de cadenas: %s\n" -#: src/readelf.c:6222 +#: src/readelf.c:6408 #, c-format msgid "" "\n" @@ -5452,7 +5498,7 @@ msgstr "" "\n" "Sección de tabla de búsqueda de marco de llamada [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:6324 +#: src/readelf.c:6510 #, c-format msgid "" "\n" @@ -5461,22 +5507,22 @@ msgstr "" "\n" "Excepción en el manejo de la sección de tabla [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:6347 +#: src/readelf.c:6533 #, c-format msgid " LPStart encoding: %#x " msgstr "Codificación LPStart: %#x " -#: src/readelf.c:6359 +#: src/readelf.c:6545 #, c-format msgid " TType encoding: %#x " msgstr "Codificación TType: %#x " -#: src/readelf.c:6373 +#: src/readelf.c:6559 #, c-format msgid " Call site encoding: %#x " msgstr "Codificación de sitio de llamada: %#x " -#: src/readelf.c:6386 +#: src/readelf.c:6572 msgid "" "\n" " Call site table:" @@ -5484,7 +5530,7 @@ msgstr "" "\n" " Tabla de sitio de llamada:" -#: src/readelf.c:6400 +#: src/readelf.c:6586 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5497,22 +5543,22 @@ msgstr "" " Landing pad: %#<PRIx64>\n" " Action: %u\n" -#: src/readelf.c:6460 +#: src/readelf.c:6646 #, c-format msgid "invalid TType encoding" msgstr "Codificación TType inválida" -#: src/readelf.c:6484 +#: src/readelf.c:6671 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "no se puede depurar descriptor de contexto: %s" -#: src/readelf.c:6620 src/readelf.c:7221 +#: src/readelf.c:6810 src/readelf.c:7411 #, c-format msgid "cannot convert core note data: %s" msgstr "no es posible convertir datos de la nota principal: %s" -#: src/readelf.c:6961 +#: src/readelf.c:7151 #, c-format msgid "" "\n" @@ -5521,21 +5567,21 @@ msgstr "" "\n" "%*s... <repeats %u more times> ..." -#: src/readelf.c:7320 +#: src/readelf.c:7510 msgid " Owner Data size Type\n" msgstr " Owner Data size Type\n" -#: src/readelf.c:7338 +#: src/readelf.c:7528 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:7372 +#: src/readelf.c:7562 #, c-format msgid "cannot get content of note section: %s" msgstr "no se puede obtener el contenido de sección de nota: %s" -#: src/readelf.c:7399 +#: src/readelf.c:7589 #, c-format msgid "" "\n" @@ -5544,7 +5590,7 @@ msgstr "" "\n" "Sección de nota [%2zu] '%s' de %<PRIu64> bytes en compensación %#0<PRIx64>:\n" -#: src/readelf.c:7422 +#: src/readelf.c:7612 #, c-format msgid "" "\n" @@ -5553,7 +5599,7 @@ msgstr "" "\n" "Segmento de nota de %<PRIu64> bytes en compensación %#0<PRIx64>:\n" -#: src/readelf.c:7468 +#: src/readelf.c:7658 #, c-format msgid "" "\n" @@ -5562,12 +5608,12 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:7474 src/readelf.c:7497 +#: src/readelf.c:7664 src/readelf.c:7687 #, c-format msgid "cannot get data for section [%Zu] '%s': %s" msgstr "no se pueden obtener datos para sección [%Zu] '%s': %s" -#: src/readelf.c:7478 +#: src/readelf.c:7668 #, c-format msgid "" "\n" @@ -5577,7 +5623,7 @@ msgstr "" "Volcado Hex de sección [%Zu] '%s', %<PRIu64> bytes en compensación %" "#0<PRIx64>:\n" -#: src/readelf.c:7491 +#: src/readelf.c:7681 #, c-format msgid "" "\n" @@ -5586,7 +5632,7 @@ msgstr "" "\n" "Sección [%Zu] '%s' no tiene datos para volcar.\n" -#: src/readelf.c:7501 +#: src/readelf.c:7691 #, c-format msgid "" "\n" @@ -5596,7 +5642,7 @@ msgstr "" "Sección de cadena [%Zu] '%s' contiene %<PRIu64> bytes en compensación %" "#0<PRIx64>:\n" -#: src/readelf.c:7549 +#: src/readelf.c:7739 #, c-format msgid "" "\n" @@ -5605,7 +5651,7 @@ msgstr "" "\n" "sección [%lu] no existe" -#: src/readelf.c:7576 +#: src/readelf.c:7766 #, c-format msgid "" "\n" @@ -5614,12 +5660,12 @@ msgstr "" "\n" "sección '%s' no existe" -#: src/readelf.c:7637 +#: src/readelf.c:7827 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "no se puede obtener el índice de símbolo de archivo '%s': %s" -#: src/readelf.c:7640 +#: src/readelf.c:7830 #, c-format msgid "" "\n" @@ -5628,7 +5674,7 @@ msgstr "" "\n" "Archivo '%s' no tiene índice de símbolo\n" -#: src/readelf.c:7644 +#: src/readelf.c:7834 #, c-format msgid "" "\n" @@ -5637,12 +5683,12 @@ msgstr "" "\n" "Índice de archivo '%s' tiene %Zu entradas:\n" -#: src/readelf.c:7662 +#: src/readelf.c:7852 #, c-format msgid "cannot extract member at offset %Zu in '%s': %s" msgstr "no es posible extraer miembro en compensación %Zu en '%s': %s" -#: src/readelf.c:7667 +#: src/readelf.c:7857 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Miembro de archivo contiene '%s':\n" @@ -6004,7 +6050,7 @@ msgstr "no se puede crear el encabezamiento ELF: %s" msgid "cannot copy ELF header: %s" msgstr "no se puede copiar encabezamiento ELF: %s" -#: src/unstrip.c:264 src/unstrip.c:1817 +#: src/unstrip.c:264 src/unstrip.c:1830 #, c-format msgid "cannot create program headers: %s" msgstr "No pueden crear encabezamientos de programa: %s" @@ -6019,12 +6065,12 @@ msgstr "no puede copiar encabezamiento de programa: %s" msgid "cannot copy section header: %s" msgstr "no se puede copiar encabezamiento de sección: %s" -#: src/unstrip.c:283 src/unstrip.c:1505 +#: src/unstrip.c:283 src/unstrip.c:1511 #, c-format msgid "cannot get section data: %s" msgstr "no se pueden obtener datos de sección: %s" -#: src/unstrip.c:285 src/unstrip.c:1507 +#: src/unstrip.c:285 src/unstrip.c:1513 #, c-format msgid "cannot copy section data: %s" msgstr "no pueden copiar datos de sección: %s" @@ -6034,125 +6080,136 @@ msgstr "no pueden copiar datos de sección: %s" msgid "cannot create directory '%s'" msgstr "no se puede crear el directorio '%s'" -#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540 +#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545 #, c-format msgid "cannot get symbol table entry: %s" msgstr "no se puede obtener entrada de tabla de símbolos: %s" -#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613 -#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715 +#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616 +#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720 #, c-format msgid "cannot update symbol table: %s" msgstr "no se puede actualizar tabla de símbolos: %s" -#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209 -#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791 +#: src/unstrip.c:375 #, c-format msgid "cannot update section header: %s" msgstr "no se puede actualizar encabezamiento de sección: %s" -#: src/unstrip.c:408 src/unstrip.c:419 +#: src/unstrip.c:414 src/unstrip.c:425 #, c-format msgid "cannot update relocation: %s" msgstr "no se puede actualizar reubicación: %s" -#: src/unstrip.c:507 +#: src/unstrip.c:512 #, c-format msgid "cannot get symbol version: %s" msgstr "no se puede obtener versión de símbolo: %s" -#: src/unstrip.c:519 +#: src/unstrip.c:524 #, c-format msgid "unexpected section type in [%Zu] with sh_link to symtab" msgstr "tipo de sección inesperado en [%Zu] con sh_link para symtab" -#: src/unstrip.c:769 +#: src/unstrip.c:772 #, c-format msgid "invalid string offset in symbol [%Zu]" msgstr "compensación de cadena inválida en símbolo [%Zu]" -#: src/unstrip.c:911 src/unstrip.c:1248 +#: src/unstrip.c:914 src/unstrip.c:1254 #, c-format msgid "cannot read section [%Zu] name: %s" msgstr "no se puede leer nombre [%Zu]: %s" -#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004 +#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "no se puede leer sección '.gnu.prelink_undo': %s" -#: src/unstrip.c:992 +#: src/unstrip.c:995 #, c-format msgid "invalid contents in '%s' section" msgstr "contenido inválido en sección '%s'" -#: src/unstrip.c:1047 src/unstrip.c:1370 +#: src/unstrip.c:1050 src/unstrip.c:1376 #, c-format msgid "cannot find matching section for [%Zu] '%s'" msgstr "no se puede hallar sección coincidente para [%Zu] '%s'" -#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451 +#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457 #, c-format msgid "cannot add section name to string table: %s" msgstr "no se puede añadir nombre de sección a tabla de cadenas: %s" -#: src/unstrip.c:1195 +#: src/unstrip.c:1198 #, c-format msgid "cannot update section header string table data: %s" msgstr "" "no se pueden actualizar datos de tabla de cadenas de encabezamiento de " "sección: %s" -#: src/unstrip.c:1223 src/unstrip.c:1227 +#: src/unstrip.c:1225 src/unstrip.c:1229 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" "no se puede obtener índice de sección de tabla de cadenas de encabezamiento " "de sección: %s" -#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466 +#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472 #, c-format msgid "cannot get section count: %s" msgstr "No se puede obtener cuenta de sección: %s" -#: src/unstrip.c:1293 src/unstrip.c:1385 +#: src/unstrip.c:1240 +#, c-format +msgid "more sections in stripped file than debug file -- arguments reversed?" +msgstr "" +"más secciones en el archivo despojado que en el archivo de depuración -- " +"¿argumentos invertidos?" + +#: src/unstrip.c:1299 src/unstrip.c:1391 #, c-format msgid "cannot read section header string table: %s" msgstr "no se puede obtener tabla de cadenas de encabezamiento de sección: %s" -#: src/unstrip.c:1445 +#: src/unstrip.c:1451 #, c-format msgid "cannot add new section: %s" msgstr "No se puede añadir nueva sección: %s" -#: src/unstrip.c:1548 +#: src/unstrip.c:1553 #, c-format msgid "symbol [%Zu] has invalid section index" msgstr "símbolo [%Zu] tiene índice de sección inválido" -#: src/unstrip.c:1800 +#: src/unstrip.c:1791 +#, c-format +msgid "cannot read section data: %s" +msgstr "no se puede leer la sección de datos: %s" + +#: src/unstrip.c:1812 #, c-format msgid "cannot get ELF header: %s" msgstr "no se puede leer encabezamiento ELF: %s" -#: src/unstrip.c:1827 +#: src/unstrip.c:1840 #, c-format msgid "cannot update program header: %s" msgstr "no se puede actualizar encabezamiento de programa: %s" -#: src/unstrip.c:1832 src/unstrip.c:1911 +#: src/unstrip.c:1845 src/unstrip.c:1924 #, c-format msgid "cannot write output file: %s" msgstr "no se puede escribir al archivo de salida: %s" -#: src/unstrip.c:1880 +#: src/unstrip.c:1893 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "datos DWARF no se ajustan para polarización de pre-enlace; considere prelink " "-u" -#: src/unstrip.c:1883 +#: src/unstrip.c:1896 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6160,58 +6217,58 @@ msgstr "" "Datos DWARF en '%s' no se ajustan a polarización de pre-enlace; considere " "prelink -u" -#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034 +#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "no se puede crear un descriptor ELF: %s" -#: src/unstrip.c:1960 +#: src/unstrip.c:1973 #, c-format msgid "'%s' and '%s' do not seem to match" msgstr "Al parecer '%s' y '%s'no coinciden" -#: src/unstrip.c:1991 +#: src/unstrip.c:2004 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "no se puede hallar archivo obtenido para módulo '%s': %s " -#: src/unstrip.c:1995 +#: src/unstrip.c:2008 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "No se puede abrir el archivo '%s' obtenido para módulo '%s': %s" -#: src/unstrip.c:2010 +#: src/unstrip.c:2023 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "no puede hallar archivo de depuración para módulo '%s': %su" -#: src/unstrip.c:2014 +#: src/unstrip.c:2027 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "No puede abrir archivo de depuración '%s' para módulo '%s': %s" -#: src/unstrip.c:2027 +#: src/unstrip.c:2040 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "No se obtuvo el archivo '%s' de módulo '%s' " -#: src/unstrip.c:2058 +#: src/unstrip.c:2071 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" "No puede almacenar en cache direcciones de sección para módulo '%s': %s" -#: src/unstrip.c:2191 +#: src/unstrip.c:2204 #, c-format msgid "no matching modules found" msgstr "No se encontraron módulos coincidentes" -#: src/unstrip.c:2200 +#: src/unstrip.c:2213 #, c-format msgid "matched more than one module" msgstr "coincidió con más de un módulo" -#: src/unstrip.c:2247 +#: src/unstrip.c:2260 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -6219,7 +6276,7 @@ msgstr "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" -#: src/unstrip.c:2248 +#: src/unstrip.c:2261 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2010-05-03 14:14-0700\n" +"POT-Creation-Date: 2010-06-28 12:08-0700\n" "PO-Revision-Date: 2009-09-20 15:32+0900\n" "Last-Translator: Hyu_gabaru Ryu_ichi <[email protected]>\n" "Language-Team: Japanese <[email protected]>\n" @@ -18,8 +18,8 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822 -#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295 +#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823 +#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308 #, c-format msgid "memory exhausted" msgstr "メモリー消費済み" @@ -205,7 +205,7 @@ msgstr ".debug_ranges セクションがありません" msgid "invalid CFI section" msgstr "不当な CFI セクション" -#: libdwfl/argp-std.c:67 src/unstrip.c:2237 +#: libdwfl/argp-std.c:67 src/unstrip.c:2250 msgid "Input selection options:" msgstr "選択オプションを入力してください:" @@ -360,6 +360,10 @@ msgstr "不当な ELF ファイル" msgid "cannot handle DWARF type description" msgstr "Elf 記述子を生成できません: %s" +#: libdwfl/libdwflP.h:97 +msgid "ELF file does not match build ID" +msgstr "" + #: libebl/eblbackendname.c:63 msgid "No backend" msgstr "バックエンドがありません" @@ -420,7 +424,7 @@ msgstr "ソース演算子の大きさが無効" msgid "invalid size of destination operand" msgstr "宛先演算子の大きさが無効" -#: libelf/elf_error.c:108 src/readelf.c:4779 +#: libelf/elf_error.c:108 src/readelf.c:4826 #, c-format msgid "invalid encoding" msgstr "無効なエンコード" @@ -502,7 +506,7 @@ msgstr "データ/scnが不整合です" msgid "invalid section header" msgstr "不当なセクションヘッダー" -#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343 +#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529 #, c-format msgid "invalid data" msgstr "不当なデータ" @@ -586,7 +590,7 @@ msgstr "" #: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239 #: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181 -#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227 +#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227 #: src/strip.c:204 src/unstrip.c:234 #, c-format msgid "" @@ -600,7 +604,7 @@ msgstr "" #: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244 #: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186 -#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232 +#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232 #: src/strip.c:209 src/unstrip.c:239 #, c-format msgid "Written by %s.\n" @@ -616,12 +620,12 @@ msgstr "" msgid "offset %#<PRIxMAX> lies outside section '%s'" msgstr "" -#: src/addr2line.c:461 +#: src/addr2line.c:469 #, c-format msgid "cannot find symbol '%s'" msgstr "" -#: src/addr2line.c:466 +#: src/addr2line.c:474 #, c-format msgid "offset %#<PRIxMAX> lies outside contents of '%s'" msgstr "" @@ -1005,8 +1009,8 @@ msgstr "" #: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767 #: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301 -#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900 -#: src/unstrip.c:1929 +#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913 +#: src/unstrip.c:1942 #, c-format msgid "cannot open '%s'" msgstr "'%s' を開けません" @@ -1063,7 +1067,7 @@ msgstr "ELF ファイルが gABI/psABI 仕様へ準拠しているかの厳密� msgid "FILE..." msgstr "ふぁいる..." -#: src/elflint.c:159 src/readelf.c:272 +#: src/elflint.c:159 src/readelf.c:273 #, c-format msgid "cannot open input file" msgstr "入力ファイルを開けません" @@ -1082,7 +1086,7 @@ msgstr "Elf 記述子を閉じている時にエラー: %s\n" msgid "No errors" msgstr "エラーはありません" -#: src/elflint.c:223 src/readelf.c:425 +#: src/elflint.c:223 src/readelf.c:426 msgid "Missing file name.\n" msgstr "ファイル名がありません。\n" @@ -3235,7 +3239,7 @@ msgstr "" "警告: `%1$s の大きさが %3$s の %2$<PRIu64> から %5$s の %4$<PRIu64> に変更さ" "れました" -#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543 +#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543 #, c-format msgid "cannot determine number of sections: %s" msgstr "セクション数を決定できません: %s" @@ -3473,7 +3477,7 @@ msgstr "内部エラー: 非 nobits セクションが nobits セクションに msgid "cannot get header of 0th section: %s" msgstr "0番目のセクションのヘッダーを得られません: %s" -#: src/ldgeneric.c:6941 src/unstrip.c:1808 +#: src/ldgeneric.c:6941 src/unstrip.c:1820 #, c-format msgid "cannot update ELF header: %s" msgstr "ELF ヘッダーを更新できません: %s" @@ -3673,11 +3677,11 @@ msgstr "%s%s%s: ファイル形式を認識できません" msgid "cannot create search tree" msgstr "検索ツリーを生成できません" -#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885 -#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549 -#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265 -#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939 -#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604 +#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886 +#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550 +#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266 +#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940 +#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794 #: src/size.c:425 src/size.c:499 src/strip.c:483 #, c-format msgid "cannot get section header string table index" @@ -3766,7 +3770,7 @@ msgstr "" msgid "Show information from FILEs (a.out by default)." msgstr "" -#: src/objdump.c:236 src/readelf.c:430 +#: src/objdump.c:236 src/readelf.c:431 msgid "No operation specified.\n" msgstr "操作が指定されていません。\n" @@ -3775,11 +3779,11 @@ msgstr "操作が指定されていません。\n" msgid "while close `%s'" msgstr "" -#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818 +#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819 msgid "INVALID SYMBOL" msgstr "不当なシンボル" -#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851 +#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852 msgid "INVALID SECTION" msgstr "不当なセクション" @@ -3921,87 +3925,87 @@ msgstr "DWARFデータ中のアドレスのためのシンボル名を探さな� msgid "Print information from ELF file in human-readable form." msgstr "ELF ファイルから人間が読める形で情報を印刷する。" -#: src/readelf.c:401 +#: src/readelf.c:402 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "不明な DWARF デバッグセクション `%s'.\n" -#: src/readelf.c:465 +#: src/readelf.c:466 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "Elf 記述子を生成できません: %s" -#: src/readelf.c:477 +#: src/readelf.c:478 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "'%s' はアーカイブではなく、アーカイブ索引を印刷できません" -#: src/readelf.c:482 +#: src/readelf.c:483 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "Elf 記述子を閉じている時にエラー: %s" -#: src/readelf.c:574 +#: src/readelf.c:575 #, c-format msgid "cannot stat input file" msgstr "入力ファイルを stat できません" -#: src/readelf.c:576 +#: src/readelf.c:577 #, c-format msgid "input file is empty" msgstr "入力ファイルが空です" -#: src/readelf.c:578 +#: src/readelf.c:579 #, c-format msgid "failed reading '%s': %s" msgstr "'%s' の読込みに失敗: %s" -#: src/readelf.c:614 +#: src/readelf.c:615 #, c-format msgid "cannot read ELF header: %s" msgstr "ELF ヘッダーが読めません: %s" -#: src/readelf.c:622 +#: src/readelf.c:623 #, c-format msgid "cannot create EBL handle" msgstr "EBL ヘッダーを生成できません" -#: src/readelf.c:635 +#: src/readelf.c:636 #, fuzzy, c-format msgid "cannot determine number of program headers: %s" msgstr "セクション数を決定できません: %s" -#: src/readelf.c:721 +#: src/readelf.c:722 msgid "NONE (None)" msgstr "なし (なし)" -#: src/readelf.c:722 +#: src/readelf.c:723 msgid "REL (Relocatable file)" msgstr "REL (リロケータブルファイル)" -#: src/readelf.c:723 +#: src/readelf.c:724 msgid "EXEC (Executable file)" msgstr "(EXEC (実行ファイル)" -#: src/readelf.c:724 +#: src/readelf.c:725 msgid "DYN (Shared object file)" msgstr "DYN (共用オブジェクトファイル)" -#: src/readelf.c:725 +#: src/readelf.c:726 msgid "CORE (Core file)" msgstr "CORE (コアファイル)" -#: src/readelf.c:730 +#: src/readelf.c:731 #, c-format msgid "OS Specific: (%x)\n" msgstr "OS 固有: (%x)\n" -#: src/readelf.c:732 +#: src/readelf.c:733 #, c-format msgid "Processor Specific: (%x)\n" msgstr "プロセッサー固有: (%x)\n" -#: src/readelf.c:742 +#: src/readelf.c:743 msgid "" "ELF Header:\n" " Magic: " @@ -4009,7 +4013,7 @@ msgstr "" "ELF ヘッダー:\n" " マジック: " -#: src/readelf.c:746 +#: src/readelf.c:747 #, c-format msgid "" "\n" @@ -4018,117 +4022,117 @@ msgstr "" "\n" " クラス: %s\n" -#: src/readelf.c:751 +#: src/readelf.c:752 #, c-format msgid " Data: %s\n" msgstr " データ: %s\n" -#: src/readelf.c:757 +#: src/readelf.c:758 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " 識別バージョン: %hhd %s\n" -#: src/readelf.c:759 src/readelf.c:776 +#: src/readelf.c:760 src/readelf.c:777 msgid "(current)" msgstr "(現在)" -#: src/readelf.c:763 +#: src/readelf.c:764 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:766 +#: src/readelf.c:767 #, c-format msgid " ABI Version: %hhd\n" msgstr " ABI バージョン: %hhd\n" -#: src/readelf.c:769 +#: src/readelf.c:770 msgid " Type: " msgstr " タイプ: " -#: src/readelf.c:772 +#: src/readelf.c:773 #, c-format msgid " Machine: %s\n" msgstr " マシン : %s\n" -#: src/readelf.c:774 +#: src/readelf.c:775 #, c-format msgid " Version: %d %s\n" msgstr " バージョン: %d %s\n" -#: src/readelf.c:778 +#: src/readelf.c:779 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " 入口点アドレス : %#<PRIx64>\n" -#: src/readelf.c:781 +#: src/readelf.c:782 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " プログラムヘッダーの開始: %<PRId64> %s\n" -#: src/readelf.c:782 src/readelf.c:785 +#: src/readelf.c:783 src/readelf.c:786 msgid "(bytes into file)" msgstr "(ファイルへのバイト数)" -#: src/readelf.c:784 +#: src/readelf.c:785 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " セクションヘッダーの開始: %<PRId64> %s\n" -#: src/readelf.c:787 +#: src/readelf.c:788 #, c-format msgid " Flags: %s\n" msgstr " フラグ: %s\n" -#: src/readelf.c:790 +#: src/readelf.c:791 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " このヘッダーの大きさ: %<PRId16> %s\n" -#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811 +#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812 msgid "(bytes)" msgstr "(バイト)" -#: src/readelf.c:793 +#: src/readelf.c:794 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " プログラムヘッダー項目の大きさ:%<PRId16> %s\n" -#: src/readelf.c:796 +#: src/readelf.c:797 #, fuzzy, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " プログラムヘッダー項目の数 : %<PRId16>\n" -#: src/readelf.c:803 +#: src/readelf.c:804 #, fuzzy, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr "([0].sh_link の %<PRIu32>)" -#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837 +#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838 msgid " ([0] not available)" msgstr "([0]は使えません)" -#: src/readelf.c:810 +#: src/readelf.c:811 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " セクションヘッダー項目の大きさ:%<PRId16> %s\n" -#: src/readelf.c:813 +#: src/readelf.c:814 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " セクションヘッダー項目の数 : %<PRId16>" -#: src/readelf.c:820 +#: src/readelf.c:821 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " ([0].sh_size の %<PRIu32>)" -#: src/readelf.c:833 +#: src/readelf.c:834 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr "([0].sh_link の %<PRIu32>)" -#: src/readelf.c:841 +#: src/readelf.c:842 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4137,7 +4141,7 @@ msgstr "" " セクションヘッダー文字列テーブル索引: XINDEX%s\n" "\n" -#: src/readelf.c:845 +#: src/readelf.c:846 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4146,7 +4150,7 @@ msgstr "" " セクションヘッダー文字列テーブル索引: %<PRId16>\n" "\n" -#: src/readelf.c:877 +#: src/readelf.c:878 #, c-format msgid "" "There are %d section headers, starting at offset %#<PRIx64>:\n" @@ -4155,11 +4159,11 @@ msgstr "" "オフセット %2$#<PRIx64> から始まる %1$d 個のセクションヘッダーがあります:\n" "\n" -#: src/readelf.c:887 +#: src/readelf.c:888 msgid "Section Headers:" msgstr "セクションヘッダー:" -#: src/readelf.c:890 +#: src/readelf.c:891 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4167,7 +4171,7 @@ msgstr "" "[番] 名前 タイプ アドレス オフセ 大きさ ES フラグLk " "Inf Al" -#: src/readelf.c:892 +#: src/readelf.c:893 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4175,31 +4179,31 @@ msgstr "" "[番] 名前 タイプ アドレス オフセ 大きさ ES " "フラグLk Inf Al" -#: src/readelf.c:899 src/readelf.c:1052 +#: src/readelf.c:900 src/readelf.c:1053 #, c-format msgid "cannot get section: %s" msgstr "セクションを得られません: %s" -#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353 -#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553 -#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244 -#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588 -#: src/unstrip.c:1778 +#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353 +#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558 +#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250 +#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593 +#: src/unstrip.c:1782 #, c-format msgid "cannot get section header: %s" msgstr "セクションヘッダーを得られません: %s" -#: src/readelf.c:964 +#: src/readelf.c:965 msgid "Program Headers:" msgstr "プログラムヘッダー:" -#: src/readelf.c:966 +#: src/readelf.c:967 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " タイプ オフセ 仮アドレス 物アドレス ファイ量 メモ量 Flg 調整 " -#: src/readelf.c:969 +#: src/readelf.c:970 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4207,12 +4211,12 @@ msgstr "" " タイプ オフセ 仮想アドレス 物理アドレス ファイル量メモ" "量 Flg 調整 " -#: src/readelf.c:1009 +#: src/readelf.c:1010 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[プログラム割込みを要求: %s]\n" -#: src/readelf.c:1030 +#: src/readelf.c:1031 msgid "" "\n" " Section to Segment mapping:\n" @@ -4222,12 +4226,12 @@ msgstr "" " セクションからセグメントへのマッビング:\n" " セグメント セクション..." -#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870 +#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883 #, c-format msgid "cannot get program header: %s" msgstr "プログラムヘッダーを得られません: %s" -#: src/readelf.c:1175 +#: src/readelf.c:1176 #, c-format msgid "" "\n" @@ -4240,7 +4244,7 @@ msgstr[0] "" "署名 '%3$s' を持つ COMDAT セクショングループ [%1$2zu] '%2$s' には %4$zu 個の" "項目があります:\n" -#: src/readelf.c:1180 +#: src/readelf.c:1181 #, c-format msgid "" "\n" @@ -4253,15 +4257,15 @@ msgstr[0] "" "署名 '%3$s' を持つセクショングループ [%1$2zu] '%2$s' には %4$zu 個の項目があ" "ります:\n" -#: src/readelf.c:1188 +#: src/readelf.c:1189 msgid "<INVALID SYMBOL>" msgstr "<不当なシンボル>" -#: src/readelf.c:1202 +#: src/readelf.c:1203 msgid "<INVALID SECTION>" msgstr "<不当なセクション>" -#: src/readelf.c:1353 +#: src/readelf.c:1354 #, c-format msgid "" "\n" @@ -4277,36 +4281,36 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%" "2u] '%s'\n" -#: src/readelf.c:1365 +#: src/readelf.c:1366 msgid " Type Value\n" msgstr " タイプ 値\n" -#: src/readelf.c:1389 +#: src/readelf.c:1390 #, c-format msgid "Shared library: [%s]\n" msgstr "共用ライブラリー: [%s]\n" -#: src/readelf.c:1394 +#: src/readelf.c:1395 #, c-format msgid "Library soname: [%s]\n" msgstr "ライブラリー so 名: [%s]\n" -#: src/readelf.c:1399 +#: src/readelf.c:1400 #, c-format msgid "Library rpath: [%s]\n" msgstr "ライブラリー rパス: [%s]\n" -#: src/readelf.c:1404 +#: src/readelf.c:1405 #, c-format msgid "Library runpath: [%s]\n" msgstr "ライブラリー run パス: [%s]\n" -#: src/readelf.c:1424 +#: src/readelf.c:1425 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (バイト)\n" -#: src/readelf.c:1534 src/readelf.c:1720 +#: src/readelf.c:1535 src/readelf.c:1721 #, c-format msgid "" "\n" @@ -4315,7 +4319,7 @@ msgstr "" "\n" "オフセット %#0<PRIx64> に不当なシンボルテーブル\n" -#: src/readelf.c:1552 src/readelf.c:1737 +#: src/readelf.c:1553 src/readelf.c:1738 #, c-format msgid "" "\n" @@ -4330,7 +4334,7 @@ msgstr[0] "" "オフセット %5$#0<PRIx64> のセクション [%3$2u] '%4$s' 用のリロケーションセク" "ション [%1$2zu] '%2$s' には %6$d 個の項目があります:\n" -#: src/readelf.c:1567 +#: src/readelf.c:1568 #, c-format msgid "" "\n" @@ -4343,29 +4347,29 @@ msgstr[0] "" "オフセット %3$#0<PRIx64> のリロケーションセクション [%1$2u] '%2$s' には %4$d " "個の項目があります:\n" -#: src/readelf.c:1577 +#: src/readelf.c:1578 msgid " Offset Type Value Name\n" msgstr " オフセット タイプ 値 名前\n" -#: src/readelf.c:1579 +#: src/readelf.c:1580 msgid " Offset Type Value Name\n" msgstr " オフセット タイプ 値 名前\n" -#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674 -#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831 -#: src/readelf.c:1850 src/readelf.c:1863 +#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675 +#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832 +#: src/readelf.c:1851 src/readelf.c:1864 msgid "<INVALID RELOC>" msgstr "<不当なRELOC>" -#: src/readelf.c:1749 +#: src/readelf.c:1750 msgid " Offset Type Value Addend Name\n" msgstr " オフセット タイプ 値 付加名\n" -#: src/readelf.c:1751 +#: src/readelf.c:1752 msgid " Offset Type Value Addend Name\n" msgstr " オフセット タイプ 値 付加名\n" -#: src/readelf.c:1952 +#: src/readelf.c:1953 #, c-format msgid "" "\n" @@ -4377,39 +4381,39 @@ msgstr[0] "" "\n" "シンボルテーブル [%2u] '%s' には %u 個の項目があります:\n" -#: src/readelf.c:1958 +#: src/readelf.c:1959 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" msgstr[0] " %lu ローカルシンボル文字列テーブル: [%2u] '%s'\n" -#: src/readelf.c:1968 +#: src/readelf.c:1969 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " 数 : 値 大き タイプ Bind Vis Ndx 名前\n" -#: src/readelf.c:1970 +#: src/readelf.c:1971 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " 数 : 値 大き タイプ Bind Vis Ndx 名前\n" -#: src/readelf.c:1990 +#: src/readelf.c:1991 #, c-format msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -#: src/readelf.c:2078 +#: src/readelf.c:2079 #, c-format msgid "bad dynamic symbol" msgstr "不正な動的シンボル" -#: src/readelf.c:2160 +#: src/readelf.c:2161 msgid "none" msgstr "なし" -#: src/readelf.c:2177 +#: src/readelf.c:2178 msgid "| <unknown>" msgstr "| <不明>" -#: src/readelf.c:2202 +#: src/readelf.c:2203 #, c-format msgid "" "\n" @@ -4425,17 +4429,17 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%" "2u] '%s'\n" -#: src/readelf.c:2225 +#: src/readelf.c:2226 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: バージョン: %hu ファイル: %s 数: %hu\n" -#: src/readelf.c:2238 +#: src/readelf.c:2239 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: 名前: %s フラグ: %s バージョン: %hu\n" -#: src/readelf.c:2269 +#: src/readelf.c:2270 #, c-format msgid "" "\n" @@ -4451,17 +4455,17 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%" "2u] '%s'\n" -#: src/readelf.c:2299 +#: src/readelf.c:2300 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr " %#06x: バージョン: %hd フラグ: %s 索引: %hd 数: %hd 名前: %s\n" -#: src/readelf.c:2314 +#: src/readelf.c:2315 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: 親 %d: %s\n" -#: src/readelf.c:2546 +#: src/readelf.c:2547 #, c-format msgid "" "\n" @@ -4477,15 +4481,15 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%" "2u] '%s'" -#: src/readelf.c:2576 +#: src/readelf.c:2577 msgid " 0 *local* " msgstr " 0 *ローカル* " -#: src/readelf.c:2581 +#: src/readelf.c:2582 msgid " 1 *global* " msgstr " 1 *グローバル* " -#: src/readelf.c:2612 +#: src/readelf.c:2613 #, c-format msgid "" "\n" @@ -4503,36 +4507,36 @@ msgstr[0] "" " アドレス: %#0*<PRIx64> オフセット: %#08<PRIx64> セクションへのリンク: [%" "2u] '%s'\n" -#: src/readelf.c:2636 +#: src/readelf.c:2637 #, fuzzy, no-c-format msgid " Length Number % of total Coverage\n" msgstr " 長さ 数 全体の% 範囲 \n" -#: src/readelf.c:2638 +#: src/readelf.c:2639 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:2645 +#: src/readelf.c:2646 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:2658 -#, c-format +#: src/readelf.c:2659 +#, fuzzy, c-format msgid "" " Average number of tests: successful lookup: %f\n" -" unsuccessful lookup: %f\n" +"\t\t\t unsuccessful lookup: %f\n" msgstr "" " テストの平均数: 検索成功: %f\n" " 検索失敗: %f\n" -#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759 +#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760 #, c-format msgid "cannot get data for section %d: %s" msgstr "セクションからデータを得られません %d: %s" -#: src/readelf.c:2813 +#: src/readelf.c:2814 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4542,7 +4546,7 @@ msgstr "" " ビットマスクの大きさ: %zu バイト %<PRIuFAST32>%% ビット設定 第2ハッシュシフ" "ト: %u\n" -#: src/readelf.c:2887 +#: src/readelf.c:2888 #, c-format msgid "" "\n" @@ -4555,7 +4559,7 @@ msgstr[0] "" "オフセット %3$#0<PRIx64> のライブラリー一覧セクション [%1$2zu] '%2$s' には %4" "$d 個の項目があります:\n" -#: src/readelf.c:2901 +#: src/readelf.c:2902 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4563,7 +4567,7 @@ msgstr "" " ライブラリー タイムスタンプ チェックサム バー" "ジョン フラグ" -#: src/readelf.c:2951 +#: src/readelf.c:2952 #, c-format msgid "" "\n" @@ -4574,140 +4578,140 @@ msgstr "" "オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのオブジェクト属性セクション [%" "1$2zu] '%2$s':\n" -#: src/readelf.c:2967 +#: src/readelf.c:2968 msgid " Owner Size\n" msgstr " 所有者 大きさ\n" -#: src/readelf.c:2993 +#: src/readelf.c:2994 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" -#: src/readelf.c:3025 +#: src/readelf.c:3026 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" -#: src/readelf.c:3030 +#: src/readelf.c:3031 #, c-format msgid " File: %11<PRIu32>\n" msgstr " ファイル: %11<PRIu32>\n" -#: src/readelf.c:3065 +#: src/readelf.c:3066 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>、%s\n" -#: src/readelf.c:3068 +#: src/readelf.c:3069 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3071 +#: src/readelf.c:3072 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3078 +#: src/readelf.c:3079 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3081 +#: src/readelf.c:3082 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3117 +#: src/readelf.c:3118 #, c-format msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3120 +#: src/readelf.c:3121 #, c-format msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3125 +#: src/readelf.c:3126 #, c-format msgid "%#<PRIx64> <%s+%#<PRIx64>>" msgstr "%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3128 +#: src/readelf.c:3129 #, c-format msgid "%#0*<PRIx64> <%s+%#<PRIx64>>" msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3134 +#: src/readelf.c:3135 #, c-format msgid "%s+%#<PRIx64> <%s>" msgstr "%s+%#<PRIx64> <%s>" -#: src/readelf.c:3137 +#: src/readelf.c:3138 #, c-format msgid "%s+%#0*<PRIx64> <%s>" msgstr "%s+%#0*<PRIx64> <%s>" -#: src/readelf.c:3141 +#: src/readelf.c:3142 #, c-format msgid "%#<PRIx64> <%s>" msgstr "%#<PRIx64> <%s>" -#: src/readelf.c:3144 +#: src/readelf.c:3145 #, c-format msgid "%#0*<PRIx64> <%s>" msgstr "%#0*<PRIx64> <%s>" -#: src/readelf.c:3149 +#: src/readelf.c:3150 #, c-format msgid "%s+%#<PRIx64>" msgstr "%s+%#<PRIx64>" -#: src/readelf.c:3152 +#: src/readelf.c:3153 #, c-format msgid "%s+%#0*<PRIx64>" msgstr "%s+%#0*<PRIx64>" -#: src/readelf.c:3260 +#: src/readelf.c:3284 #, c-format msgid "unknown tag %hx" msgstr "不明なタグ %hx" -#: src/readelf.c:3262 +#: src/readelf.c:3286 #, c-format msgid "unknown user tag %hx" msgstr "不明な利用者タグ %hx" -#: src/readelf.c:3480 +#: src/readelf.c:3510 #, c-format msgid "unknown attribute %hx" msgstr "不明な属性 %hx" -#: src/readelf.c:3483 +#: src/readelf.c:3513 #, c-format msgid "unknown user attribute %hx" msgstr "不明な利用者属性 %hx" -#: src/readelf.c:3529 +#: src/readelf.c:3563 #, c-format msgid "unknown form %<PRIx64>" msgstr "不明な様式 %<PRIx64>" -#: src/readelf.c:3763 +#: src/readelf.c:3797 msgid "empty block" msgstr "空ブロック" -#: src/readelf.c:3766 +#: src/readelf.c:3800 #, c-format msgid "%zu byte block:" msgstr "%zu バイトのブロック:" -#: src/readelf.c:4175 +#: src/readelf.c:4222 #, c-format msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" -#: src/readelf.c:4188 +#: src/readelf.c:4235 #, c-format msgid "" "\n" @@ -4718,7 +4722,7 @@ msgstr "" "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n" " [ コード]\n" -#: src/readelf.c:4195 +#: src/readelf.c:4242 #, c-format msgid "" "\n" @@ -4727,30 +4731,30 @@ msgstr "" "\n" "オフセット %<PRIu64> の略語セクション:\n" -#: src/readelf.c:4208 +#: src/readelf.c:4255 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** 略語を読んでいる間にエラー: %s\n" -#: src/readelf.c:4224 +#: src/readelf.c:4271 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] オフセット: %<PRId64>、子: %s、タグ: %s\n" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "yes" msgstr "はい" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "no" msgstr "いいえ" -#: src/readelf.c:4263 +#: src/readelf.c:4310 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr ".debug_aragnes の内容を得られません: %s" -#: src/readelf.c:4268 +#: src/readelf.c:4315 #, c-format msgid "" "\n" @@ -4763,25 +4767,25 @@ msgstr[0] "" "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s' には %4$zu 個の項" "目があります:\n" -#: src/readelf.c:4298 +#: src/readelf.c:4345 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4300 +#: src/readelf.c:4347 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" msgstr "" " [%*zu] 開始: %0#*<PRIx64>、長さ: %5<PRIu64>、CU DIE オフセット: %6<PRId64>\n" -#: src/readelf.c:4319 +#: src/readelf.c:4366 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr ".degub_ranges の内容を得られません: %s" -#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897 -#: src/readelf.c:5992 src/readelf.c:6164 +#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079 +#: src/readelf.c:6178 src/readelf.c:6350 #, c-format msgid "" "\n" @@ -4790,32 +4794,32 @@ msgstr "" "\n" "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:4338 src/readelf.c:5911 +#: src/readelf.c:4385 src/readelf.c:6097 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <不当なデータ>\n" -#: src/readelf.c:4360 src/readelf.c:5933 +#: src/readelf.c:4407 src/readelf.c:6119 #, c-format msgid " [%6tx] base address %s\n" msgstr " [%6tx] ベースアドレス %s\n" -#: src/readelf.c:4371 +#: src/readelf.c:4418 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4373 +#: src/readelf.c:4420 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332 +#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518 #, c-format msgid "cannot get %s content: %s" msgstr "%s の内容を得られません: %s" -#: src/readelf.c:4806 +#: src/readelf.c:4853 #, c-format msgid "" "\n" @@ -4824,12 +4828,12 @@ msgstr "" "\n" "オフセット %3$#<PRIx64> の フレーム情報呼出しセクション [%1$2zu] '%2$s':\n" -#: src/readelf.c:4833 src/readelf.c:5486 +#: src/readelf.c:4881 src/readelf.c:5615 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "セクション [%zu] '%s' の不当なデータ" -#: src/readelf.c:4855 +#: src/readelf.c:4903 #, c-format msgid "" "\n" @@ -4838,50 +4842,50 @@ msgstr "" "\n" " [%6tx] ゼロ終端\n" -#: src/readelf.c:4924 +#: src/readelf.c:4987 #, fuzzy, c-format msgid "invalid augmentation length" msgstr "不当な拡大エンコード" -#: src/readelf.c:4936 +#: src/readelf.c:4999 msgid "FDE address encoding: " msgstr "FDE アドレスエンコード" -#: src/readelf.c:4942 +#: src/readelf.c:5005 msgid "LSDA pointer encoding: " msgstr "LSDA ポインターエンコード:" -#: src/readelf.c:5034 +#: src/readelf.c:5101 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (オフセット: %#<PRIx64>)" -#: src/readelf.c:5041 +#: src/readelf.c:5108 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (終了オフセット: %#<PRIx64>)" -#: src/readelf.c:5068 +#: src/readelf.c:5135 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr " %-26sLSDA ポインター: %#<PRIx64>\n" -#: src/readelf.c:5114 +#: src/readelf.c:5182 #, c-format msgid "cannot get attribute code: %s" msgstr "属性コードを得られません: %s" -#: src/readelf.c:5122 +#: src/readelf.c:5190 #, c-format msgid "cannot get attribute form: %s" msgstr "属性様式を得られません: %s" -#: src/readelf.c:5135 +#: src/readelf.c:5203 #, c-format msgid "cannot get attribute value: %s" msgstr "属性値を得られません: %s" -#: src/readelf.c:5331 +#: src/readelf.c:5428 #, c-format msgid "" "\n" @@ -4892,7 +4896,19 @@ msgstr "" "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n" " [オフセット]\n" -#: src/readelf.c:5356 +#: src/readelf.c:5458 +#, fuzzy, c-format +msgid "" +" Type unit at offset %<PRIu64>:\n" +" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %" +"<PRIu8>, Offset size: %<PRIu8>\n" +" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n" +msgstr "" +" オフセット %1$<PRIu64> のコンパイル単位:\n" +" バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大" +"きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n" + +#: src/readelf.c:5466 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -4903,40 +4919,40 @@ msgstr "" " バージョン: %2$<PRIu16>、略語セクションオフセット: %3$<PRIu64>、アドレスの大" "きさ: %4$<PRIu8>、オフセットの大きさ: %5$<PRIu8>\n" -#: src/readelf.c:5374 +#: src/readelf.c:5489 #, c-format msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s" msgstr "" "セクション '%2$s' の オフセット %1$<PRIu64> の DIE を得られません: %3$s" -#: src/readelf.c:5385 +#: src/readelf.c:5500 #, c-format msgid "cannot get DIE offset: %s" msgstr "DIE オフセットを得られません: %s" -#: src/readelf.c:5393 +#: src/readelf.c:5508 #, c-format msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s" msgstr "" "セクション '%2$s' 中のオフセット %1$<PRIu64> の DIE のタグを得られません: %3" "$s" -#: src/readelf.c:5422 +#: src/readelf.c:5537 #, c-format msgid "cannot get next DIE: %s\n" msgstr "次の DIE を得られません: %s\n" -#: src/readelf.c:5429 +#: src/readelf.c:5544 #, c-format msgid "cannot get next DIE: %s" msgstr "次の DIE を得られません: %s" -#: src/readelf.c:5464 +#: src/readelf.c:5593 #, c-format msgid "cannot get line data section data: %s" msgstr "ラインデータセクションデータを得られません: %s" -#: src/readelf.c:5477 +#: src/readelf.c:5606 #, c-format msgid "" "\n" @@ -4945,14 +4961,15 @@ msgstr "" "\n" "オフセット %Zu のテーブル:\n" -#: src/readelf.c:5529 -#, c-format +#: src/readelf.c:5661 +#, fuzzy, c-format msgid "" "\n" " Length: %<PRIu64>\n" " DWARF version: %<PRIuFAST16>\n" " Prologue length: %<PRIu64>\n" " Minimum instruction length: %<PRIuFAST8>\n" +" Maximum operations per instruction: %<PRIuFAST8>\n" " Initial value if '%s': %<PRIuFAST8>\n" " Line base: %<PRIdFAST8>\n" " Line range: %<PRIuFAST8>\n" @@ -4972,18 +4989,18 @@ msgstr "" "\n" "命令コード:\n" -#: src/readelf.c:5548 +#: src/readelf.c:5682 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "セクション [%2$zu] '%3$s' 中のオフセット %1$tu に不当なデータ" -#: src/readelf.c:5563 +#: src/readelf.c:5697 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" msgstr[0] " [%*<PRIuFAST8>] %hhu パラメーター\n" -#: src/readelf.c:5571 +#: src/readelf.c:5705 msgid "" "\n" "Directory table:" @@ -4991,7 +5008,7 @@ msgstr "" "\n" "ディレクトリーテーブル:" -#: src/readelf.c:5587 +#: src/readelf.c:5721 msgid "" "\n" "File name table:\n" @@ -5001,7 +5018,7 @@ msgstr "" "ファイル名テーブル:\n" " Entry Dir 時刻 大きさ 名前" -#: src/readelf.c:5616 +#: src/readelf.c:5750 msgid "" "\n" "Line number statements:" @@ -5009,118 +5026,143 @@ msgstr "" "\n" "行 番号 文:" -#: src/readelf.c:5677 +#: src/readelf.c:5824 +#, fuzzy, c-format +msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" +msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n" + +#: src/readelf.c:5829 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr " 特殊命令コード %u: アドレス+%u = %s, 行%+d = %zu\n" -#: src/readelf.c:5697 +#: src/readelf.c:5849 #, c-format msgid " extended opcode %u: " msgstr " 拡張命令コード %u: " -#: src/readelf.c:5702 +#: src/readelf.c:5854 msgid "end of sequence" msgstr "列の終わり" -#: src/readelf.c:5717 +#: src/readelf.c:5871 #, c-format msgid "set address to %s\n" msgstr "アドレスを %s に設定する\n" -#: src/readelf.c:5738 +#: src/readelf.c:5892 #, c-format msgid "define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" "新ファイルを定義する: dir=%u、mtime=%<PRIu64>、長さh=%<PRIu64>、名前=%s\n" -#: src/readelf.c:5747 +#: src/readelf.c:5905 +#, fuzzy, c-format +msgid " set discriminator to %u\n" +msgstr "カラムを %<PRIu64> に設定する\n" + +#: src/readelf.c:5910 msgid "unknown opcode" msgstr "不明な命令コード" -#: src/readelf.c:5759 +#: src/readelf.c:5922 msgid " copy" msgstr "複写" -#: src/readelf.c:5769 +#: src/readelf.c:5933 +#, fuzzy, c-format +msgid "advance address by %u to %s, op_index to %u\n" +msgstr "アドレスを %u だけ進めて %s にする\n" + +#: src/readelf.c:5937 #, c-format msgid "advance address by %u to %s\n" msgstr "アドレスを %u だけ進めて %s にする\n" -#: src/readelf.c:5780 +#: src/readelf.c:5948 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr "行を定数 %d だけ進めて %<PRId64> にする\n" -#: src/readelf.c:5788 +#: src/readelf.c:5956 #, c-format msgid " set file to %<PRIu64>\n" msgstr " ファイルを %<PRIu64> に設定する\n" -#: src/readelf.c:5798 +#: src/readelf.c:5966 #, c-format msgid " set column to %<PRIu64>\n" msgstr "カラムを %<PRIu64> に設定する\n" -#: src/readelf.c:5805 +#: src/readelf.c:5973 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr " '%s' を %<PRIuFAST8> に設定する\n" -#: src/readelf.c:5811 +#: src/readelf.c:5979 msgid " set basic block flag" msgstr "基本ブロックフラグを設定する" -#: src/readelf.c:5821 +#: src/readelf.c:5988 +#, fuzzy, c-format +msgid "advance address by constant %u to %s, op_index to %u\n" +msgstr "アドレスを定数 %u だけ済めて %s にする\n" + +#: src/readelf.c:5992 #, c-format msgid "advance address by constant %u to %s\n" msgstr "アドレスを定数 %u だけ済めて %s にする\n" -#: src/readelf.c:5837 +#: src/readelf.c:6010 #, c-format msgid "advance address by fixed value %u to %s\n" msgstr "アドレスを固定値 %u だけ進めて %s にする\n" -#: src/readelf.c:5846 +#: src/readelf.c:6019 msgid " set prologue end flag" msgstr "プロローグ終了フラグを設定する" -#: src/readelf.c:5851 +#: src/readelf.c:6024 msgid " set epilogue begin flag" msgstr "エピローグ開始フラグを設定する" -#: src/readelf.c:5860 +#: src/readelf.c:6033 +#, fuzzy, c-format +msgid " set isa to %u\n" +msgstr " ファイルを %<PRIu64> に設定する\n" + +#: src/readelf.c:6042 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" msgstr[0] " %<PRIu8> 個のパラメーターのある不明な命令コード:" -#: src/readelf.c:5892 +#: src/readelf.c:6074 #, c-format msgid "cannot get .debug_loc content: %s" msgstr ".debug_loc の内容を得られません: %s" -#: src/readelf.c:5947 +#: src/readelf.c:6133 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s..%s" -#: src/readelf.c:5949 +#: src/readelf.c:6135 #, c-format msgid " %s..%s" msgstr " %s..%s" -#: src/readelf.c:6002 +#: src/readelf.c:6188 #, c-format msgid "cannot get macro information section data: %s" msgstr "マクロ情報セクションのデータを得られません: %s" -#: src/readelf.c:6081 +#: src/readelf.c:6267 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** 最後のセクションの終端していない文字列" -#: src/readelf.c:6149 +#: src/readelf.c:6335 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" @@ -5128,7 +5170,7 @@ msgstr "" # # "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n" # # " %4$*s 文字列\n" がエラーになるのは何故? 取り敢えず fuzzy扱い -#: src/readelf.c:6188 +#: src/readelf.c:6374 #, fuzzy, c-format msgid "" "\n" @@ -5139,12 +5181,12 @@ msgstr "" "オフセット %3$#<PRIx64> の DWARF セクション [%1$2zu] '%2$s':\n" " %4$*s 文字列\n" -#: src/readelf.c:6202 +#: src/readelf.c:6388 #, c-format msgid " *** error while reading strings: %s\n" msgstr " *** 文字列の読込み中にエラー: %s\n" -#: src/readelf.c:6222 +#: src/readelf.c:6408 #, c-format msgid "" "\n" @@ -5153,7 +5195,7 @@ msgstr "" "\n" "呼出しフレーム検索テーブルセクション [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:6324 +#: src/readelf.c:6510 #, c-format msgid "" "\n" @@ -5162,22 +5204,22 @@ msgstr "" "\n" "例外取扱いテーブルセクション [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:6347 +#: src/readelf.c:6533 #, c-format msgid " LPStart encoding: %#x " msgstr " LPStart コード化: %#x " -#: src/readelf.c:6359 +#: src/readelf.c:6545 #, c-format msgid " TType encoding: %#x " msgstr "TType コード化: %#x " -#: src/readelf.c:6373 +#: src/readelf.c:6559 #, c-format msgid " Call site encoding: %#x " msgstr "呼出しサイトコード化: %#x " -#: src/readelf.c:6386 +#: src/readelf.c:6572 msgid "" "\n" " Call site table:" @@ -5185,7 +5227,7 @@ msgstr "" "\n" " 呼出しサイトテーブル:" -#: src/readelf.c:6400 +#: src/readelf.c:6586 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5198,22 +5240,22 @@ msgstr "" " 離着陸場: %#<PRIx64>\n" " 行動: %u\n" -#: src/readelf.c:6460 +#: src/readelf.c:6646 #, c-format msgid "invalid TType encoding" msgstr "不当な TType コード化" -#: src/readelf.c:6484 +#: src/readelf.c:6671 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "デバッグ内容記述子を得られません: %s" -#: src/readelf.c:6620 src/readelf.c:7221 +#: src/readelf.c:6810 src/readelf.c:7411 #, c-format msgid "cannot convert core note data: %s" msgstr "コアノートデータの変換ができません: %s" -#: src/readelf.c:6961 +#: src/readelf.c:7151 #, c-format msgid "" "\n" @@ -5222,21 +5264,21 @@ msgstr "" "\n" "%*s... < %u 回の繰返し> ..." -#: src/readelf.c:7320 +#: src/readelf.c:7510 msgid " Owner Data size Type\n" msgstr " 所有者 データ大きさタイプ\n" -#: src/readelf.c:7338 +#: src/readelf.c:7528 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:7372 +#: src/readelf.c:7562 #, c-format msgid "cannot get content of note section: %s" msgstr "ノートセクションの内容を得られません: %s" -#: src/readelf.c:7399 +#: src/readelf.c:7589 #, c-format msgid "" "\n" @@ -5246,7 +5288,7 @@ msgstr "" "オフセット %4$#0<PRIx64> の %3$<PRIu64> バイトのノートセクション [%1$2zu] '%2" "$s':\n" -#: src/readelf.c:7422 +#: src/readelf.c:7612 #, c-format msgid "" "\n" @@ -5255,7 +5297,7 @@ msgstr "" "\n" "オフセット %2$#0<PRIx64> の %1$<PRIu64> バイトのノートセグメント:\n" -#: src/readelf.c:7468 +#: src/readelf.c:7658 #, c-format msgid "" "\n" @@ -5264,12 +5306,12 @@ msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/readelf.c:7474 src/readelf.c:7497 +#: src/readelf.c:7664 src/readelf.c:7687 #, c-format msgid "cannot get data for section [%Zu] '%s': %s" msgstr "セクション [%Zu] '%s' からデータが得られません: %s" -#: src/readelf.c:7478 +#: src/readelf.c:7668 #, c-format msgid "" "\n" @@ -5279,7 +5321,7 @@ msgstr "" "オフセット %4$#0<PRIx64> のセクション [%1$Zu] '%2$s' の16進ダンプ、%3" "$<PRIu64> バイト:\n" -#: src/readelf.c:7491 +#: src/readelf.c:7681 #, fuzzy, c-format msgid "" "\n" @@ -5288,7 +5330,7 @@ msgstr "" "\n" "セクション [%Zu] '%s' にはダンプすべきデータがありません。\n" -#: src/readelf.c:7501 +#: src/readelf.c:7691 #, c-format msgid "" "\n" @@ -5298,7 +5340,7 @@ msgstr "" "オフセット %4$#0<PRIx64> 文字列セクション [%1$Zu] '%2$s' には %3$<PRIu64> バ" "イトあります:\n" -#: src/readelf.c:7549 +#: src/readelf.c:7739 #, c-format msgid "" "\n" @@ -5307,7 +5349,7 @@ msgstr "" "\n" "セクション [%lu] がありません" -#: src/readelf.c:7576 +#: src/readelf.c:7766 #, c-format msgid "" "\n" @@ -5316,12 +5358,12 @@ msgstr "" "\n" "セクション '%s' がありません" -#: src/readelf.c:7637 +#: src/readelf.c:7827 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "アーカイブのシンボル索引 '%s' を得られません: %s" -#: src/readelf.c:7640 +#: src/readelf.c:7830 #, c-format msgid "" "\n" @@ -5330,7 +5372,7 @@ msgstr "" "\n" "アーカイブ '%s' にはシンボル索引がありません\n" -#: src/readelf.c:7644 +#: src/readelf.c:7834 #, c-format msgid "" "\n" @@ -5339,12 +5381,12 @@ msgstr "" "\n" "アーカイブ '%s' の索引には %Zu 項目あります:\n" -#: src/readelf.c:7662 +#: src/readelf.c:7852 #, c-format msgid "cannot extract member at offset %Zu in '%s': %s" msgstr "'%2$s' の オフセット %1$Zu のメンバーを抽出できません: %3$s" -#: src/readelf.c:7667 +#: src/readelf.c:7857 #, c-format msgid "Archive member '%s' contains:\n" msgstr "アーカイブメンバー '%s' には以下があります:\n" @@ -5700,7 +5742,7 @@ msgstr "" msgid "cannot copy ELF header: %s" msgstr "" -#: src/unstrip.c:264 src/unstrip.c:1817 +#: src/unstrip.c:264 src/unstrip.c:1830 #, c-format msgid "cannot create program headers: %s" msgstr "" @@ -5715,12 +5757,12 @@ msgstr "" msgid "cannot copy section header: %s" msgstr "" -#: src/unstrip.c:283 src/unstrip.c:1505 +#: src/unstrip.c:283 src/unstrip.c:1511 #, c-format msgid "cannot get section data: %s" msgstr "" -#: src/unstrip.c:285 src/unstrip.c:1507 +#: src/unstrip.c:285 src/unstrip.c:1513 #, c-format msgid "cannot copy section data: %s" msgstr "" @@ -5730,181 +5772,190 @@ msgstr "" msgid "cannot create directory '%s'" msgstr "" -#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540 +#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545 #, c-format msgid "cannot get symbol table entry: %s" msgstr "" -#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613 -#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715 +#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616 +#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720 #, c-format msgid "cannot update symbol table: %s" msgstr "" -#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209 -#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791 +#: src/unstrip.c:375 #, c-format msgid "cannot update section header: %s" msgstr "" -#: src/unstrip.c:408 src/unstrip.c:419 +#: src/unstrip.c:414 src/unstrip.c:425 #, c-format msgid "cannot update relocation: %s" msgstr "" -#: src/unstrip.c:507 +#: src/unstrip.c:512 #, c-format msgid "cannot get symbol version: %s" msgstr "" -#: src/unstrip.c:519 +#: src/unstrip.c:524 #, c-format msgid "unexpected section type in [%Zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:769 +#: src/unstrip.c:772 #, c-format msgid "invalid string offset in symbol [%Zu]" msgstr "" -#: src/unstrip.c:911 src/unstrip.c:1248 +#: src/unstrip.c:914 src/unstrip.c:1254 #, c-format msgid "cannot read section [%Zu] name: %s" msgstr "" -#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004 +#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "" -#: src/unstrip.c:992 +#: src/unstrip.c:995 #, c-format msgid "invalid contents in '%s' section" msgstr "" -#: src/unstrip.c:1047 src/unstrip.c:1370 +#: src/unstrip.c:1050 src/unstrip.c:1376 #, c-format msgid "cannot find matching section for [%Zu] '%s'" msgstr "" -#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451 +#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457 #, c-format msgid "cannot add section name to string table: %s" msgstr "" -#: src/unstrip.c:1195 +#: src/unstrip.c:1198 #, c-format msgid "cannot update section header string table data: %s" msgstr "" -#: src/unstrip.c:1223 src/unstrip.c:1227 +#: src/unstrip.c:1225 src/unstrip.c:1229 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" -#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466 +#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472 #, c-format msgid "cannot get section count: %s" msgstr "" -#: src/unstrip.c:1293 src/unstrip.c:1385 +#: src/unstrip.c:1240 +#, c-format +msgid "more sections in stripped file than debug file -- arguments reversed?" +msgstr "" + +#: src/unstrip.c:1299 src/unstrip.c:1391 #, c-format msgid "cannot read section header string table: %s" msgstr "" -#: src/unstrip.c:1445 +#: src/unstrip.c:1451 #, c-format msgid "cannot add new section: %s" msgstr "" -#: src/unstrip.c:1548 +#: src/unstrip.c:1553 #, c-format msgid "symbol [%Zu] has invalid section index" msgstr "" -#: src/unstrip.c:1800 +#: src/unstrip.c:1791 +#, fuzzy, c-format +msgid "cannot read section data: %s" +msgstr "セクションデータを割り当てられません: %s" + +#: src/unstrip.c:1812 #, c-format msgid "cannot get ELF header: %s" msgstr "" -#: src/unstrip.c:1827 +#: src/unstrip.c:1840 #, c-format msgid "cannot update program header: %s" msgstr "" -#: src/unstrip.c:1832 src/unstrip.c:1911 +#: src/unstrip.c:1845 src/unstrip.c:1924 #, c-format msgid "cannot write output file: %s" msgstr "" -#: src/unstrip.c:1880 +#: src/unstrip.c:1893 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1883 +#: src/unstrip.c:1896 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034 +#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "" -#: src/unstrip.c:1960 +#: src/unstrip.c:1973 #, c-format msgid "'%s' and '%s' do not seem to match" msgstr "" -#: src/unstrip.c:1991 +#: src/unstrip.c:2004 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "" -#: src/unstrip.c:1995 +#: src/unstrip.c:2008 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2010 +#: src/unstrip.c:2023 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "" -#: src/unstrip.c:2014 +#: src/unstrip.c:2027 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "" -#: src/unstrip.c:2027 +#: src/unstrip.c:2040 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "" -#: src/unstrip.c:2058 +#: src/unstrip.c:2071 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "" -#: src/unstrip.c:2191 +#: src/unstrip.c:2204 #, c-format msgid "no matching modules found" msgstr "" -#: src/unstrip.c:2200 +#: src/unstrip.c:2213 #, c-format msgid "matched more than one module" msgstr "" -#: src/unstrip.c:2247 +#: src/unstrip.c:2260 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2248 +#: src/unstrip.c:2261 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2010-05-03 14:14-0700\n" -"PO-Revision-Date: 2007-03-16 20:10+0100\n" +"POT-Creation-Date: 2010-06-28 12:08-0700\n" +"PO-Revision-Date: 2010-05-28 23:37+0200\n" "Last-Translator: Piotr Drąg <[email protected]>\n" "Language-Team: Polish <[email protected]>\n" "MIME-Version: 1.0\n" @@ -16,8 +16,8 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822 -#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295 +#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823 +#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308 #, c-format msgid "memory exhausted" msgstr "pamięć wyczerpana" @@ -25,7 +25,7 @@ msgstr "pamięć wyczerpana" #: libasm/asm_error.c:62 libdw/dwarf_error.c:79 libdwfl/libdwflP.h:70 #: libelf/elf_error.c:81 msgid "no error" -msgstr "bez błędu" +msgstr "brak błędu" #: libasm/asm_error.c:63 libdw/dwarf_error.c:88 libdwfl/libdwflP.h:72 #: libelf/elf_error.c:112 @@ -39,11 +39,11 @@ msgstr "nie można utworzyć pliku wyjściowego" #: libasm/asm_error.c:65 msgid "invalid parameter" -msgstr "błędny parametr" +msgstr "nieprawidłowy parametr" #: libasm/asm_error.c:66 msgid "cannot change mode of output file" -msgstr "nie można zmienić uprawnień pliku wyjściowego" +msgstr "nie można zmienić trybu pliku wyjściowego" #: libasm/asm_error.c:67 src/ldgeneric.c:7001 #, c-format @@ -56,7 +56,7 @@ msgstr "powtórzony symbol" #: libasm/asm_error.c:69 msgid "invalid section type for operation" -msgstr "błędny rodzaj sekcji dla tej operacji" +msgstr "nieprawidłowy typ sekcji dla działania" #: libasm/asm_error.c:70 msgid "error during output of data" @@ -64,7 +64,7 @@ msgstr "błąd podczas wyprowadzania danych" #: libasm/asm_error.c:71 msgid "no backend support available" -msgstr "" +msgstr "brak dostępnej obsługi zaplecza" #: libasm/asm_error.c:81 libdw/dwarf_error.c:80 libdwfl/libdwflP.h:71 #: libelf/elf_error.c:84 @@ -73,19 +73,19 @@ msgstr "nieznany błąd" #: libdw/dwarf_error.c:81 msgid "invalid access" -msgstr "błędny dostęp" +msgstr "nieprawidłowy dostęp" #: libdw/dwarf_error.c:82 msgid "no regular file" -msgstr "to nie jest zwykły plik" +msgstr "nie jest zwykłym plikiem" #: libdw/dwarf_error.c:83 msgid "I/O error" -msgstr "błąd we/wy" +msgstr "błąd wejścia/wyjścia" #: libdw/dwarf_error.c:84 msgid "invalid ELF file" -msgstr "błędny plik ELF" +msgstr "nieprawidłowy plik ELF" #: libdw/dwarf_error.c:85 msgid "no DWARF information" @@ -97,35 +97,35 @@ msgstr "brak pliku ELF" #: libdw/dwarf_error.c:87 msgid "cannot get ELF header" -msgstr "nie można pobrać nagłówka ELF" +msgstr "nie można uzyskać nagłówka ELF" #: libdw/dwarf_error.c:89 msgid "not implemented" -msgstr "nie zaimplementowane" +msgstr "niezaimplementowane" #: libdw/dwarf_error.c:90 libelf/elf_error.c:128 libelf/elf_error.c:176 msgid "invalid command" -msgstr "błędne polecenie" +msgstr "nieprawidłowe polecenie" #: libdw/dwarf_error.c:91 msgid "invalid version" -msgstr "błędna wersja" +msgstr "nieprawidłowa wersja" #: libdw/dwarf_error.c:92 msgid "invalid file" -msgstr "błędny plik" +msgstr "nieprawidłowy plik" #: libdw/dwarf_error.c:93 msgid "no entries found" -msgstr "nie znaleziono wpisów" +msgstr "nie odnaleziono wpisów" #: libdw/dwarf_error.c:94 msgid "invalid DWARF" -msgstr "błędny DWARF" +msgstr "nieprawidłowy DWARF" #: libdw/dwarf_error.c:95 msgid "no string data" -msgstr "brak danych w postaci łańcucha" +msgstr "brak danych w postaci ciągu" #: libdw/dwarf_error.c:96 msgid "no address value" @@ -141,7 +141,7 @@ msgstr "brak wartości odwołania" #: libdw/dwarf_error.c:99 msgid "invalid reference value" -msgstr "błędna wartość odwołania" +msgstr "nieprawidłowa wartość odwołania" #: libdw/dwarf_error.c:100 msgid ".debug_line section missing" @@ -149,23 +149,23 @@ msgstr "brak sekcji .debug_line" #: libdw/dwarf_error.c:101 msgid "invalid .debug_line section" -msgstr "błędna sekcja .debug_line" +msgstr "nieprawidłowa sekcja .debug_line" #: libdw/dwarf_error.c:102 msgid "debug information too big" -msgstr "informacje debugowe zbyt duże" +msgstr "informacje debugowania są za duże" #: libdw/dwarf_error.c:103 msgid "invalid DWARF version" -msgstr "błędna wersja DWARF" +msgstr "nieprawidłowa wersja DWARF" #: libdw/dwarf_error.c:104 msgid "invalid directory index" -msgstr "błędny indeks katalogu" +msgstr "nieprawidłowy indeks katalogu" #: libdw/dwarf_error.c:105 libdwfl/libdwflP.h:91 msgid "address out of range" -msgstr "adres spoza zakresu" +msgstr "adres jest spoza zakresu" #: libdw/dwarf_error.c:106 msgid "no location list value" @@ -177,11 +177,11 @@ msgstr "brak danych blokowych" #: libdw/dwarf_error.c:108 msgid "invalid line index" -msgstr "błędny indeks linii" +msgstr "nieprawidłowy indeks wiersza" #: libdw/dwarf_error.c:109 msgid "invalid address range index" -msgstr "błędny indeks zakresu adresów" +msgstr "nieprawidłowy indeks zakresu adresów" #: libdw/dwarf_error.c:110 libdwfl/libdwflP.h:92 msgid "no matching address range" @@ -193,413 +193,377 @@ msgstr "brak wartości flagi" #: libdw/dwarf_error.c:112 libelf/elf_error.c:253 msgid "invalid offset" -msgstr "błędny offset" +msgstr "nieprawidłowy offset" #: libdw/dwarf_error.c:113 msgid ".debug_ranges section missing" msgstr "brak sekcji .debug_ranges" #: libdw/dwarf_error.c:114 -#, fuzzy msgid "invalid CFI section" -msgstr "błędna wersja" +msgstr "nieprawidłowa wersja CFI" -#: libdwfl/argp-std.c:67 src/unstrip.c:2237 -#, fuzzy +#: libdwfl/argp-std.c:67 src/unstrip.c:2250 msgid "Input selection options:" -msgstr "Wybór wejścia:" +msgstr "Opcje wyboru wejścia:" #: libdwfl/argp-std.c:68 -#, fuzzy msgid "Find addresses in FILE" -msgstr "błędny indeks zakresu adresów" +msgstr "Wyszukuje adresy w PLIKU" #: libdwfl/argp-std.c:70 msgid "Find addresses from signatures found in COREFILE" -msgstr "" +msgstr "Wyszukuje adresy z podpisów odnalezionych w PLIKU_CORE" #: libdwfl/argp-std.c:72 msgid "Find addresses in files mapped into process PID" -msgstr "" +msgstr "Wyszukuje adresy w plikach zmapowanych do PID procesów" #: libdwfl/argp-std.c:74 msgid "" "Find addresses in files mapped as read from FILE in Linux /proc/PID/maps " "format" msgstr "" +"Wyszukuje adresy w plikach zmapowanych jako odczyt z PLIKU w formacie /proc/" +"PID/maps systemu Linux" #: libdwfl/argp-std.c:76 msgid "Find addresses in the running kernel" -msgstr "" +msgstr "Wyszukuje adresy w uruchomionych jądrze" #: libdwfl/argp-std.c:78 msgid "Kernel with all modules" -msgstr "" +msgstr "Jądro ze wszystkimi modułami" #: libdwfl/argp-std.c:80 -#, fuzzy msgid "Search path for separate debuginfo files" -msgstr "Plik binarny jest oddzielnym plikiem debuginfo" +msgstr "Wyszukuje ścieżkę dla oddzielnych plików debuginfo" #: libdwfl/argp-std.c:163 -#, fuzzy msgid "only one of -e, -p, -k, -K, or --core allowed" -msgstr "dopuszczalna jest tylko jedna z opcji -G i -r" +msgstr "dopuszczalna jest tylko jedna z opcji -e, -p, -k, -K lub --core" #: libdwfl/argp-std.c:223 -#, fuzzy, c-format +#, c-format msgid "cannot read ELF core file: %s" -msgstr "nie można odczytać nagłówka ELF: %s" +msgstr "nie można odczytać pliku core ELF: %s" #: libdwfl/argp-std.c:241 msgid "No modules recognized in core file" -msgstr "" +msgstr "Nie rozpoznano żadnych modułów w pliku core" #: libdwfl/argp-std.c:253 -#, fuzzy msgid "cannot load kernel symbols" -msgstr "Nie sortowanie symboli" +msgstr "nie można wczytać symboli jądra" #: libdwfl/argp-std.c:257 msgid "cannot find kernel modules" -msgstr "" +msgstr "nie można odnaleźć modułów jądra" #: libdwfl/argp-std.c:271 msgid "cannot find kernel or modules" -msgstr "" +msgstr "nie można odnaleźć jądra lub modułów" #: libdwfl/libdwflP.h:73 msgid "See errno" -msgstr "" +msgstr "Proszę zobaczyć errno" #: libdwfl/libdwflP.h:74 msgid "See elf_errno" -msgstr "" +msgstr "Proszę zobaczyć elf_errno" #: libdwfl/libdwflP.h:75 msgid "See dwarf_errno" -msgstr "" +msgstr "Proszę zobaczyć dwarf_errno" #: libdwfl/libdwflP.h:76 msgid "See ebl_errno (XXX missing)" -msgstr "" +msgstr "Proszę zobaczyć ebl_errno (brak XXX)" #: libdwfl/libdwflP.h:77 msgid "gzip decompression failed" -msgstr "" +msgstr "dekompresja gzip nie powiodła się" #: libdwfl/libdwflP.h:78 msgid "bzip2 decompression failed" -msgstr "" +msgstr "dekompresja bzip2 nie powiodła się" #: libdwfl/libdwflP.h:79 msgid "LZMA decompression failed" -msgstr "" +msgstr "dekompresja LZMA nie powiodła się" #: libdwfl/libdwflP.h:80 msgid "no support library found for machine" -msgstr "" +msgstr "nie odnaleziono biblioteki obsługi dla komputera" #: libdwfl/libdwflP.h:81 msgid "Callbacks missing for ET_REL file" -msgstr "" +msgstr "Brak wywołań zwrotnych dla pliku ET_REL" #: libdwfl/libdwflP.h:82 -#, fuzzy msgid "Unsupported relocation type" -msgstr "nie można pobrać relokacji: %s" +msgstr "Nieobsługiwany typ relokacji" #: libdwfl/libdwflP.h:83 msgid "r_offset is bogus" -msgstr "" +msgstr "r_offset jest fałszywe" #: libdwfl/libdwflP.h:84 libelf/elf_error.c:132 libelf/elf_error.c:192 -#, fuzzy msgid "offset out of range" -msgstr "adres spoza zakresu" +msgstr "offset spoza zakresu" #: libdwfl/libdwflP.h:85 -#, fuzzy msgid "relocation refers to undefined symbol" -msgstr "Wypisywanie rozmiaru zdefiniowanych symboli" +msgstr "relokacja odnosi się do nieokreślonego symbolu" #: libdwfl/libdwflP.h:86 msgid "Callback returned failure" -msgstr "" +msgstr "Wywołanie zwrotne zwróciło niepowodzenie" #: libdwfl/libdwflP.h:87 -#, fuzzy msgid "No DWARF information found" -msgstr "brak informacji DWARF" +msgstr "Nie odnaleziono informacji DWARF" #: libdwfl/libdwflP.h:88 msgid "No symbol table found" -msgstr "" +msgstr "Nie odnaleziono tablicy symboli" #: libdwfl/libdwflP.h:89 -#, fuzzy msgid "No ELF program headers" -msgstr "nie można pobrać nagłówka programu: %s" +msgstr "Brak nagłówków programu ELF" #: libdwfl/libdwflP.h:90 msgid "address range overlaps an existing module" -msgstr "" +msgstr "zakres adresów pokrywa się z istniejącym modułem" #: libdwfl/libdwflP.h:93 msgid "image truncated" -msgstr "" +msgstr "skrócono obraz" #: libdwfl/libdwflP.h:94 -#, fuzzy msgid "ELF file opened" -msgstr "Śledzenie otwierania plików." +msgstr "otwarto plik ELF" #: libdwfl/libdwflP.h:95 -#, fuzzy msgid "not a valid ELF file" -msgstr "błędny plik ELF" +msgstr "nie jest prawidłowym plikiem ELF" #: libdwfl/libdwflP.h:96 -#, fuzzy msgid "cannot handle DWARF type description" -msgstr "nie można utworzyć deskryptora ELF dla '%s': %s" +msgstr "nie można obsłużyć opisu typu DWARF" + +#: libdwfl/libdwflP.h:97 +msgid "ELF file does not match build ID" +msgstr "plik ELF nie posiada pasującego identyfikatora kopii" #: libebl/eblbackendname.c:63 msgid "No backend" -msgstr "" +msgstr "Brak zaplecza" #: libebl/eblcorenotetypename.c:107 libebl/eblobjecttypename.c:78 #: libebl/eblobjnotetypename.c:86 libebl/eblosabiname.c:98 #: libebl/eblsectionname.c:110 libebl/eblsectiontypename.c:140 #: libebl/eblsegmenttypename.c:104 -#, fuzzy msgid "<unknown>" -msgstr "| <nieznany>" +msgstr "<nieznany>" #: libebl/ebldynamictagname.c:126 -#, fuzzy, c-format +#, c-format msgid "<unknown>: %#<PRIx64>" -msgstr "nieznana forma %<PRIx64>" +msgstr "<nieznany>: %#<PRIx64>" #: libebl/eblobjnote.c:76 #, c-format msgid " Build ID: " -msgstr "" +msgstr " Identyfikator kopii: " #: libebl/eblobjnote.c:87 #, c-format msgid " Linker version: %.*s\n" -msgstr "" +msgstr " Wersja konsolidatora: %.*s\n" #: libebl/eblobjnote.c:136 #, c-format msgid " OS: %s, ABI: " -msgstr "" +msgstr " System operacyjny: %s, ABI: " #: libebl/eblosabiname.c:95 msgid "Stand alone" -msgstr "" +msgstr "Samodzielny" #: libebl/eblsymbolbindingname.c:92 libebl/eblsymboltypename.c:98 -#, fuzzy, c-format +#, c-format msgid "<unknown>: %d" -msgstr "| <nieznany>" +msgstr "<nieznany>: %d" #: libelf/elf_error.c:88 -#, fuzzy msgid "unknown version" -msgstr "nieznany błąd" +msgstr "nieznana wersja" #: libelf/elf_error.c:92 -#, fuzzy msgid "unknown type" -msgstr "nieznany kod instrukcji" +msgstr "nieznany typ" #: libelf/elf_error.c:96 -#, fuzzy msgid "invalid `Elf' handle" -msgstr "błędny plik" +msgstr "nieprawidłowa obsługa \"Elf\"" #: libelf/elf_error.c:100 -#, fuzzy msgid "invalid size of source operand" -msgstr "błędny rodzaj sekcji dla tej operacji" +msgstr "nieprawidłowy rozmiar operanda źródłowego" #: libelf/elf_error.c:104 -#, fuzzy msgid "invalid size of destination operand" -msgstr "błędny rodzaj sekcji dla tej operacji" +msgstr "nieprawidłowy rozmiar operanda docelowego" -#: libelf/elf_error.c:108 src/readelf.c:4779 -#, fuzzy, c-format +#: libelf/elf_error.c:108 src/readelf.c:4826 +#, c-format msgid "invalid encoding" -msgstr "błędne polecenie" +msgstr "nieprawidłowe kodowanie" #: libelf/elf_error.c:116 -#, fuzzy msgid "invalid file descriptor" -msgstr "błędny plik" +msgstr "nieprawidłowy deskryptor pliku" #: libelf/elf_error.c:120 -#, fuzzy msgid "invalid operation" -msgstr "błędna wersja" +msgstr "nieprawidłowe działanie" #: libelf/elf_error.c:124 msgid "ELF version not set" -msgstr "" +msgstr "wersja ELF nie została ustawiona" #: libelf/elf_error.c:136 msgid "invalid fmag field in archive header" -msgstr "" +msgstr "nieprawidłowe pole fmag w nagłówku archiwum" #: libelf/elf_error.c:140 -#, fuzzy msgid "invalid archive file" -msgstr "błędny plik" +msgstr "nieprawidłowy plik archiwum" #: libelf/elf_error.c:144 -#, fuzzy msgid "descriptor is not for an archive" -msgstr "'%s' nie jest archiwum" +msgstr "deskryptor nie jest dla archiwum" #: libelf/elf_error.c:148 -#, fuzzy msgid "no index available" -msgstr " ([0] niedostępny)" +msgstr "brak dostępnego indeksu" #: libelf/elf_error.c:152 -#, fuzzy msgid "cannot read data from file" -msgstr "nie można utworzyć nowego pliku" +msgstr "nie można odczytać danych z pliku" #: libelf/elf_error.c:156 -#, fuzzy msgid "cannot write data to file" -msgstr "nie można wykonać stat na pliku wejściowym" +msgstr "nie można zapisać danych do pliku" #: libelf/elf_error.c:160 -#, fuzzy msgid "invalid binary class" -msgstr "błędny dostęp" +msgstr "nieprawidłowa klasa pliku binarnego" #: libelf/elf_error.c:164 -#, fuzzy msgid "invalid section index" -msgstr "błędny indeks nagłówka sekcji\n" +msgstr "nieprawidłowy indeks sekcji" #: libelf/elf_error.c:168 -#, fuzzy msgid "invalid operand" -msgstr "błędne polecenie" +msgstr "nieprawidłowy operand" #: libelf/elf_error.c:172 -#, fuzzy msgid "invalid section" -msgstr "błędna wersja" +msgstr "nieprawidłowa sekcja" #: libelf/elf_error.c:180 msgid "executable header not created first" -msgstr "" +msgstr "nie utworzono najpierw nagłówka pliku wykonywalnego" #: libelf/elf_error.c:184 msgid "file descriptor disabled" -msgstr "" +msgstr "deskryptor pliku jest wyłączony" #: libelf/elf_error.c:188 msgid "archive/member file descriptor mismatch" -msgstr "" +msgstr "deskryptory archiwum/elementu nie zgadzają się" #: libelf/elf_error.c:196 -#, fuzzy msgid "cannot manipulate null section" -msgstr "nie można przydzielić danych sekcji: %s" +msgstr "nie można zmieniać pustej sekcji" #: libelf/elf_error.c:200 msgid "data/scn mismatch" -msgstr "" +msgstr "dane/scn nie zgadzają się" #: libelf/elf_error.c:204 -#, fuzzy msgid "invalid section header" -msgstr "błędny indeks nagłówka sekcji\n" +msgstr "nieprawidłowy nagłówek sekcji" -#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343 -#, fuzzy, c-format +#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529 +#, c-format msgid "invalid data" -msgstr "błędny dostęp" +msgstr "nieprawidłowe dane" #: libelf/elf_error.c:212 -#, fuzzy msgid "unknown data encoding" -msgstr "nieznany kod instrukcji" +msgstr "nieznane kodowanie danych" #: libelf/elf_error.c:216 msgid "section `sh_size' too small for data" -msgstr "" +msgstr "sekcja \"sh_size\" jest za mała dla danych" #: libelf/elf_error.c:220 -#, fuzzy msgid "invalid section alignment" -msgstr "błędny indeks nagłówka sekcji\n" +msgstr "nieprawidłowe wyrównanie sekcji" #: libelf/elf_error.c:224 -#, fuzzy msgid "invalid section entry size" -msgstr "błędny rozmiar nagłówka sekcji: %hd\n" +msgstr "nieprawidłowy rozmiar wpisu sekcji" #: libelf/elf_error.c:228 msgid "update() for write on read-only file" -msgstr "" +msgstr "update() dla zapisu pliku tylko do odczytu" #: libelf/elf_error.c:232 -#, fuzzy msgid "no such file" -msgstr "brak pliku ELF" +msgstr "nie ma takiego pliku" #: libelf/elf_error.c:236 -#, fuzzy msgid "only relocatable files can contain section groups" -msgstr "%s: tylko pliki typu ET_REL mogą zawierać grupy sekcji" +msgstr "tylko relokowalne pliki mogą zawierać grupy sekcji" #: libelf/elf_error.c:241 -#, fuzzy msgid "" "program header only allowed in executables, shared objects, and core files" msgstr "" -"tylko pliki wykonywalne, obiektów dzielonych i core mogą mieć nagłówki " -"programu\n" +"tylko pliki wykonywalne, obiektów współdzielone i pliki core mogą mieć " +"nagłówki programu" #: libelf/elf_error.c:248 -#, fuzzy msgid "file has no program header" -msgstr "Wyświetlenie nagłówków programu" +msgstr "plik nie posiada nagłówków programu" #: src/addr2line.c:66 -#, fuzzy msgid "Output selection options:" -msgstr "Wybór wyjścia:" +msgstr "Opcje wyboru wyjścia:" #: src/addr2line.c:67 msgid "Show only base names of source files" -msgstr "Pokazywanie tylko podstawowych nazw plików źródłowych" +msgstr "Wyświetla tylko podstawowe nazwy plików źródłowych" #: src/addr2line.c:69 msgid "Show absolute file names using compilation directory" -msgstr "Pokazywanie bezwzględnych nazw plików z użyciem katalogu kompilacji" +msgstr "Wyświetla bezwzględne nazwy plików używając katalogu kompilacji" #: src/addr2line.c:70 msgid "Also show function names" -msgstr "Pokazywanie dodatkowo nazw funkcji" +msgstr "Wyświetla także nazwy funkcji" #: src/addr2line.c:71 -#, fuzzy msgid "Also show symbol or section names" -msgstr "Pokazywanie dodatkowo nazw funkcji" +msgstr "Wyświetla także nazwy symboli ub sekcji" #: src/addr2line.c:73 msgid "Treat addresses as offsets relative to NAME section." -msgstr "" +msgstr "Traktuje adresy jako offsety względne do sekcji NAZWA." #: src/addr2line.c:75 src/elfcmp.c:75 src/findtextrel.c:75 src/nm.c:103 #: src/strings.c:83 @@ -610,7 +574,7 @@ msgstr "Różne:" msgid "" "Locate source files and line information for ADDRs (in a.out by default)." msgstr "" -"Odnajdywanie plików źródłowych i informacji o linii dla ADRESU (domyślnie w " +"Odnajdywanie plików źródłowych i informacji o wierszu dla ADRESU (domyślne w " "a.out)." #: src/addr2line.c:88 @@ -619,7 +583,7 @@ msgstr "[ADRES...]" #: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239 #: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181 -#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227 +#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227 #: src/strip.c:204 src/unstrip.c:234 #, c-format msgid "" @@ -628,133 +592,130 @@ msgid "" "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" msgstr "" "Copyright (C) %s Red Hat, Inc.\n" -"To oprogramowanie jest darmowe; warunki kopiowania są opisane w źródłach.\n" -"Autorzy nie dają ŻADNYCH gwarancji, w tym również gwarancji PRZYDATNOŚCI\n" -"DO SPRZEDAŻY LUB DO KONKRETNYCH CELÓW.\n" +"Niniejszy program jest wolnym oprogramowaniem; proszę zobaczyć kod źródłowy\n" +"w celu poznania warunków kopiowania. Niniejszy program rozprowadzany jest\n" +"BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI\n" +"HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ.\n" #: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244 #: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186 -#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232 +#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232 #: src/strip.c:209 src/unstrip.c:239 #, c-format msgid "Written by %s.\n" -msgstr "Autorem jest %s.\n" +msgstr "Napisane przez %s.\n" #: src/addr2line.c:405 #, c-format msgid "Section syntax requires exactly one module" -msgstr "" +msgstr "Składnia sekcji wymaga dokładnie jednego modułu" #: src/addr2line.c:428 #, c-format msgid "offset %#<PRIxMAX> lies outside section '%s'" -msgstr "" +msgstr "offset %#<PRIxMAX> leży poza sekcją \"%s\"" -#: src/addr2line.c:461 -#, fuzzy, c-format +#: src/addr2line.c:469 +#, c-format msgid "cannot find symbol '%s'" -msgstr "nie można pobrać symbolu w '%s': %s" +msgstr "nie można odnaleźć symbolu \"%s\"" -#: src/addr2line.c:466 +#: src/addr2line.c:474 #, c-format msgid "offset %#<PRIxMAX> lies outside contents of '%s'" -msgstr "" +msgstr "offset %#<PRIxMAX> leży poza zawartością \"%s\"" #: src/ar.c:76 msgid "Commands:" -msgstr "" +msgstr "Polecenia:" #: src/ar.c:77 msgid "Delete files from archive." -msgstr "" +msgstr "Usuwa pliki z archiwum." #: src/ar.c:78 -#, fuzzy msgid "Move files in archive." -msgstr "'%s' nie jest archiwum" +msgstr "Przenosi pliki w archiwum." #: src/ar.c:79 -#, fuzzy msgid "Print files in archive." -msgstr "'%s' nie jest archiwum" +msgstr "Wyświetla pliki w archiwum." #: src/ar.c:80 msgid "Quick append files to archive." -msgstr "" +msgstr "Szybko dodaje pliki do archiwum." #: src/ar.c:82 msgid "Replace existing or insert new file into archive." -msgstr "" +msgstr "Zastępuje istniejący lub umieszcza nowy plik w archiwum." #: src/ar.c:83 msgid "Display content of archive." -msgstr "" +msgstr "Wyświetla zawartość archiwum." #: src/ar.c:84 msgid "Extract files from archive." -msgstr "" +msgstr "Wypakowuje pliki z archiwum." #: src/ar.c:86 msgid "Command Modifiers:" -msgstr "" +msgstr "Modyfikatory poleceń:" #: src/ar.c:87 msgid "Preserve original dates." -msgstr "" +msgstr "Zachowuje pierwotne daty." #: src/ar.c:88 msgid "Use instance [COUNT] of name." -msgstr "" +msgstr "Używa wystąpienia [LICZNIK] nazwy." #: src/ar.c:90 msgid "Do not replace existing files with extracted files." -msgstr "" +msgstr "Nie zastępuje istniejących plików wypakowanymi plikami." #: src/ar.c:91 msgid "Allow filename to be truncated if necessary." -msgstr "" +msgstr "Zezwala na skrócenie nazwy pliku, jeśli jest to wymagane." #: src/ar.c:93 msgid "Provide verbose output." -msgstr "" +msgstr "Wyświetla więcej informacji." #: src/ar.c:94 msgid "Force regeneration of symbol table." -msgstr "" +msgstr "Wymusza ponowne utworzenie tablicy symboli." #: src/ar.c:95 msgid "Insert file after [MEMBER]." -msgstr "" +msgstr "Umieszcza plik po [ELEMENCIE]." #: src/ar.c:96 msgid "Insert file before [MEMBER]." -msgstr "" +msgstr "Umieszcza plik przed [ELEMENTEM]." #: src/ar.c:97 -#, fuzzy msgid "Same as -b." -msgstr "To samo co --format=bsd" +msgstr "To samo, co -b." #: src/ar.c:98 msgid "Suppress message when library has to be created." -msgstr "" +msgstr "Zmniejsza komunikat, jeśli biblioteka musi zostać utworzona." #: src/ar.c:100 msgid "Use full path for file matching." -msgstr "" +msgstr "Używa pełnej ścieżki do dopasowywania plików." #: src/ar.c:101 msgid "Update only older files in archive." -msgstr "" +msgstr "Aktualizuje tylko starsze pliki w archiwum." #: src/ar.c:107 -#, fuzzy msgid "Create, modify, and extract from archives." -msgstr "Słabe odwołania powodują wyciągnięcie z archiwum." +msgstr "Tworzenie, modyfikowanie i wypakowywanie archiwów." #: src/ar.c:110 msgid "[MEMBER] [COUNT] ARCHIVE [FILE...]" -msgstr "" +msgstr "[ELEMENT] [LICZNIK] ARCHIWUM [PLIK...]" #: src/ar.c:192 #, c-format @@ -797,14 +758,14 @@ msgid "More than one operation specified" msgstr "Nie podano operacji.\n" #: src/ar.c:404 -#, fuzzy, c-format +#, c-format msgid "cannot open archive '%s'" -msgstr "nie można otworzyć '%s'" +msgstr "nie można otworzyć archiwum \"%s\"" #: src/ar.c:414 -#, fuzzy, c-format +#, c-format msgid "cannot open archive '%s': %s" -msgstr "nie można odczytać archiwum `%s': %s" +msgstr "nie można otworzyć archiwum \"%s\": %s" #: src/ar.c:418 #, fuzzy, c-format @@ -812,14 +773,14 @@ msgid "%s: not an archive file" msgstr "Łączenie plików obiektów i archiwów." #: src/ar.c:422 -#, fuzzy, c-format +#, c-format msgid "cannot stat archive '%s'" -msgstr "nie można wykonać stat na '%s'" +msgstr "nie można wykonać stat na archiwum \"%s\"" #: src/ar.c:434 -#, fuzzy, c-format +#, c-format msgid "no entry %s in archive\n" -msgstr "'%s' nie jest archiwum" +msgstr "brak wpisu %s w archiwum\n" #: src/ar.c:487 src/ar.c:929 src/ar.c:1129 #, fuzzy, c-format @@ -834,7 +795,7 @@ msgstr "nie można utworzyć tabeli łańcuchów" #: src/ar.c:502 src/ranlib.c:176 #, c-format msgid "cannot stat '%s'" -msgstr "nie można wykonać stat na '%s'" +msgstr "nie można wykonać stat na \"%s\"" #: src/ar.c:598 #, fuzzy, c-format @@ -842,14 +803,14 @@ msgid "cannot read content of %s: %s" msgstr "nie można pobrać zawartości sekcji %zu: %s" #: src/ar.c:641 -#, fuzzy, c-format +#, c-format msgid "cannot open %.*s" -msgstr "nie można otworzyć %s" +msgstr "nie można otworzyć %.*s" #: src/ar.c:663 #, c-format msgid "failed to write %s" -msgstr "" +msgstr "zapisanie %s nie powiodło się" #: src/ar.c:675 #, fuzzy, c-format @@ -859,7 +820,7 @@ msgstr "nie można zmienić uprawnień pliku wyjściowego" #: src/ar.c:691 #, fuzzy, c-format msgid "cannot change modification time of %s" -msgstr "nie można ustawić czasu dostępu i modyfikacji '%s'" +msgstr "nie można ustawić czasu dostępu i modyfikacji %s" #: src/ar.c:737 #, fuzzy, c-format @@ -879,7 +840,7 @@ msgstr "" #: src/ar.c:1230 #, fuzzy, c-format msgid "%s: no entry %s in archive!\n" -msgstr "'%s' nie jest archiwum" +msgstr "%s nie jest archiwum" #: src/ar.c:1259 src/ldgeneric.c:519 src/objdump.c:257 #, c-format @@ -889,7 +850,7 @@ msgstr "nie można otworzyć %s" #: src/ar.c:1264 #, fuzzy, c-format msgid "cannot stat %s" -msgstr "nie można wykonać stat na '%s'" +msgstr "nie można wykonać stat na %s" #: src/ar.c:1270 #, fuzzy, c-format @@ -899,7 +860,7 @@ msgstr "to nie jest zwykły plik" #: src/ar.c:1283 #, fuzzy, c-format msgid "cannot get ELF descriptor for %s: %s\n" -msgstr "nie można utworzyć deskryptora ELF dla '%s': %s" +msgstr "nie można utworzyć deskryptora ELF dla %s: %s" #: src/ar.c:1302 #, fuzzy, c-format @@ -914,7 +875,7 @@ msgstr "" #: src/arlib.c:228 #, fuzzy, c-format msgid "cannot read ELF header of %s(%s): %s" -msgstr "nie można pobrać nagłówka ELF '%s': %s" +msgstr "nie można pobrać nagłówka ELF %s: %s" #: src/elfcmp.c:69 msgid "Control options:" @@ -951,7 +912,7 @@ msgstr "Błędna liczba parametrów.\n" #: src/elfcmp.c:168 src/elfcmp.c:173 #, c-format msgid "cannot get ELF header of '%s': %s" -msgstr "nie można pobrać nagłówka ELF '%s': %s" +msgstr "nie można pobrać nagłówka ELF \"%s\": %s" #: src/elfcmp.c:190 #, c-format @@ -971,7 +932,7 @@ msgstr "%s %s różnią się: nagłówek sekcji" #: src/elfcmp.c:214 src/elfcmp.c:217 #, fuzzy, c-format msgid "cannot get program header count of '%s': %s" -msgstr "nie można pobrać wpisu nagłówka programu %d z '%s': %s" +msgstr "nie można pobrać wpisu nagłówka programu %d z \"%s\": %s" #: src/elfcmp.c:222 #, fuzzy, c-format @@ -986,12 +947,12 @@ msgstr "%s %s różnią się: nagłówek sekcji" #: src/elfcmp.c:309 src/elfcmp.c:315 #, c-format msgid "cannot get content of section %zu in '%s': %s" -msgstr "nie można pobrać zawartości sekcji %zu w '%s': %s" +msgstr "nie można pobrać zawartości sekcji %zu w \"%s\": %s" #: src/elfcmp.c:331 src/elfcmp.c:337 #, c-format msgid "cannot get symbol in '%s': %s" -msgstr "nie można pobrać symbolu w '%s': %s" +msgstr "nie można pobrać symbolu w \"%s\": %s" #: src/elfcmp.c:358 #, c-format @@ -1006,12 +967,12 @@ msgstr "%s %s różnią się: tabela symboli [%zu,%zu]" #: src/elfcmp.c:409 #, c-format msgid "%s %s differ: section [%zu] '%s' content" -msgstr "%s %s różnią się: zawartość sekcji [%zu] '%s'" +msgstr "%s %s różnią się: zawartość sekcji [%zu] \"%s\"" #: src/elfcmp.c:413 #, c-format msgid "%s %s differ: section [%zu,%zu] '%s' content" -msgstr "%s %s różnią się: zawartość sekcji [%zu,%zu] '%s'" +msgstr "%s %s różnią się: zawartość sekcji [%zu,%zu] \"%s\"" #: src/elfcmp.c:429 #, c-format @@ -1021,12 +982,12 @@ msgstr "%s %s różnią się: różna liczba ważnych sekcji" #: src/elfcmp.c:463 src/elfcmp.c:468 #, c-format msgid "cannot load data of '%s': %s" -msgstr "nie można odczytać danych z '%s': %s" +msgstr "nie można odczytać danych z \"%s\": %s" #: src/elfcmp.c:487 src/elfcmp.c:493 #, c-format msgid "cannot get program header entry %d of '%s': %s" -msgstr "nie można pobrać wpisu nagłówka programu %d z '%s': %s" +msgstr "nie można pobrać wpisu nagłówka programu %d z \"%s\": %s" #: src/elfcmp.c:499 #, c-format @@ -1041,25 +1002,25 @@ msgstr "%s %s różnią się: luka" #: src/elfcmp.c:583 #, c-format msgid "Invalid value '%s' for --gaps parameter." -msgstr "Błędna wartość '%s' dla parametru --gaps." +msgstr "Błędna wartość \"%s\" dla parametru --gaps." #: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767 #: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301 -#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900 -#: src/unstrip.c:1929 +#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913 +#: src/unstrip.c:1942 #, c-format msgid "cannot open '%s'" -msgstr "nie można otworzyć '%s'" +msgstr "nie można otworzyć \"%s\"" #: src/elfcmp.c:611 src/findtextrel.c:236 src/ranlib.c:186 #, c-format msgid "cannot create ELF descriptor for '%s': %s" -msgstr "nie można utworzyć deskryptora ELF dla '%s': %s" +msgstr "nie można utworzyć deskryptora ELF dla \"%s\": %s" #: src/elfcmp.c:616 #, c-format msgid "cannot create EBL descriptor for '%s'" -msgstr "nie można utworzyć deskryptora EBL dla '%s'" +msgstr "nie można utworzyć deskryptora EBL dla \"%s\"" #: src/elfcmp.c:634 #, c-format @@ -1105,7 +1066,7 @@ msgstr "" msgid "FILE..." msgstr "PLIK..." -#: src/elflint.c:159 src/readelf.c:272 +#: src/elflint.c:159 src/readelf.c:273 #, c-format msgid "cannot open input file" msgstr "nie można otworzyć pliku wejściowego" @@ -1124,7 +1085,7 @@ msgstr "błąd podczas zamykania deskryptora Elf: %s\n" msgid "No errors" msgstr "Bez błędów" -#: src/elflint.c:223 src/readelf.c:425 +#: src/elflint.c:223 src/readelf.c:426 msgid "Missing file name.\n" msgstr "Brak nazwy pliku.\n" @@ -1156,7 +1117,7 @@ msgstr "nieznany numer wersji nagłówka ELF e_ident[%d] == %d\n" #: src/elflint.c:385 #, c-format msgid "unsupported OS ABI e_ident[%d] == '%s'\n" -msgstr "nieobsługiwane OS ABI e_ident[%d] == '%s'\n" +msgstr "nieobsługiwane OS ABI e_ident[%d] == \"%s\"\n" #: src/elflint.c:391 #, c-format @@ -1260,21 +1221,22 @@ msgid "" "section [%2d] '%s': section with SHF_GROUP flag set not part of a section " "group\n" msgstr "" -"sekcja [%2d] '%s': sekcja z flagą SHF_GROUP nie jest częścią grupy sekcji\n" +"sekcja [%2d] \"%s\": sekcja z flagą SHF_GROUP nie jest częścią grupy sekcji\n" #: src/elflint.c:573 #, fuzzy, c-format msgid "" "section [%2d] '%s': section group [%2zu] '%s' does not precede group member\n" msgstr "" -"sekcja [%2d] '%s': grupa sekcji [%2zu] '%s' nie poprzedza elementu grupy\n" +"sekcja [%2d] \"%s\": grupa sekcji [%2zu] \"%s\" nie poprzedza elementu " +"grupy\n" #: src/elflint.c:589 src/elflint.c:1432 src/elflint.c:1482 src/elflint.c:1591 #: src/elflint.c:2185 src/elflint.c:2699 src/elflint.c:2860 src/elflint.c:2990 #: src/elflint.c:3162 src/elflint.c:4062 #, c-format msgid "section [%2d] '%s': cannot get section data\n" -msgstr "sekcja [%2d] '%s': nie można pobrać danych sekcji\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać danych sekcji\n" #: src/elflint.c:602 src/elflint.c:1598 #, c-format @@ -1282,8 +1244,8 @@ msgid "" "section [%2d] '%s': referenced as string table for section [%2d] '%s' but " "type is not SHT_STRTAB\n" msgstr "" -"sekcja [%2d] '%s': użyta jako tabela łańcuchów dla sekcji [%2d] '%s', ale " -"nie jest typu SHT_STRTAB\n" +"sekcja [%2d] \"%s\": użyta jako tabela łańcuchów dla sekcji [%2d] \"%s\", " +"ale nie jest typu SHT_STRTAB\n" #: src/elflint.c:625 #, c-format @@ -1291,39 +1253,39 @@ msgid "" "section [%2d] '%s': symbol table cannot have more than one extended index " "section\n" msgstr "" -"sekcja [%2d] '%s': tabela symboli nie może mieć więcej niż jednej " +"sekcja [%2d] \"%s\": tabela symboli nie może mieć więcej niż jednej " "rozszerzonej sekcji indeksów\n" #: src/elflint.c:636 #, fuzzy, c-format msgid "section [%2u] '%s': entry size is does not match ElfXX_Sym\n" -msgstr "sekcja [%2zu] '%s': rozmiar wpisu nie zgadza się z ElfXX_Sym\n" +msgstr "sekcja [%2zu] \"%s\": rozmiar wpisu nie zgadza się z ElfXX_Sym\n" #: src/elflint.c:645 #, c-format msgid "section [%2d] '%s': cannot get symbol %d: %s\n" -msgstr "sekcja [%2d] '%s': nie można pobrać symbolu %d: %s\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać symbolu %d: %s\n" #: src/elflint.c:650 src/elflint.c:653 src/elflint.c:656 src/elflint.c:659 #: src/elflint.c:662 src/elflint.c:665 #, c-format msgid "section [%2d] '%s': '%s' in zeroth entry not zero\n" -msgstr "sekcja [%2d] '%s': '%s' w zerowym wpisie nie jest zerem\n" +msgstr "sekcja [%2d] \"%s\": \"%s\" w zerowym wpisie nie jest zerem\n" #: src/elflint.c:668 #, c-format msgid "section [%2d] '%s': XINDEX for zeroth entry not zero\n" -msgstr "sekcja [%2d] '%s': XINDEX dla zerowego wpisu nie jest zerem\n" +msgstr "sekcja [%2d] \"%s\": XINDEX dla zerowego wpisu nie jest zerem\n" #: src/elflint.c:678 #, c-format msgid "section [%2d] '%s': cannot get symbol %zu: %s\n" -msgstr "sekcja [%2d] '%s': nie można pobrać symbolu %zu: %s\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać symbolu %zu: %s\n" #: src/elflint.c:687 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid name value\n" -msgstr "sekcja [%2d] '%s': symbol %zu: błędna wartość nazwy\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: błędna wartość nazwy\n" #: src/elflint.c:700 #, c-format @@ -1331,7 +1293,7 @@ msgid "" "section [%2d] '%s': symbol %zu: too large section index but no extended " "section index section\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: zbyt duży indeks sekcji, ale nie ma sekcji " +"sekcja [%2d] \"%s\": symbol %zu: zbyt duży indeks sekcji, ale nie ma sekcji " "rozszerzonych indeksów sekcji\n" #: src/elflint.c:706 @@ -1340,52 +1302,52 @@ msgid "" "section [%2d] '%s': symbol %zu: XINDEX used for index which would fit in " "st_shndx (%<PRIu32>)\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: XINDEX użyty dla indeksu, który zmieściłby " +"sekcja [%2d] \"%s\": symbol %zu: XINDEX użyty dla indeksu, który zmieściłby " "się w st_shndx (%<PRIu32>)\n" #: src/elflint.c:718 #, c-format msgid "section [%2d] '%s': symbol %zu: invalid section index\n" -msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n" #: src/elflint.c:726 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown type\n" -msgstr "sekcja [%2d] '%s': symbol %zu: nieznany typ\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznany typ\n" #: src/elflint.c:732 #, c-format msgid "section [%2d] '%s': symbol %zu: unknown symbol binding\n" -msgstr "sekcja [%2d] '%s': symbol %zu: nieznane dowiązanie symbolu\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznane dowiązanie symbolu\n" #: src/elflint.c:737 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu: unique symbol not of object type\n" -msgstr "sekcja [%2d] '%s': symbol %zu: nieznany typ\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznany typ\n" #: src/elflint.c:745 #, c-format msgid "" "section [%2d] '%s': symbol %zu: COMMON only allowed in relocatable files\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: COMMON dopuszczalne tylko w plikach " +"sekcja [%2d] \"%s\": symbol %zu: COMMON dopuszczalne tylko w plikach " "relokowalnych\n" #: src/elflint.c:749 #, c-format msgid "section [%2d] '%s': symbol %zu: local COMMON symbols are nonsense\n" -msgstr "sekcja [%2d] '%s': symbol %zu: lokalne symbole COMMON to nonsens\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: lokalne symbole COMMON to nonsens\n" #: src/elflint.c:753 #, c-format msgid "" "section [%2d] '%s': symbol %zu: function in COMMON section is nonsense\n" -msgstr "sekcja [%2d] '%s': symbol %zu: funkcja w sekcji COMMON to nonsens\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: funkcja w sekcji COMMON to nonsens\n" #: src/elflint.c:785 #, c-format msgid "section [%2d] '%s': symbol %zu: st_value out of bounds\n" -msgstr "sekcja [%2d] '%s': symbol %zu: st_value spoza zakresu\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: st_value spoza zakresu\n" #: src/elflint.c:791 src/elflint.c:816 src/elflint.c:859 #, c-format @@ -1393,8 +1355,8 @@ msgid "" "section [%2d] '%s': symbol %zu does not fit completely in referenced section " "[%2d] '%s'\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu nie mieści się w całości we wskazywanej sekcji " -"[%2d] '%s'\n" +"sekcja [%2d] \"%s\": symbol %zu nie mieści się w całości we wskazywanej " +"sekcji [%2d] \"%s\"\n" #: src/elflint.c:800 #, c-format @@ -1402,7 +1364,7 @@ msgid "" "section [%2d] '%s': symbol %zu: referenced section [%2d] '%s' does not have " "SHF_TLS flag set\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: wskazywana sekcja [%2d] '%s' nie ma " +"sekcja [%2d] \"%s\": symbol %zu: wskazywana sekcja [%2d] \"%s\" nie ma " "ustawionej flagi SHF_TLS\n" #: src/elflint.c:810 src/elflint.c:852 @@ -1411,15 +1373,15 @@ msgid "" "section [%2d] '%s': symbol %zu: st_value out of bounds of referenced section " "[%2d] '%s'\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: st_value spoza zakresu wskazywanej sekcji [%" -"2d] '%s'\n" +"sekcja [%2d] \"%s\": symbol %zu: st_value spoza zakresu wskazywanej sekcji [%" +"2d] \"%s\"\n" #: src/elflint.c:837 #, c-format msgid "" "section [%2d] '%s': symbol %zu: TLS symbol but no TLS program header entry\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: symbol TLS ale brak wpisu TLS nagłówka " +"sekcja [%2d] \"%s\": symbol %zu: symbol TLS ale brak wpisu TLS nagłówka " "programu\n" #: src/elflint.c:845 @@ -1428,7 +1390,8 @@ msgid "" "section [%2d] '%s': symbol %zu: st_value short of referenced section [%2d] '%" "s'\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: st_value pomija wskazywaną sekcję [%2d] '%s'\n" +"sekcja [%2d] \"%s\": symbol %zu: st_value pomija wskazywaną sekcję [%2d] \"%s" +"\"\n" #: src/elflint.c:872 #, c-format @@ -1436,7 +1399,7 @@ msgid "" "section [%2d] '%s': symbol %zu: local symbol outside range described in " "sh_info\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: symbol lokalny spoza zakresu określonego w " +"sekcja [%2d] \"%s\": symbol %zu: symbol lokalny spoza zakresu określonego w " "sh_info\n" #: src/elflint.c:879 @@ -1445,13 +1408,13 @@ msgid "" "section [%2d] '%s': symbol %zu: non-local symbol outside range described in " "sh_info\n" msgstr "" -"sekcja [%2d] '%s': symbol %zu: symbol nie-lokalny spoza zakresu określonego " -"w sh_info\n" +"sekcja [%2d] \"%s\": symbol %zu: symbol nie-lokalny spoza zakresu " +"określonego w sh_info\n" #: src/elflint.c:886 #, c-format msgid "section [%2d] '%s': symbol %zu: non-local section symbol\n" -msgstr "sekcja [%2d] '%s': symbol %zu: nie-lokalny symbol sekcji\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: nie-lokalny symbol sekcji\n" #: src/elflint.c:936 #, fuzzy, c-format @@ -1459,7 +1422,7 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to bad section [%" "2d]\n" msgstr "" -"sekcja [%2d] '%s': symbol _GLOBAL_OFFSET_TABLE_ odnosi się do złej sekcji\n" +"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ odnosi się do złej sekcji\n" #: src/elflint.c:943 #, fuzzy, c-format @@ -1467,7 +1430,7 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol refers to section [%2d] '%" "s'\n" msgstr "" -"sekcja [%2d] '%s': symbol _GLOBAL_OFFSET_TABLE_ odnosi się do złej sekcji\n" +"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ odnosi się do złej sekcji\n" #: src/elflint.c:959 #, c-format @@ -1475,7 +1438,7 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol value %#<PRIx64> does not " "match %s section address %#<PRIx64>\n" msgstr "" -"sekcja [%2d] '%s': wartość symbolu _GLOBAL_OFFSET_TABLE_ %#<PRIx64> nie " +"sekcja [%2d] \"%s\": wartość symbolu _GLOBAL_OFFSET_TABLE_ %#<PRIx64> nie " "pasuje do adresu sekcji %s %#<PRIx64>\n" #: src/elflint.c:966 @@ -1484,7 +1447,7 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol size %<PRIu64> does not " "match %s section size %<PRIu64>\n" msgstr "" -"sekcja [%2d] '%s': rozmiar symbolu _GLOBAL_OFFSET_TABLE_ %<PRIu64> nie " +"sekcja [%2d] \"%s\": rozmiar symbolu _GLOBAL_OFFSET_TABLE_ %<PRIu64> nie " "pasuje do rozmiaru sekcji %s %<PRIu64>\n" #: src/elflint.c:974 @@ -1493,7 +1456,7 @@ msgid "" "section [%2d] '%s': _GLOBAL_OFFSET_TABLE_ symbol present, but no .got " "section\n" msgstr "" -"sekcja [%2d] '%s': symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ." +"sekcja [%2d] \"%s\": symbol _GLOBAL_OFFSET_TABLE_ istnieje, ale brak sekcji ." "got\n" #: src/elflint.c:990 @@ -1502,8 +1465,8 @@ msgid "" "section [%2d] '%s': _DYNAMIC_ symbol value %#<PRIx64> does not match dynamic " "segment address %#<PRIx64>\n" msgstr "" -"sekcja [%2d] '%s': wartość symbolu _DYNAMIC_ %#<PRIx64> nie pasuje do adresu " -"segmentu dynamicznego %#<PRIx64>\n" +"sekcja [%2d] \"%s\": wartość symbolu _DYNAMIC_ %#<PRIx64> nie pasuje do " +"adresu segmentu dynamicznego %#<PRIx64>\n" #: src/elflint.c:997 #, c-format @@ -1511,7 +1474,7 @@ msgid "" "section [%2d] '%s': _DYNAMIC symbol size %<PRIu64> does not match dynamic " "segment size %<PRIu64>\n" msgstr "" -"sekcja [%2d] '%s': rozmiar symbolu _DYNAMIC_ %<PRIu64> nie pasuje do " +"sekcja [%2d] \"%s\": rozmiar symbolu _DYNAMIC_ %<PRIu64> nie pasuje do " "rozmiaru segmentu dynamicznego %<PRIu64>\n" #: src/elflint.c:1010 @@ -1519,22 +1482,22 @@ msgstr "" msgid "" "section [%2d] '%s': symbol %zu: symbol in dynamic symbol table with non-" "default visibility\n" -msgstr "sekcja [%2d] '%s': symbol %d: symbol lokalny z zakresem globalnym\n" +msgstr "sekcja [%2d] \"%s\": symbol %d: symbol lokalny z zakresem globalnym\n" #: src/elflint.c:1014 #, fuzzy, c-format msgid "section [%2d] '%s': symbol %zu: unknown bit set in st_other\n" -msgstr "sekcja [%2d] '%s': symbol %zu: nieznany typ\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: nieznany typ\n" #: src/elflint.c:1059 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT used for this RELA section\n" -msgstr "sekcja [%2d] '%s': wartość DT_RELCOUNT użyta dla tej sekcji RELA\n" +msgstr "sekcja [%2d] \"%s\": wartość DT_RELCOUNT użyta dla tej sekcji RELA\n" #: src/elflint.c:1068 src/elflint.c:1120 #, c-format msgid "section [%2d] '%s': DT_RELCOUNT value %d too high for this section\n" -msgstr "sekcja [%2d] '%s': wartość DT_RELCOUNT %d zbyt duża dla tej sekcji\n" +msgstr "sekcja [%2d] \"%s\": wartość DT_RELCOUNT %d zbyt duża dla tej sekcji\n" #: src/elflint.c:1093 src/elflint.c:1145 #, c-format @@ -1542,7 +1505,7 @@ msgid "" "section [%2d] '%s': relative relocations after index %d as specified by " "DT_RELCOUNT\n" msgstr "" -"sekcja [%2d] '%s': relokacje względne po indeksie %d określonym przez " +"sekcja [%2d] \"%s\": relokacje względne po indeksie %d określonym przez " "DT_RELCOUNT\n" #: src/elflint.c:1099 src/elflint.c:1151 @@ -1551,38 +1514,39 @@ msgid "" "section [%2d] '%s': non-relative relocation at index %zu; DT_RELCOUNT " "specified %d relative relocations\n" msgstr "" -"sekcja [%2d] '%s': relokacja bezwzględna pod indeksem %zu; DT_RELCOUNT " +"sekcja [%2d] \"%s\": relokacja bezwzględna pod indeksem %zu; DT_RELCOUNT " "określił %d relokacji względnych\n" #: src/elflint.c:1111 #, c-format msgid "section [%2d] '%s': DT_RELACOUNT used for this REL section\n" -msgstr "sekcja [%2d] '%s': DT_RELACOUNT użyte dla tej sekcji REL\n" +msgstr "sekcja [%2d] \"%s\": DT_RELACOUNT użyte dla tej sekcji REL\n" #: src/elflint.c:1193 #, c-format msgid "section [%2d] '%s': invalid destination section index\n" -msgstr "sekcja [%2d] '%s': błędny indeks sekcji docelowej\n" +msgstr "sekcja [%2d] \"%s\": błędny indeks sekcji docelowej\n" #: src/elflint.c:1206 #, c-format msgid "section [%2d] '%s': invalid destination section type\n" -msgstr "sekcja [%2d] '%s': błędny typ sekcji docelowej\n" +msgstr "sekcja [%2d] \"%s\": błędny typ sekcji docelowej\n" #: src/elflint.c:1214 #, c-format msgid "section [%2d] '%s': sh_info should be zero\n" -msgstr "sekcja [%2d] '%s': sh_info nie jest zerem\n" +msgstr "sekcja [%2d] \"%s\": sh_info nie jest zerem\n" #: src/elflint.c:1221 #, c-format msgid "section [%2d] '%s': no relocations for merge-able sections possible\n" -msgstr "sekcja [%2d] '%s': relokacje dla sekcji złączalnych niemożliwe\n" +msgstr "sekcja [%2d] \"%s\": relokacje dla sekcji złączalnych niemożliwe\n" #: src/elflint.c:1228 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Rela\n" -msgstr "sekcja [%2d] '%s': rozmiar wpisu sekcji nie zgadza się z ElfXX_Rela\n" +msgstr "" +"sekcja [%2d] \"%s\": rozmiar wpisu sekcji nie zgadza się z ElfXX_Rela\n" #: src/elflint.c:1288 #, c-format @@ -1593,7 +1557,7 @@ msgstr "" #: src/elflint.c:1315 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid type\n" -msgstr "sekcja [%2d] '%s': relokacja %zu: błędny typ\n" +msgstr "sekcja [%2d] \"%s\": relokacja %zu: błędny typ\n" #: src/elflint.c:1323 #, c-format @@ -1601,12 +1565,13 @@ msgid "" "section [%2d] '%s': relocation %zu: relocation type invalid for the file " "type\n" msgstr "" -"sekcja [%2d] '%s': relokacja %zu: typ relokacji błędny dla tego typu pliku\n" +"sekcja [%2d] \"%s\": relokacja %zu: typ relokacji błędny dla tego typu " +"pliku\n" #: src/elflint.c:1331 #, c-format msgid "section [%2d] '%s': relocation %zu: invalid symbol index\n" -msgstr "sekcja [%2d] '%s': relokacja %zu: błędny indeks symbolu\n" +msgstr "sekcja [%2d] \"%s\": relokacja %zu: błędny indeks symbolu\n" #: src/elflint.c:1349 #, c-format @@ -1614,13 +1579,13 @@ msgid "" "section [%2d] '%s': relocation %zu: only symbol '_GLOBAL_OFFSET_TABLE_' can " "be used with %s\n" msgstr "" -"sekcja [%2d] '%s': relokacja %zu: z %s można użyć tylko symbolu " +"sekcja [%2d] \"%s\": relokacja %zu: z %s można użyć tylko symbolu " "'_GLOBAL_OFFSET_TABLE_'\n" #: src/elflint.c:1366 #, c-format msgid "section [%2d] '%s': relocation %zu: offset out of bounds\n" -msgstr "sekcja [%2d] '%s': relokacja %zu: offset spoza zakresu\n" +msgstr "sekcja [%2d] \"%s\": relokacja %zu: offset spoza zakresu\n" #: src/elflint.c:1381 #, c-format @@ -1628,7 +1593,8 @@ msgid "" "section [%2d] '%s': relocation %zu: copy relocation against symbol of type %" "s\n" msgstr "" -"sekcja [%2d] '%s': relokacja %zu: relokacja kopii względem symbolu typu %s\n" +"sekcja [%2d] \"%s\": relokacja %zu: relokacja kopii względem symbolu typu %" +"s\n" #: src/elflint.c:1402 #, c-format @@ -1636,19 +1602,19 @@ msgid "" "section [%2d] '%s': relocation %zu: read-only section modified but text " "relocation flag not set\n" msgstr "" -"sekcja [%2d] '%s': relokacja %zu: sekcja tylko do odczytu modyfikowana, ale " -"flaga relokacji tekstu nie ustawiona\n" +"sekcja [%2d] \"%s\": relokacja %zu: sekcja tylko do odczytu modyfikowana, " +"ale flaga relokacji tekstu nie ustawiona\n" #: src/elflint.c:1417 #, c-format msgid "section [%2d] '%s': relocations are against loaded and unloaded data\n" msgstr "" -"sekcja [%2d] '%s': relokacje względem wczytanych i niewczytanych danych\n" +"sekcja [%2d] \"%s\": relokacje względem wczytanych i niewczytanych danych\n" #: src/elflint.c:1456 src/elflint.c:1506 #, c-format msgid "section [%2d] '%s': cannot get relocation %zu: %s\n" -msgstr "sekcja [%2d] '%s': nie można pobrać relokacji %zu: %s\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać relokacji %zu: %s\n" #: src/elflint.c:1586 #, c-format @@ -1658,44 +1624,46 @@ msgstr "obecna więcej niż jedna sekcja dynamiczna\n" #: src/elflint.c:1604 #, c-format msgid "section [%2d] '%s': section entry size does not match ElfXX_Dyn\n" -msgstr "sekcja [%2d] '%s': rozmiar wpisu sekcji nie zgadza się z ElfXX_Dyn\n" +msgstr "sekcja [%2d] \"%s\": rozmiar wpisu sekcji nie zgadza się z ElfXX_Dyn\n" #: src/elflint.c:1609 src/elflint.c:1901 #, c-format msgid "section [%2d] '%s': sh_info not zero\n" -msgstr "sekcja [%2d] '%s': sh_info nie jest zerem\n" +msgstr "sekcja [%2d] \"%s\": sh_info nie jest zerem\n" #: src/elflint.c:1619 #, c-format msgid "section [%2d] '%s': cannot get dynamic section entry %zu: %s\n" -msgstr "sekcja [%2d] '%s': nie można pobrać wpisu %zu sekcji dynamicznej: %s\n" +msgstr "" +"sekcja [%2d] \"%s\": nie można pobrać wpisu %zu sekcji dynamicznej: %s\n" #: src/elflint.c:1627 #, c-format msgid "section [%2d] '%s': non-DT_NULL entries follow DT_NULL entry\n" -msgstr "sekcja [%2d] '%s': wpisy nie-DT_NULL występują po wpisie DT_NULL\n" +msgstr "sekcja [%2d] \"%s\": wpisy nie-DT_NULL występują po wpisie DT_NULL\n" #: src/elflint.c:1634 #, c-format msgid "section [%2d] '%s': entry %zu: unknown tag\n" -msgstr "sekcja [%2d] '%s': wpis %zu: nieznany znacznik\n" +msgstr "sekcja [%2d] \"%s\": wpis %zu: nieznany znacznik\n" #: src/elflint.c:1645 #, c-format msgid "section [%2d] '%s': entry %zu: more than one entry with tag %s\n" -msgstr "sekcja [%2d] '%s': wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" +msgstr "" +"sekcja [%2d] \"%s\": wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" #: src/elflint.c:1655 #, c-format msgid "section [%2d] '%s': entry %zu: level 2 tag %s used\n" -msgstr "sekcja [%2d] '%s': wpis %zu: użyto znacznika %s poziomu 2\n" +msgstr "sekcja [%2d] \"%s\": wpis %zu: użyto znacznika %s poziomu 2\n" #: src/elflint.c:1673 #, c-format msgid "" "section [%2d] '%s': entry %zu: DT_PLTREL value must be DT_REL or DT_RELA\n" msgstr "" -"sekcja [%2d] '%s': wpis %zu: wartością DT_PLTREL musi być DT_REL lub " +"sekcja [%2d] \"%s\": wpis %zu: wartością DT_PLTREL musi być DT_REL lub " "DT_RELA\n" #: src/elflint.c:1695 @@ -1704,15 +1672,15 @@ msgid "" "section [%2d] '%s': entry %zu: pointer does not match address of section [%" "2d] '%s' referenced by sh_link\n" msgstr "" -"sekcja [%2d] '%s': wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] '%s' " -"wskazywanej przez sh_link\n" +"sekcja [%2d] \"%s\": wpis %zu: wskaźnik nie pasuje do adresu sekcji [%2d] \"%" +"s\" wskazywanej przez sh_link\n" #: src/elflint.c:1738 #, c-format msgid "" "section [%2d] '%s': entry %zu: %s value must point into loaded segment\n" msgstr "" -"sekcja [%2d] '%s': wpis %zu: wartość %s musi wskazywać na załadowany " +"sekcja [%2d] \"%s\": wpis %zu: wartość %s musi wskazywać na załadowany " "segment\n" #: src/elflint.c:1753 @@ -1721,54 +1689,55 @@ msgid "" "section [%2d] '%s': entry %zu: %s value must be valid offset in section [%" "2d] '%s'\n" msgstr "" -"sekcja [%2d] '%s': wpis %zu: wartość %s musi być poprawnym offsetem w sekcji " -"[%2d] '%s'\n" +"sekcja [%2d] \"%s\": wpis %zu: wartość %s musi być poprawnym offsetem w " +"sekcji [%2d] \"%s\"\n" #: src/elflint.c:1773 src/elflint.c:1801 #, c-format msgid "section [%2d] '%s': contains %s entry but not %s\n" -msgstr "sekcja [%2d] '%s': zawiera wpis %s, ale nie %s\n" +msgstr "sekcja [%2d] \"%s\": zawiera wpis %s, ale nie %s\n" #: src/elflint.c:1785 #, c-format msgid "section [%2d] '%s': mandatory tag %s not present\n" -msgstr "sekcja [%2d] '%s': brak obowiązkowego znacznika %s\n" +msgstr "sekcja [%2d] \"%s\": brak obowiązkowego znacznika %s\n" #: src/elflint.c:1794 #, c-format msgid "section [%2d] '%s': no hash section present\n" -msgstr "sekcja [%2d] '%s': brak sekcji haszy\n" +msgstr "sekcja [%2d] \"%s\": brak sekcji haszy\n" #: src/elflint.c:1809 src/elflint.c:1816 #, c-format msgid "section [%2d] '%s': not all of %s, %s, and %s are present\n" -msgstr "sekcja [%2d] '%s': nie wszystkie z %s, %s i %s są obecne\n" +msgstr "sekcja [%2d] \"%s\": nie wszystkie z %s, %s i %s są obecne\n" #: src/elflint.c:1826 src/elflint.c:1830 #, c-format msgid "section [%2d] '%s': %s tag missing in DSO marked during prelinking\n" msgstr "" -"sekcja [%2d] '%s': brak znacznika %s w DSO zaznaczonym przy prelinkowaniu\n" +"sekcja [%2d] \"%s\": brak znacznika %s w DSO zaznaczonym przy prelinkowaniu\n" #: src/elflint.c:1836 #, c-format msgid "section [%2d] '%s': non-DSO file marked as dependency during prelink\n" msgstr "" -"sekcja [%2d] '%s': plik nie-DSO zaznaczony jako zależność przy " +"sekcja [%2d] \"%s\": plik nie-DSO zaznaczony jako zależność przy " "prelinkowaniu\n" #: src/elflint.c:1847 src/elflint.c:1851 src/elflint.c:1855 src/elflint.c:1859 #, c-format msgid "section [%2d] '%s': %s tag missing in prelinked executable\n" msgstr "" -"sekcja [%2d] '%s': brak znacznika %s w prelinkowanym programie wykonywalnym\n" +"sekcja [%2d] \"%s\": brak znacznika %s w prelinkowanym programie " +"wykonywalnym\n" #: src/elflint.c:1871 #, c-format msgid "" "section [%2d] '%s': only relocatable files can have extended section index\n" msgstr "" -"sekcja [%2d] '%s': tylko pliki relokowalne mogą mieć rozszerzoną sekcję " +"sekcja [%2d] \"%s\": tylko pliki relokowalne mogą mieć rozszerzoną sekcję " "indeksów\n" #: src/elflint.c:1881 @@ -1776,7 +1745,7 @@ msgstr "" msgid "" "section [%2d] '%s': extended section index section not for symbol table\n" msgstr "" -"sekcja [%2d] '%s': sekcja rozszerzonych indeksów sekcji nie dla tabeli " +"sekcja [%2d] \"%s\": sekcja rozszerzonych indeksów sekcji nie dla tabeli " "symboli\n" #: src/elflint.c:1886 @@ -1787,13 +1756,14 @@ msgstr "nie można pobrać danych dla sekcji symboli\n" #: src/elflint.c:1889 #, c-format msgid "section [%2d] '%s': entry size does not match Elf32_Word\n" -msgstr "sekcja [%2d] '%s': rozmiar wpisu nie zgadza się z Elf32_Word\n" +msgstr "sekcja [%2d] \"%s\": rozmiar wpisu nie zgadza się z Elf32_Word\n" #: src/elflint.c:1896 #, c-format msgid "section [%2d] '%s': extended index table too small for symbol table\n" msgstr "" -"sekcja [%2d] '%s': tabela rozszerzonych indeksów za mała dla tabeli symboli\n" +"sekcja [%2d] \"%s\": tabela rozszerzonych indeksów za mała dla tabeli " +"symboli\n" #: src/elflint.c:1911 #, c-format @@ -1801,8 +1771,8 @@ msgid "" "section [%2d] '%s': extended section index in section [%2zu] '%s' refers to " "same symbol table\n" msgstr "" -"sekcja [%2d] '%s': rozszerzony indeks sekcji w sekcji [%2zu] '%s' odwołuje " -"się do tej samej tabeli symboli\n" +"sekcja [%2d] \"%s\": rozszerzony indeks sekcji w sekcji [%2zu] \"%s\" " +"odwołuje się do tej samej tabeli symboli\n" #: src/elflint.c:1922 #, c-format @@ -1825,34 +1795,34 @@ msgstr "" msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected %ld)\n" msgstr "" -"sekcja [%2d] '%s': sekcja tablicy haszującej jest zbyt mała (%ld, oczekiwano " -"%ld)\n" +"sekcja [%2d] \"%s\": sekcja tablicy haszującej jest zbyt mała (%ld, " +"oczekiwano %ld)\n" #: src/elflint.c:1967 src/elflint.c:2008 #, c-format msgid "section [%2d] '%s': chain array too large\n" -msgstr "sekcja [%2d] '%s': tablica łańcuchowa zbyt duża\n" +msgstr "sekcja [%2d] \"%s\": tablica łańcuchowa zbyt duża\n" #: src/elflint.c:1976 src/elflint.c:2017 #, c-format msgid "section [%2d] '%s': hash bucket reference %zu out of bounds\n" -msgstr "sekcja [%2d] '%s': odwołanie do kubełka hasza %zu spoza zakresu\n" +msgstr "sekcja [%2d] \"%s\": odwołanie do kubełka hasza %zu spoza zakresu\n" #: src/elflint.c:1982 #, c-format msgid "section [%2d] '%s': hash chain reference %zu out of bounds\n" -msgstr "sekcja [%2d] '%s': odwołanie do łańcucha hasza %zu spoza zakresu\n" +msgstr "sekcja [%2d] \"%s\": odwołanie do łańcucha hasza %zu spoza zakresu\n" #: src/elflint.c:2023 #, c-format msgid "section [%2d] '%s': hash chain reference %<PRIu64> out of bounds\n" msgstr "" -"sekcja [%2d] '%s': odwołanie do łańcucha hasza %<PRIu64> spoza zakresu\n" +"sekcja [%2d] \"%s\": odwołanie do łańcucha hasza %<PRIu64> spoza zakresu\n" #: src/elflint.c:2038 #, c-format msgid "section [%2d] '%s': bitmask size not power of 2: %u\n" -msgstr "sekcja [%2d] '%s': rozmiar maski bitowej nie jest potęgą 2: %u\n" +msgstr "sekcja [%2d] \"%s\": rozmiar maski bitowej nie jest potęgą 2: %u\n" #: src/elflint.c:2049 #, c-format @@ -1860,21 +1830,21 @@ msgid "" "section [%2d] '%s': hash table section is too small (is %ld, expected at " "least%ld)\n" msgstr "" -"sekcja [%2d] '%s': sekcja tablicy haszującej jest zbyt mała (%ld, oczekiwano " -"co najmniej %ld)\n" +"sekcja [%2d] \"%s\": sekcja tablicy haszującej jest zbyt mała (%ld, " +"oczekiwano co najmniej %ld)\n" #: src/elflint.c:2057 #, c-format msgid "section [%2d] '%s': 2nd hash function shift too big: %u\n" msgstr "" -"sekcja [%2d] '%s': drugie przesunięcie funkcji haszującej zbyt duże: %u\n" +"sekcja [%2d] \"%s\": drugie przesunięcie funkcji haszującej zbyt duże: %u\n" #: src/elflint.c:2089 #, c-format msgid "" "section [%2d] '%s': hash chain for bucket %zu lower than symbol index bias\n" msgstr "" -"sekcja [%2d] '%s': łańcuch haszujący dla kubełka %zu mniejszy niż " +"sekcja [%2d] \"%s\": łańcuch haszujący dla kubełka %zu mniejszy niż " "przesunięcie indeksu symboli\n" #: src/elflint.c:2110 @@ -1883,7 +1853,7 @@ msgid "" "section [%2d] '%s': symbol %u referenced in chain for bucket %zu is " "undefined\n" msgstr "" -"sekcja [%2d] '%s': symbol %u wskazywany w łańcuchu dla kubełka %zu jest " +"sekcja [%2d] \"%s\": symbol %u wskazywany w łańcuchu dla kubełka %zu jest " "niezdefiniowany\n" #: src/elflint.c:2121 @@ -1891,49 +1861,49 @@ msgstr "" msgid "" "section [%2d] '%s': hash value for symbol %u in chain for bucket %zu wrong\n" msgstr "" -"sekcja [%2d] '%s': wartość hasza dla symbolu %u w łańcuchu dla kubełka %zu " +"sekcja [%2d] \"%s\": wartość hasza dla symbolu %u w łańcuchu dla kubełka %zu " "jest błędna\n" #: src/elflint.c:2152 #, c-format msgid "section [%2d] '%s': hash chain for bucket %zu out of bounds\n" -msgstr "sekcja [%2d] '%s': łańcuch hasza dla kubełka %zu spoza zakresu\n" +msgstr "sekcja [%2d] \"%s\": łańcuch hasza dla kubełka %zu spoza zakresu\n" #: src/elflint.c:2157 #, c-format msgid "" "section [%2d] '%s': symbol reference in chain for bucket %zu out of bounds\n" msgstr "" -"sekcja [%2d] '%s': odwołanie do symbolu w łańcuchu dla kubełka %zu spoza " +"sekcja [%2d] \"%s\": odwołanie do symbolu w łańcuchu dla kubełka %zu spoza " "zakresu\n" #: src/elflint.c:2163 #, c-format msgid "section [%2d] '%s': bitmask does not match names in the hash table\n" msgstr "" -"sekcja [%2d] '%s': maska bitowa nie pasuje do nazw w tablicy haszującej\n" +"sekcja [%2d] \"%s\": maska bitowa nie pasuje do nazw w tablicy haszującej\n" #: src/elflint.c:2176 #, c-format msgid "section [%2d] '%s': relocatable files cannot have hash tables\n" msgstr "" -"sekcja [%2d] '%s': pliki relokowalne nie mogą mieć tablic haszujących\n" +"sekcja [%2d] \"%s\": pliki relokowalne nie mogą mieć tablic haszujących\n" #: src/elflint.c:2194 #, c-format msgid "section [%2d] '%s': hash table not for dynamic symbol table\n" msgstr "" -"sekcja [%2d] '%s': tablica haszująca nie dla tabeli dynamicznych symboli\n" +"sekcja [%2d] \"%s\": tablica haszująca nie dla tabeli dynamicznych symboli\n" #: src/elflint.c:2202 #, c-format msgid "section [%2d] '%s': hash table entry size incorrect\n" -msgstr "sekcja [%2d] '%s': niepoprawny rozmiar wpisu tablicy haszującej\n" +msgstr "sekcja [%2d] \"%s\": niepoprawny rozmiar wpisu tablicy haszującej\n" #: src/elflint.c:2207 #, c-format msgid "section [%2d] '%s': not marked to be allocated\n" -msgstr "sekcja [%2d] '%s': nie oznaczona do przydzielenia\n" +msgstr "sekcja [%2d] \"%s\": nie oznaczona do przydzielenia\n" #: src/elflint.c:2212 #, c-format @@ -1941,18 +1911,19 @@ msgid "" "section [%2d] '%s': hash table has not even room for initial administrative " "entries\n" msgstr "" -"sekcja [%2d] '%s': tablica haszująca nie ma miejsca nawet na początkowe " +"sekcja [%2d] \"%s\": tablica haszująca nie ma miejsca nawet na początkowe " "wpisy administracyjne\n" #: src/elflint.c:2260 #, c-format msgid "sh_link in hash sections [%2zu] '%s' and [%2zu] '%s' not identical\n" -msgstr "sh_link w sekcjach hash [%2zu] '%s' i [%2zu] '%s' nie są identyczne\n" +msgstr "" +"sh_link w sekcjach hash [%2zu] \"%s\" i [%2zu] \"%s\" nie są identyczne\n" #: src/elflint.c:2338 src/elflint.c:2342 #, c-format msgid "section [%2zu] '%s': reference to symbol index 0\n" -msgstr "sekcja [%2zu] '%s': odwołanie do symbolu o indeksie 0\n" +msgstr "sekcja [%2zu] \"%s\": odwołanie do symbolu o indeksie 0\n" #: src/elflint.c:2349 #, c-format @@ -1960,8 +1931,8 @@ msgid "" "symbol %d referenced in new hash table in [%2zu] '%s' but not in old hash " "table in [%2zu] '%s'\n" msgstr "" -"symbol %d wymieniony w nowej tablicy haszującej w [%2zu] '%s', ale nie w " -"starej tablicy haszującej [%2zu] '%s'\n" +"symbol %d wymieniony w nowej tablicy haszującej w [%2zu] \"%s\", ale nie w " +"starej tablicy haszującej [%2zu] \"%s\"\n" #: src/elflint.c:2361 #, c-format @@ -1969,105 +1940,105 @@ msgid "" "symbol %d referenced in old hash table in [%2zu] '%s' but not in new hash " "table in [%2zu] '%s'\n" msgstr "" -"symbol %d wymieniony w starej tablicy haszującej w [%2zu] '%s', ale nie w " -"nowej tablicy haszującej w [%2zu] '%s'\n" +"symbol %d wymieniony w starej tablicy haszującej w [%2zu] \"%s\", ale nie w " +"nowej tablicy haszującej w [%2zu] \"%s\"\n" #: src/elflint.c:2377 #, c-format msgid "section [%2d] '%s': nonzero sh_%s for NULL section\n" -msgstr "sekcja [%2d] '%s': niezerowe sh_%s dla sekcji NULL\n" +msgstr "sekcja [%2d] \"%s\": niezerowe sh_%s dla sekcji NULL\n" #: src/elflint.c:2397 #, c-format msgid "" "section [%2d] '%s': section groups only allowed in relocatable object files\n" msgstr "" -"sekcja [%2d] '%s': w plikach obiektów relokowalnych dozwolone są tylko grupy " -"sekcji\n" +"sekcja [%2d] \"%s\": w plikach obiektów relokowalnych dozwolone są tylko " +"grupy sekcji\n" #: src/elflint.c:2408 #, c-format msgid "section [%2d] '%s': cannot get symbol table: %s\n" -msgstr "sekcja [%2d] '%s': nie można pobrać tabeli symboli: %s\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać tabeli symboli: %s\n" #: src/elflint.c:2413 #, c-format msgid "section [%2d] '%s': section reference in sh_link is no symbol table\n" msgstr "" -"sekcja [%2d] '%s': odwołanie do sekcji w sh_link nie ma tabeli symboli\n" +"sekcja [%2d] \"%s\": odwołanie do sekcji w sh_link nie ma tabeli symboli\n" #: src/elflint.c:2419 #, c-format msgid "section [%2d] '%s': invalid symbol index in sh_info\n" -msgstr "sekcja [%2d] '%s': błędny indeks symbolu w sh_info\n" +msgstr "sekcja [%2d] \"%s\": błędny indeks symbolu w sh_info\n" #: src/elflint.c:2424 #, c-format msgid "section [%2d] '%s': sh_flags not zero\n" -msgstr "sekcja [%2d] '%s': niezerowe sh_flags\n" +msgstr "sekcja [%2d] \"%s\": niezerowe sh_flags\n" #: src/elflint.c:2431 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get symbol for signature\n" -msgstr "sekcja [%2d] '%s': nie można pobrać symbolu %d: %s\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać symbolu %d: %s\n" #: src/elflint.c:2436 #, fuzzy, c-format msgid "section [%2d] '%s': signature symbol cannot be empty string\n" -msgstr "sekcja [%2d] '%s': symbol %d: nie można odczytać danych wersji\n" +msgstr "sekcja [%2d] \"%s\": symbol %d: nie można odczytać danych wersji\n" #: src/elflint.c:2442 #, c-format msgid "section [%2d] '%s': sh_flags not set correctly\n" -msgstr "sekcja [%2d] '%s': sh_flags nie ustawione poprawnie\n" +msgstr "sekcja [%2d] \"%s\": sh_flags nie ustawione poprawnie\n" #: src/elflint.c:2448 #, c-format msgid "section [%2d] '%s': cannot get data: %s\n" -msgstr "sekcja [%2d] '%s': nie można pobrać danych: %s\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać danych: %s\n" #: src/elflint.c:2457 #, c-format msgid "section [%2d] '%s': section size not multiple of sizeof(Elf32_Word)\n" msgstr "" -"sekcja [%2d] '%s': rozmiar sekcji nie jest wielokrotnością sizeof" +"sekcja [%2d] \"%s\": rozmiar sekcji nie jest wielokrotnością sizeof" "(Elf32_Word)\n" #: src/elflint.c:2462 #, c-format msgid "section [%2d] '%s': section group without flags word\n" -msgstr "sekcja [%2d] '%s': grupa sekcji bez słowa flag\n" +msgstr "sekcja [%2d] \"%s\": grupa sekcji bez słowa flag\n" #: src/elflint.c:2468 #, c-format msgid "section [%2d] '%s': section group without member\n" -msgstr "sekcja [%2d] '%s': grupa sekcji bez elementów\n" +msgstr "sekcja [%2d] \"%s\": grupa sekcji bez elementów\n" #: src/elflint.c:2472 #, c-format msgid "section [%2d] '%s': section group with only one member\n" -msgstr "sekcja [%2d] '%s': grupa sekcji z tylko jednym elementem\n" +msgstr "sekcja [%2d] \"%s\": grupa sekcji z tylko jednym elementem\n" #: src/elflint.c:2483 #, c-format msgid "section [%2d] '%s': unknown section group flags\n" -msgstr "sekcja [%2d] '%s': nieznane flagi grupy sekcji\n" +msgstr "sekcja [%2d] \"%s\": nieznane flagi grupy sekcji\n" #: src/elflint.c:2495 #, c-format msgid "section [%2d] '%s': section index %Zu out of range\n" -msgstr "sekcja [%2d] '%s': indeks sekcji %Zu spoza zakresu\n" +msgstr "sekcja [%2d] \"%s\": indeks sekcji %Zu spoza zakresu\n" #: src/elflint.c:2504 #, c-format msgid "section [%2d] '%s': cannot get section header for element %zu: %s\n" msgstr "" -"sekcja [%2d] '%s': nie można pobrać nagłówka sekcji dla elementu %zu: %s\n" +"sekcja [%2d] \"%s\": nie można pobrać nagłówka sekcji dla elementu %zu: %s\n" #: src/elflint.c:2511 #, c-format msgid "section [%2d] '%s': section group contains another group [%2d] '%s'\n" -msgstr "sekcja [%2d] '%s': grupa sekcji zawiera inną grupę [%2d] '%s'\n" +msgstr "sekcja [%2d] \"%s\": grupa sekcji zawiera inną grupę [%2d] \"%s\"\n" #: src/elflint.c:2517 #, c-format @@ -2075,13 +2046,13 @@ msgid "" "section [%2d] '%s': element %Zu references section [%2d] '%s' without " "SHF_GROUP flag set\n" msgstr "" -"sekcja [%2d] '%s': element %Zu odwołuje się do sekcji [%2d] '%s' bez flagi " -"SHF_GROUP\n" +"sekcja [%2d] \"%s\": element %Zu odwołuje się do sekcji [%2d] \"%s\" bez " +"flagi SHF_GROUP\n" #: src/elflint.c:2524 #, c-format msgid "section [%2d] '%s' is contained in more than one section group\n" -msgstr "sekcja [%2d] '%s' jest zawarta w więcej niż jednej grupie sekcji\n" +msgstr "sekcja [%2d] \"%s\" jest zawarta w więcej niż jednej grupie sekcji\n" #: src/elflint.c:2713 #, c-format @@ -2089,7 +2060,7 @@ msgid "" "section [%2d] '%s' refers in sh_link to section [%2d] '%s' which is no " "dynamic symbol table\n" msgstr "" -"sekcja [%2d] '%s' odwołuje się w sh_link do sekcji [%2d] '%s', która nie " +"sekcja [%2d] \"%s\" odwołuje się w sh_link do sekcji [%2d] \"%s\", która nie " "jest tabelą symboli dynamicznych\n" #: src/elflint.c:2724 @@ -2098,34 +2069,34 @@ msgid "" "section [%2d] '%s' has different number of entries than symbol table [%2d] '%" "s'\n" msgstr "" -"sekcja [%2d] '%s' ma inną liczbę wpisów niż tabela symboli [%2d] '%s'\n" +"sekcja [%2d] \"%s\" ma inną liczbę wpisów niż tabela symboli [%2d] \"%s\"\n" #: src/elflint.c:2740 #, c-format msgid "section [%2d] '%s': symbol %d: cannot read version data\n" -msgstr "sekcja [%2d] '%s': symbol %d: nie można odczytać danych wersji\n" +msgstr "sekcja [%2d] \"%s\": symbol %d: nie można odczytać danych wersji\n" #: src/elflint.c:2756 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with global scope\n" -msgstr "sekcja [%2d] '%s': symbol %d: symbol lokalny z zakresem globalnym\n" +msgstr "sekcja [%2d] \"%s\": symbol %d: symbol lokalny z zakresem globalnym\n" #: src/elflint.c:2764 #, c-format msgid "section [%2d] '%s': symbol %d: local symbol with version\n" -msgstr "sekcja [%2d] '%s': symbol %d: symbol lokalny z wersją\n" +msgstr "sekcja [%2d] \"%s\": symbol %d: symbol lokalny z wersją\n" #: src/elflint.c:2778 #, c-format msgid "section [%2d] '%s': symbol %d: invalid version index %d\n" -msgstr "sekcja [%2d] '%s': symbol %d: błędny indeks wersji %d\n" +msgstr "sekcja [%2d] \"%s\": symbol %d: błędny indeks wersji %d\n" #: src/elflint.c:2783 #, c-format msgid "" "section [%2d] '%s': symbol %d: version index %d is for defined version\n" msgstr "" -"sekcja [%2d] '%s': symbol %d: indeks wersji %d jest dla wersji " +"sekcja [%2d] \"%s\": symbol %d: indeks wersji %d jest dla wersji " "zdefiniowanej\n" #: src/elflint.c:2793 @@ -2133,7 +2104,7 @@ msgstr "" msgid "" "section [%2d] '%s': symbol %d: version index %d is for requested version\n" msgstr "" -"sekcja [%2d] '%s': symbol %d: indeks wersji %d jest dla wersji żądanej\n" +"sekcja [%2d] \"%s\": symbol %d: indeks wersji %d jest dla wersji żądanej\n" #: src/elflint.c:2845 #, c-format @@ -2143,32 +2114,32 @@ msgstr "obecna więcej niż jedna sekcja odniesienia wersji\n" #: src/elflint.c:2853 src/elflint.c:2982 #, c-format msgid "section [%2d] '%s': sh_link does not link to string table\n" -msgstr "sekcja [%2d] '%s': sh_link nie łączy się z tabelą łańcuchów\n" +msgstr "sekcja [%2d] \"%s\": sh_link nie łączy się z tabelą łańcuchów\n" #: src/elflint.c:2876 src/elflint.c:3034 #, c-format msgid "section [%2d] '%s': entry %d has wrong version %d\n" -msgstr "sekcja [%2d] '%s': wpis %d ma złą wersję %d\n" +msgstr "sekcja [%2d] \"%s\": wpis %d ma złą wersję %d\n" #: src/elflint.c:2882 src/elflint.c:3040 #, c-format msgid "section [%2d] '%s': entry %d has wrong offset of auxiliary data\n" -msgstr "sekcja [%2d] '%s': wpis %d ma zły offset dla danych dodatkowych\n" +msgstr "sekcja [%2d] \"%s\": wpis %d ma zły offset dla danych dodatkowych\n" #: src/elflint.c:2890 #, c-format msgid "section [%2d] '%s': entry %d has invalid file reference\n" -msgstr "sekcja [%2d] '%s': symbol %d ma błędne odniesienie do pliku\n" +msgstr "sekcja [%2d] \"%s\": symbol %d ma błędne odniesienie do pliku\n" #: src/elflint.c:2898 #, c-format msgid "section [%2d] '%s': entry %d references unknown dependency\n" -msgstr "sekcja [%2d] '%s': wpis %d odnosi się do nieznanej zależności\n" +msgstr "sekcja [%2d] \"%s\": wpis %d odnosi się do nieznanej zależności\n" #: src/elflint.c:2910 #, c-format msgid "section [%2d] '%s': auxiliary entry %d of entry %d has unknown flag\n" -msgstr "sekcja [%2d] '%s': wpis dodatkowy %d do wpisu %d ma nieznaną flagę\n" +msgstr "sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma nieznaną flagę\n" #: src/elflint.c:2917 #, c-format @@ -2176,7 +2147,7 @@ msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has invalid name " "reference\n" msgstr "" -"sekcja [%2d] '%s': wpis dodatkowy %d do wpisu %d ma błędne odniesienie do " +"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma błędne odniesienie do " "nazwy\n" #: src/elflint.c:2924 @@ -2185,8 +2156,8 @@ msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong hash value: %" "#x, expected %#x\n" msgstr "" -"sekcja [%2d] '%s': wpis dodatkowy %d do wpisu %d ma złą wartość hasza: %#x, " -"oczekiwano %#x\n" +"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma złą wartość hasza: %" +"#x, oczekiwano %#x\n" #: src/elflint.c:2934 #, c-format @@ -2194,20 +2165,20 @@ msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has duplicate version " "name '%s'\n" msgstr "" -"sekcja [%2d] '%s': wpis dodatkowy %d do wpisu %d ma powtórzoną nazwę wersji " -"'%s'\n" +"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma powtórzoną nazwę " +"wersji \"%s\"\n" #: src/elflint.c:2945 #, c-format msgid "" "section [%2d] '%s': auxiliary entry %d of entry %d has wrong next field\n" msgstr "" -"sekcja [%2d] '%s': wpis dodatkowy %d do wpisu %d ma złe następne pole\n" +"sekcja [%2d] \"%s\": wpis dodatkowy %d do wpisu %d ma złe następne pole\n" #: src/elflint.c:2961 src/elflint.c:3119 #, c-format msgid "section [%2d] '%s': entry %d has invalid offset to next entry\n" -msgstr "sekcja [%2d] '%s': wpis %d ma błędny offset do następnego wpisu\n" +msgstr "sekcja [%2d] \"%s\": wpis %d ma błędny offset do następnego wpisu\n" #: src/elflint.c:2974 #, c-format @@ -2217,142 +2188,149 @@ msgstr "obecna więcej niż jedna sekcja definicji wersji\n" #: src/elflint.c:3019 #, c-format msgid "section [%2d] '%s': more than one BASE definition\n" -msgstr "sekcja [%2d] '%s': jest więcej niż jedna definicja BASE\n" +msgstr "sekcja [%2d] \"%s\": jest więcej niż jedna definicja BASE\n" #: src/elflint.c:3023 #, c-format msgid "section [%2d] '%s': BASE definition must have index VER_NDX_GLOBAL\n" -msgstr "sekcja [%2d] '%s': definicja BASE musi mieć indeks VER_NDX_GLOBAL\n" +msgstr "sekcja [%2d] \"%s\": definicja BASE musi mieć indeks VER_NDX_GLOBAL\n" #: src/elflint.c:3029 #, c-format msgid "section [%2d] '%s': entry %d has unknown flag\n" -msgstr "sekcja [%2d] '%s': wpis %d ma nieznaną flagę\n" +msgstr "sekcja [%2d] \"%s\": wpis %d ma nieznaną flagę\n" #: src/elflint.c:3053 #, c-format msgid "section [%2d] '%s': entry %d has invalid name reference\n" -msgstr "sekcja [%2d] '%s': wpis %d ma błędne odniesienie do nazwy\n" +msgstr "sekcja [%2d] \"%s\": wpis %d ma błędne odniesienie do nazwy\n" #: src/elflint.c:3060 #, c-format msgid "section [%2d] '%s': entry %d has wrong hash value: %#x, expected %#x\n" -msgstr "sekcja [%2d] '%s': wpis %d ma złą wartość hasza: %#x, oczekiwano %#x\n" +msgstr "" +"sekcja [%2d] \"%s\": wpis %d ma złą wartość hasza: %#x, oczekiwano %#x\n" #: src/elflint.c:3069 #, c-format msgid "section [%2d] '%s': entry %d has duplicate version name '%s'\n" -msgstr "sekcja [%2d] '%s': wpis %d ma powtórzoną nazwę wersji '%s'\n" +msgstr "sekcja [%2d] \"%s\": wpis %d ma powtórzoną nazwę wersji \"%s\"\n" #: src/elflint.c:3088 #, c-format msgid "" "section [%2d] '%s': entry %d has invalid name reference in auxiliary data\n" msgstr "" -"sekcja [%2d] '%s': wpis %d ma błędne odniesienie do nazwy w danych " +"sekcja [%2d] \"%s\": wpis %d ma błędne odniesienie do nazwy w danych " "dodatkowych\n" #: src/elflint.c:3103 #, c-format msgid "section [%2d] '%s': entry %d has wrong next field in auxiliary data\n" -msgstr "sekcja [%2d] '%s': wpis %d ma złe następne pole w danych dodatkowych\n" +msgstr "" +"sekcja [%2d] \"%s\": wpis %d ma złe następne pole w danych dodatkowych\n" #: src/elflint.c:3125 #, c-format msgid "section [%2d] '%s': no BASE definition\n" -msgstr "sekcja [%2d] '%s': brak definicji BASE\n" +msgstr "sekcja [%2d] \"%s\": brak definicji BASE\n" #: src/elflint.c:3141 #, c-format msgid "section [%2d] '%s': unknown parent version '%s'\n" -msgstr "sekcja [%2d] '%s': nieznana wersja rodzica '%s'\n" +msgstr "sekcja [%2d] \"%s\": nieznana wersja rodzica \"%s\"\n" #: src/elflint.c:3154 #, fuzzy, c-format msgid "section [%2d] '%s': empty object attributes section\n" -msgstr "sekcja [%2d] '%s': nie można pobrać danych sekcji\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać danych sekcji\n" #: src/elflint.c:3175 #, fuzzy, c-format msgid "section [%2d] '%s': unrecognized attribute format\n" -msgstr "sekcja [%2d] '%s': zawiera wpis %s, ale nie %s\n" +msgstr "sekcja [%2d] \"%s\": zawiera wpis %s, ale nie %s\n" #: src/elflint.c:3191 #, fuzzy, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute section\n" -msgstr "sekcja [%2d] '%s': wpis %d ma złe następne pole w danych dodatkowych\n" +msgstr "" +"sekcja [%2d] \"%s\": wpis %d ma złe następne pole w danych dodatkowych\n" #: src/elflint.c:3200 #, fuzzy, c-format msgid "section [%2d] '%s': offset %zu: invalid length in attribute section\n" -msgstr "sekcja [%2d] '%s': błędny typ sekcji docelowej\n" +msgstr "sekcja [%2d] \"%s\": błędny typ sekcji docelowej\n" #: src/elflint.c:3212 #, fuzzy, c-format msgid "section [%2d] '%s': offset %zu: unterminated vendor name string\n" -msgstr "sekcja [%2d] '%s': wpis %zu: nieznany znacznik\n" +msgstr "sekcja [%2d] \"%s\": wpis %zu: nieznany znacznik\n" #: src/elflint.c:3229 #, fuzzy, c-format msgid "" "section [%2d] '%s': offset %zu: endless ULEB128 in attribute subsection tag\n" -msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n" #: src/elflint.c:3238 #, fuzzy, c-format msgid "section [%2d] '%s': offset %zu: truncated attribute section\n" -msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n" #: src/elflint.c:3247 #, fuzzy, c-format msgid "" "section [%2d] '%s': offset %zu: zero length field in attribute subsection\n" -msgstr "sekcja [%2d] '%s': wpis %zu: użyto znacznika %s poziomu 2\n" +msgstr "sekcja [%2d] \"%s\": wpis %zu: użyto znacznika %s poziomu 2\n" #: src/elflint.c:3260 #, fuzzy, c-format msgid "" "section [%2d] '%s': offset %zu: invalid length in attribute subsection\n" -msgstr "sekcja [%2d] '%s': błędny typ sekcji docelowej\n" +msgstr "sekcja [%2d] \"%s\": błędny typ sekcji docelowej\n" #: src/elflint.c:3271 #, fuzzy, c-format msgid "" "section [%2d] '%s': offset %zu: attribute subsection has unexpected tag %u\n" -msgstr "sekcja [%2d] '%s': wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" +msgstr "" +"sekcja [%2d] \"%s\": wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" #: src/elflint.c:3289 #, fuzzy, c-format msgid "section [%2d] '%s': offset %zu: endless ULEB128 in attribute tag\n" -msgstr "sekcja [%2d] '%s': wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" +msgstr "" +"sekcja [%2d] \"%s\": wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" #: src/elflint.c:3300 #, fuzzy, c-format msgid "section [%2d] '%s': offset %zu: unterminated string in attribute\n" -msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n" #: src/elflint.c:3313 #, fuzzy, c-format msgid "section [%2d] '%s': offset %zu: unrecognized attribute tag %u\n" -msgstr "sekcja [%2d] '%s': wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" +msgstr "" +"sekcja [%2d] \"%s\": wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" #: src/elflint.c:3317 #, fuzzy, c-format msgid "" "section [%2d] '%s': offset %zu: unrecognized %s attribute value %<PRIu64>\n" -msgstr "sekcja [%2d] '%s': symbol %zu: błędna wartość nazwy\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: błędna wartość nazwy\n" #: src/elflint.c:3327 #, fuzzy, c-format msgid "section [%2d] '%s': offset %zu: vendor '%s' unknown\n" -msgstr "sekcja [%2d] '%s': wpis %zu: nieznany znacznik\n" +msgstr "sekcja [%2d] \"%s\": wpis %zu: nieznany znacznik\n" #: src/elflint.c:3333 #, fuzzy, c-format msgid "" "section [%2d] '%s': offset %zu: extra bytes after last attribute section\n" -msgstr "sekcja [%2d] '%s': wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" +msgstr "" +"sekcja [%2d] \"%s\": wpis %zu: więcej niż jeden wpis ze znacznikiem %s\n" #: src/elflint.c:3422 #, c-format @@ -2424,7 +2402,7 @@ msgstr "" #: src/elflint.c:3466 #, c-format msgid "cannot get section header for section [%2zu] '%s': %s\n" -msgstr "nie można pobrać nagłówka sekcji dla sekcji [%2zu] '%s': %s\n" +msgstr "nie można pobrać nagłówka sekcji dla sekcji [%2zu] \"%s\": %s\n" #: src/elflint.c:3475 #, c-format @@ -2434,51 +2412,53 @@ msgstr "sekcja [%2zu]: błędna nazwa\n" #: src/elflint.c:3502 #, c-format msgid "section [%2d] '%s' has wrong type: expected %s, is %s\n" -msgstr "sekcja [%2d] '%s' ma zły typ: oczekiwano %s, jest %s\n" +msgstr "sekcja [%2d] \"%s\" ma zły typ: oczekiwano %s, jest %s\n" #: src/elflint.c:3518 #, c-format msgid "section [%2zu] '%s' has wrong flags: expected %s, is %s\n" -msgstr "sekcja [%2zu] '%s' ma złe flagi: oczekiwano %s, jest %s\n" +msgstr "sekcja [%2zu] \"%s\" ma złe flagi: oczekiwano %s, jest %s\n" #: src/elflint.c:3535 #, c-format msgid "" "section [%2zu] '%s' has wrong flags: expected %s and possibly %s, is %s\n" msgstr "" -"sekcja [%2zu] '%s' ma złe flagi: oczekiwano %s i być może %s, jest %s\n" +"sekcja [%2zu] \"%s\" ma złe flagi: oczekiwano %s i być może %s, jest %s\n" #: src/elflint.c:3553 #, c-format msgid "section [%2zu] '%s' present in object file\n" -msgstr "sekcja [%2zu] '%s' obecna w pliku obiektu\n" +msgstr "sekcja [%2zu] \"%s\" obecna w pliku obiektu\n" #: src/elflint.c:3559 src/elflint.c:3591 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag set but there is no loadable segment\n" msgstr "" -"sekcja [%2zu] '%s' ma flagę SHF_ALLOC, ale nie ma segmentu ładowalnego\n" +"sekcja [%2zu] \"%s\" ma flagę SHF_ALLOC, ale nie ma segmentu ładowalnego\n" #: src/elflint.c:3564 src/elflint.c:3596 #, c-format msgid "" "section [%2zu] '%s' has SHF_ALLOC flag not set but there are loadable " "segments\n" -msgstr "sekcja [%2zu] '%s' nie ma flagi SHF_ALLOC, ale są segmenty ładowalne\n" +msgstr "" +"sekcja [%2zu] \"%s\" nie ma flagi SHF_ALLOC, ale są segmenty ładowalne\n" #: src/elflint.c:3572 #, c-format msgid "" "section [%2zu] '%s' is extension section index table in non-object file\n" msgstr "" -"sekcja [%2zu] '%s' jest tabelą indeksów sekcji rozszerzeń w pliku nie-" +"sekcja [%2zu] \"%s\" jest tabelą indeksów sekcji rozszerzeń w pliku nie-" "obiektowym\n" #: src/elflint.c:3615 #, c-format msgid "section [%2zu] '%s': size not multiple of entry size\n" -msgstr "sekcja [%2zu] '%s': rozmiar nie jest wielokrotnością rozmiaru wpisu\n" +msgstr "" +"sekcja [%2zu] \"%s\": rozmiar nie jest wielokrotnością rozmiaru wpisu\n" #: src/elflint.c:3620 #, c-format @@ -2488,58 +2468,61 @@ msgstr "nie można pobrać nagłówka sekcji\n" #: src/elflint.c:3630 #, c-format msgid "section [%2zu] '%s' has unsupported type %d\n" -msgstr "sekcja [%2zu] '%s' ma nieobsługiwany typ %d\n" +msgstr "sekcja [%2zu] \"%s\" ma nieobsługiwany typ %d\n" #: src/elflint.c:3644 #, c-format msgid "" "section [%2zu] '%s' contains invalid processor-specific flag(s) %#<PRIx64>\n" msgstr "" -"sekcja [%2zu] '%s' zawiera błędne flagi specyficzne dla procesora %" +"sekcja [%2zu] \"%s\" zawiera błędne flagi specyficzne dla procesora %" "#<PRIx64>\n" #: src/elflint.c:3651 #, c-format msgid "section [%2zu] '%s' contains unknown flag(s) %#<PRIx64>\n" -msgstr "sekcja [%2zu] '%s' zawiera nieznane flagi %#<PRIx64>\n" +msgstr "sekcja [%2zu] \"%s\" zawiera nieznane flagi %#<PRIx64>\n" #: src/elflint.c:3659 #, c-format msgid "section [%2zu] '%s': thread-local data sections address not zero\n" msgstr "" -"sekcja [%2zu] '%s': adres sekcji danych lokalnych dla wątków nie jest zerem\n" +"sekcja [%2zu] \"%s\": adres sekcji danych lokalnych dla wątków nie jest " +"zerem\n" #: src/elflint.c:3667 #, c-format msgid "section [%2zu] '%s': invalid section reference in link value\n" -msgstr "sekcja [%2zu] '%s': błędne odwołanie do sekcji w wartości dowiązania\n" +msgstr "" +"sekcja [%2zu] \"%s\": błędne odwołanie do sekcji w wartości dowiązania\n" #: src/elflint.c:3672 #, c-format msgid "section [%2zu] '%s': invalid section reference in info value\n" msgstr "" -"sekcja [%2zu] '%s': błędne odwołanie do sekcji w wartości informacyjnej\n" +"sekcja [%2zu] \"%s\": błędne odwołanie do sekcji w wartości informacyjnej\n" #: src/elflint.c:3679 #, c-format msgid "section [%2zu] '%s': strings flag set without merge flag\n" -msgstr "sekcja [%2zu] '%s': flaga łańcuchów ustawiona bez flagi merge\n" +msgstr "sekcja [%2zu] \"%s\": flaga łańcuchów ustawiona bez flagi merge\n" #: src/elflint.c:3684 #, c-format msgid "section [%2zu] '%s': merge flag set but entry size is zero\n" msgstr "" -"sekcja [%2zu] '%s': flaga merge ustawiona, ale rozmiar wpisu jest zerowy\n" +"sekcja [%2zu] \"%s\": flaga merge ustawiona, ale rozmiar wpisu jest zerowy\n" #: src/elflint.c:3702 #, fuzzy, c-format msgid "section [%2zu] '%s' has unexpected type %d for an executable section\n" -msgstr "sekcja [%2zu] '%s' ma nieobsługiwany typ %d\n" +msgstr "sekcja [%2zu] \"%s\" ma nieobsługiwany typ %d\n" #: src/elflint.c:3711 #, fuzzy, c-format msgid "section [%2zu] '%s' is both executable and writable\n" -msgstr "sekcja [%2zu] '%s': rozmiar nie jest wielokrotnością rozmiaru wpisu\n" +msgstr "" +"sekcja [%2zu] \"%s\": rozmiar nie jest wielokrotnością rozmiaru wpisu\n" #: src/elflint.c:3738 #, c-format @@ -2547,8 +2530,8 @@ msgid "" "section [%2zu] '%s' not fully contained in segment of program header entry %" "d\n" msgstr "" -"sekcja [%2zu] '%s' nie jest w całości zawarta w segmencie wpisu %d nagłówka " -"programu\n" +"sekcja [%2zu] \"%s\" nie jest w całości zawarta w segmencie wpisu %d " +"nagłówka programu\n" #: src/elflint.c:3746 #, c-format @@ -2556,8 +2539,8 @@ msgid "" "section [%2zu] '%s' has type NOBITS but is read from the file in segment of " "program header entry %d\n" msgstr "" -"sekcja [%2zu] '%s' ma typ NOBITS, a jest czytana z pliku w segmencie wpisu %" -"d nagłówka programu\n" +"sekcja [%2zu] \"%s\" ma typ NOBITS, a jest czytana z pliku w segmencie wpisu " +"%d nagłówka programu\n" #: src/elflint.c:3755 #, c-format @@ -2565,27 +2548,28 @@ msgid "" "section [%2zu] '%s' has not type NOBITS but is not read from the file in " "segment of program header entry %d\n" msgstr "" -"sekcja [%2zu] '%s' nie ma typu NOBITS, a nie jest czytana z pliku w " +"sekcja [%2zu] \"%s\" nie ma typu NOBITS, a nie jest czytana z pliku w " "segmencie wpisu %d nagłówka programu\n" #: src/elflint.c:3766 #, fuzzy, c-format msgid "section [%2zu] '%s' is executable in nonexecutable segment %d\n" msgstr "" -"sekcja [%2zu] '%s' jest tabelą indeksów sekcji rozszerzeń w pliku nie-" +"sekcja [%2zu] \"%s\" jest tabelą indeksów sekcji rozszerzeń w pliku nie-" "obiektowym\n" #: src/elflint.c:3776 #, fuzzy, c-format msgid "section [%2zu] '%s' is writable in unwritable segment %d\n" -msgstr "sekcja [%2zu] '%s': rozmiar nie jest wielokrotnością rozmiaru wpisu\n" +msgstr "" +"sekcja [%2zu] \"%s\": rozmiar nie jest wielokrotnością rozmiaru wpisu\n" #: src/elflint.c:3786 #, c-format msgid "" "section [%2zu] '%s': alloc flag set but section not in any loaded segment\n" msgstr "" -"sekcja [%2zu] '%s': ma flagę alloc, ale sekcja nie jest w żadnym segmencie " +"sekcja [%2zu] \"%s\": ma flagę alloc, ale sekcja nie jest w żadnym segmencie " "ładowalnym\n" #: src/elflint.c:3792 @@ -2594,7 +2578,7 @@ msgid "" "section [%2zu] '%s': ELF header says this is the section header string table " "but type is not SHT_TYPE\n" msgstr "" -"sekcja [%2zu] '%s': według nagłówka ELF to jest tabela łańcuchów nagłówków " +"sekcja [%2zu] \"%s\": według nagłówka ELF to jest tabela łańcuchów nagłówków " "sekcji, ale typ nie jest SHT_TYPE\n" #: src/elflint.c:3800 @@ -2602,7 +2586,7 @@ msgstr "" msgid "" "section [%2zu] '%s': relocatable files cannot have dynamic symbol tables\n" msgstr "" -"sekcja [%2zu] '%s': pliki relokowalne nie mogą mieć tabeli symboli " +"sekcja [%2zu] \"%s\": pliki relokowalne nie mogą mieć tabeli symboli " "dynamicznych\n" #: src/elflint.c:3851 @@ -2696,7 +2680,7 @@ msgstr "phdr[%d]: brak zdefiniowanych wpisów note dla typu pliku\n" #: src/elflint.c:4076 #, fuzzy, c-format msgid "section [%2d] '%s': cannot get content of note section\n" -msgstr "sekcja [%2d] '%s': nie można pobrać danych sekcji\n" +msgstr "sekcja [%2d] \"%s\": nie można pobrać danych sekcji\n" #: src/elflint.c:4079 #, fuzzy, c-format @@ -2796,7 +2780,7 @@ msgstr "" #: src/elflint.c:4286 #, fuzzy, c-format msgid "section [%2zu] '%s' must be allocated\n" -msgstr "sekcja [%2d] '%s': nie oznaczona do przydzielenia\n" +msgstr "sekcja [%2d] \"%s\": nie oznaczona do przydzielenia\n" #: src/elflint.c:4290 #, c-format @@ -2806,7 +2790,7 @@ msgstr "" #: src/elflint.c:4293 #, fuzzy, c-format msgid "section [%2zu] '%s' must not be writable\n" -msgstr "sekcja [%2zu] '%s' obecna w pliku obiektu\n" +msgstr "sekcja [%2zu] \"%s\" obecna w pliku obiektu\n" #: src/elflint.c:4298 #, c-format @@ -2816,7 +2800,7 @@ msgstr "" #: src/elflint.c:4301 #, fuzzy, c-format msgid "section [%2zu] '%s' must not be executable\n" -msgstr "sekcja [%2zu] '%s' obecna w pliku obiektu\n" +msgstr "sekcja [%2zu] \"%s\" obecna w pliku obiektu\n" #: src/elflint.c:4312 #, c-format @@ -2878,12 +2862,12 @@ msgstr "[PLIK...]" #: src/findtextrel.c:246 #, c-format msgid "cannot get ELF header '%s': %s" -msgstr "nie można pobrać nagłówka ELF '%s': %s" +msgstr "nie można pobrać nagłówka ELF \"%s\": %s" #: src/findtextrel.c:257 #, c-format msgid "'%s' is not a DSO or PIE" -msgstr "'%s' nie jest DSO ani PIE" +msgstr "\"%s\" nie jest DSO ani PIE" #: src/findtextrel.c:274 #, c-format @@ -2898,7 +2882,7 @@ msgstr "nie można odczytać sekcji dynamicznej: %s" #: src/findtextrel.c:307 #, c-format msgid "no text relocations reported in '%s'" -msgstr "brak relokacji tekstu w '%s'" +msgstr "brak relokacji tekstu w \"%s\"" #: src/findtextrel.c:319 #, c-format @@ -2918,12 +2902,12 @@ msgstr "nie można pobrać nagłówka sekcji dla sekcji %Zu: %s" #: src/findtextrel.c:409 #, c-format msgid "cannot get symbol table section %zu in '%s': %s" -msgstr "nie można pobrać sekcji tabeli symboli %zu w '%s': %s" +msgstr "nie można pobrać sekcji tabeli symboli %zu w \"%s\": %s" #: src/findtextrel.c:429 src/findtextrel.c:452 #, c-format msgid "cannot get relocation at index %d in section %zu in '%s': %s" -msgstr "nie można pobrać relokacji pod indeksem %d w sekcji %zu w '%s': %s" +msgstr "nie można pobrać relokacji pod indeksem %d w sekcji %zu w \"%s\": %s" #: src/findtextrel.c:517 #, c-format @@ -2934,7 +2918,8 @@ msgstr "%s nie został skompilowany z -fpic/-fPIC\n" #, c-format msgid "" "the file containing the function '%s' is not compiled with -fpic/-fPIC\n" -msgstr "plik zawierający funkcję '%s' nie został skompilowany z -fpic/-fPIC\n" +msgstr "" +"plik zawierający funkcję \"%s\" nie został skompilowany z -fpic/-fPIC\n" #: src/findtextrel.c:577 src/findtextrel.c:597 #, c-format @@ -2942,7 +2927,7 @@ msgid "" "the file containing the function '%s' might not be compiled with -fpic/-" "fPIC\n" msgstr "" -"plik zawierający funkcję '%s' mógł nie zostać skompilowany z -fpic/-fPIC\n" +"plik zawierający funkcję \"%s\" mógł nie zostać skompilowany z -fpic/-fPIC\n" #: src/findtextrel.c:585 #, c-format @@ -2950,8 +2935,8 @@ msgid "" "either the file containing the function '%s' or the file containing the " "function '%s' is not compiled with -fpic/-fPIC\n" msgstr "" -"plik zawierający funkcję '%s' lub plik zawierający funkcję '%s' nie został " -"skompilowany z -fpic/-fPIC\n" +"plik zawierający funkcję \"%s\" lub plik zawierający funkcję \"%s\" nie " +"został skompilowany z -fpic/-fPIC\n" #: src/findtextrel.c:605 #, c-format @@ -3248,7 +3233,7 @@ msgstr "błąd podczas przygotowywania linkowania" #: src/ld.c:356 #, c-format msgid "cannot open linker script '%s'" -msgstr "nie można otworzyć skryptu linkera '%s'" +msgstr "nie można otworzyć skryptu linkera \"%s\"" #: src/ld.c:397 #, c-format @@ -3273,12 +3258,12 @@ msgstr "nieznana opcja `-%c %s'" #: src/ld.c:646 #, c-format msgid "invalid page size value '%s': ignored" -msgstr "błędna wartość rozmiaru strony '%s': zignorowano" +msgstr "błędna wartość rozmiaru strony \"%s\": zignorowano" #: src/ld.c:687 #, fuzzy, c-format msgid "invalid hash style '%s'" -msgstr "błędne flagi maszyny: %s\n" +msgstr "błędne flagi maszyny: \"%s\"\n" #: src/ld.c:697 #, c-format @@ -3324,12 +3309,12 @@ msgstr "proszę spróbować jeszcze raz z odpowiednim parametrem '-m'" #: src/ld.c:1446 #, c-format msgid "cannot read version script '%s'" -msgstr "nie można odczytać skryptu wersji '%s'" +msgstr "nie można odczytać skryptu wersji \"%s\"" #: src/ld.c:1512 src/ld.c:1551 #, c-format msgid "duplicate definition of '%s' in linker script" -msgstr "powtórzona definicja '%s' w skrypcie linkera" +msgstr "powtórzona definicja \"%s\" w skrypcie linkera" #: src/ldgeneric.c:209 src/ldgeneric.c:5151 #, c-format @@ -3339,12 +3324,12 @@ msgstr "nie można utworzyć tabeli łańcuchów" #: src/ldgeneric.c:255 #, c-format msgid "cannot load ld backend library '%s': %s" -msgstr "nie można odczytać biblioteki backendu ld '%s': %s" +msgstr "nie można odczytać biblioteki backendu ld \"%s\": %s" #: src/ldgeneric.c:265 #, c-format msgid "cannot find init function in ld backend library '%s': %s" -msgstr "nie można znaleźć funkcji init w bibliotece backendu ld '%s': %s" +msgstr "nie można znaleźć funkcji init w bibliotece backendu ld \"%s\": %s" #: src/ldgeneric.c:310 #, c-format @@ -3371,7 +3356,7 @@ msgstr "Uwaga: typ `%s' zmienił się z %s w %s na %s w %s" msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s" msgstr "Uwaga: rozmiar `%s' zmienił się z %<PRIu64> w %s na %<PRIu64> w %s" -#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543 +#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543 #, c-format msgid "cannot determine number of sections: %s" msgstr "nie można określić liczby sekcji: %s" @@ -3394,12 +3379,12 @@ msgstr "%s: nie można pobrać danych grupy sekcji: %s" #: src/ldgeneric.c:840 #, c-format msgid "%s: section '%s' with group flag set does not belong to any group" -msgstr "%s: sekcja '%s' z ustawioną flagą grupy nie należy do żadnej grupy" +msgstr "%s: sekcja \"%s\" z ustawioną flagą grupy nie należy do żadnej grupy" #: src/ldgeneric.c:885 #, fuzzy, c-format msgid "%s: section [%2d] '%s' is not in the correct section group" -msgstr "%s: sekcja [%2d] '%s' jest w więcej niż jednej grupie sekcji" +msgstr "%s: sekcja [%2d] \"%s\" jest w więcej niż jednej grupie sekcji" #: src/ldgeneric.c:1156 src/ldgeneric.c:1413 src/ldgeneric.c:1422 #: src/ldgeneric.c:1481 src/ldgeneric.c:1490 src/ldgeneric.c:1753 @@ -3416,24 +3401,24 @@ msgstr "%s: tylko pliki typu ET_REL mogą zawierać grupy sekcji" #: src/ldgeneric.c:1302 #, c-format msgid "%s: cannot determine signature of section group [%2zd] '%s': %s" -msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] '%s': %s" +msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] \"%s\": %s" #: src/ldgeneric.c:1314 #, fuzzy, c-format msgid "%s: cannot get content of section group [%2zd] '%s': %s'" -msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] '%s': %s" +msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] \"%s\": %s" #: src/ldgeneric.c:1328 #, fuzzy, c-format msgid "" "%s: group member %zu of section group [%2zd] '%s' has too high index: %" "<PRIu32>" -msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] '%s': %s" +msgstr "%s: nie można określić sygnatury grupy sekcji [%2zd] \"%s\": %s" #: src/ldgeneric.c:1350 #, c-format msgid "%s: section '%s' has unknown type: %d" -msgstr "%s: sekcja '%s' ma nieznany typ: %d" +msgstr "%s: sekcja \"%s\" ma nieznany typ: %d" #: src/ldgeneric.c:1729 #, c-format @@ -3464,12 +3449,12 @@ msgstr "%s: nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji: #, c-format msgid "cannot use DSO '%s' when generating relocatable object file" msgstr "" -"nie można użyć DSO '%s' podczas generowania pliku obiektu relokowalnego" +"nie można użyć DSO \"%s\" podczas generowania pliku obiektu relokowalnego" #: src/ldgeneric.c:2158 #, c-format msgid "input file '%s' ignored" -msgstr "plik wejściowy '%s' zignorowany" +msgstr "plik wejściowy \"%s\" zignorowany" #: src/ldgeneric.c:2372 #, c-format @@ -3497,7 +3482,7 @@ msgstr "nie można utworzyć sekcji dla pliku wyjściowego: %s" #: src/ldgeneric.c:3444 #, c-format msgid "address computation expression contains variable '%s'" -msgstr "wyrażenie obliczenia adresu zawiera zmienną '%s'" +msgstr "wyrażenie obliczenia adresu zawiera zmienną \"%s\"" #: src/ldgeneric.c:3489 #, c-format @@ -3512,7 +3497,7 @@ msgstr "" #, c-format msgid "cannot find entry symbol '%s': defaulting to %#0*<PRIx64>" msgstr "" -"nie można znaleźć symbolu wejściowego '%s': użycie domyślnego %#0*<PRIx64>" +"nie można znaleźć symbolu wejściowego \"%s\": użycie domyślnego %#0*<PRIx64>" #: src/ldgeneric.c:3690 #, c-format @@ -3607,7 +3592,7 @@ msgstr "błąd wewnętrzny: sekcja nobits po sekcji nobits" msgid "cannot get header of 0th section: %s" msgstr "nie można pobrać nagłówka zerowej sekcji: %s" -#: src/ldgeneric.c:6941 src/unstrip.c:1808 +#: src/ldgeneric.c:6941 src/unstrip.c:1820 #, c-format msgid "cannot update ELF header: %s" msgstr "nie można uaktualnić nagłówka ELF: %s" @@ -3643,7 +3628,7 @@ msgstr "" #: src/ldgeneric.c:7141 #, c-format msgid "no machine specific '%s' implementation" -msgstr "brak implementacji '%s' specyficznej dla maszyny" +msgstr "brak implementacji \"%s\" specyficznej dla maszyny" #: src/ldscript.y:178 msgid "mode for segment invalid\n" @@ -3652,25 +3637,25 @@ msgstr "błędne atrybuty dla segmentu\n" #: src/ldscript.y:465 #, c-format msgid "while reading version script '%s': %s at line %d" -msgstr "podczas odczytu skryptu wersji '%s': %s w linii %d" +msgstr "podczas odczytu skryptu wersji \"%s\": %s w linii %d" #: src/ldscript.y:466 #, c-format msgid "while reading linker script '%s': %s at line %d" -msgstr "podczas odczytu skryptu linkera '%s': %s w linii %d" +msgstr "podczas odczytu skryptu linkera \"%s\": %s w linii %d" #: src/ldscript.y:745 #, fuzzy, c-format msgid "symbol '%s' is declared both local and global for unnamed version" msgstr "" -"symbol '%s' zadeklarowany jednocześnie lokalny i globalny dla nienazwanej " +"symbol \"%s\" zadeklarowany jednocześnie lokalny i globalny dla nienazwanej " "wersji" #: src/ldscript.y:747 #, fuzzy, c-format msgid "symbol '%s' is declared both local and global for version '%s'" msgstr "" -"symbol '%s' zadeklarowany jednocześnie lokalny i globalny dla wersji '%s'" +"symbol \"%s\" zadeklarowany jednocześnie lokalny i globalny dla wersji \"%s\"" #: src/ldscript.y:767 src/ldscript.y:774 #, c-format @@ -3770,7 +3755,7 @@ msgstr "%s: BŁĄD WEWNĘTRZNY %d (%s-%s): %s" #: src/strip.c:1816 #, c-format msgid "while closing '%s'" -msgstr "podczas zamykania '%s'" +msgstr "podczas zamykania \"%s\"" #: src/nm.c:402 src/objdump.c:296 src/strip.c:359 #, c-format @@ -3810,11 +3795,11 @@ msgstr "%s%s%s: format pliku nie rozpoznany" msgid "cannot create search tree" msgstr "nie można utworzyć drzewa wyszukiwania" -#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885 -#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549 -#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265 -#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939 -#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604 +#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886 +#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550 +#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266 +#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940 +#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794 #: src/size.c:425 src/size.c:499 src/strip.c:483 #, c-format msgid "cannot get section header string table index" @@ -3907,20 +3892,20 @@ msgstr "" msgid "Show information from FILEs (a.out by default)." msgstr "Podanie listy symboli z PLIKU (domyślnie a.out)." -#: src/objdump.c:236 src/readelf.c:430 +#: src/objdump.c:236 src/readelf.c:431 msgid "No operation specified.\n" msgstr "Nie podano operacji.\n" #: src/objdump.c:274 src/objdump.c:286 #, fuzzy, c-format msgid "while close `%s'" -msgstr "podczas zamykania '%s'" +msgstr "podczas zamykania \"%s\"" -#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818 +#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819 msgid "INVALID SYMBOL" msgstr "BŁĘDNY SYMBOL" -#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851 +#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852 msgid "INVALID SECTION" msgstr "BŁĘDNA SEKCJA" @@ -3962,7 +3947,7 @@ msgstr "Wymagana nazwa archiwum" #: src/ranlib.c:194 #, c-format msgid "'%s' is no archive" -msgstr "'%s' nie jest archiwum" +msgstr "\"%s\" nie jest archiwum" #: src/ranlib.c:229 #, c-format @@ -4026,9 +4011,8 @@ msgid "Display sections for exception handling" msgstr "" #: src/readelf.c:93 -#, fuzzy msgid "Additional output selection:" -msgstr "Wybór wyjścia:" +msgstr "Dodatkowy wybór wyjścia:" #: src/readelf.c:95 #, fuzzy @@ -4065,87 +4049,87 @@ msgstr "" msgid "Print information from ELF file in human-readable form." msgstr "Wypisanie informacji z pliku ELF w postaci czytelnej dla człowieka" -#: src/readelf.c:401 +#: src/readelf.c:402 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Nieznana sekcja debugowa DWARF `%s'.\n" -#: src/readelf.c:465 -#, fuzzy, c-format +#: src/readelf.c:466 +#, c-format msgid "cannot generate Elf descriptor: %s" -msgstr "nie można wygenerować deskryptora Elf: %s\n" +msgstr "nie można utworzyć deskryptora Elf: %s" -#: src/readelf.c:477 +#: src/readelf.c:478 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "" -#: src/readelf.c:482 +#: src/readelf.c:483 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "błąd podczas zamykania deskryptora Elf: %s" -#: src/readelf.c:574 +#: src/readelf.c:575 #, c-format msgid "cannot stat input file" msgstr "nie można wykonać stat na pliku wejściowym" -#: src/readelf.c:576 +#: src/readelf.c:577 #, c-format msgid "input file is empty" msgstr "plik wejściowy jest pusty" -#: src/readelf.c:578 -#, fuzzy, c-format +#: src/readelf.c:579 +#, c-format msgid "failed reading '%s': %s" -msgstr "podczas zapisu '%s': %s" +msgstr "odczytanie \"%s\" nie powiodło się: %s" -#: src/readelf.c:614 +#: src/readelf.c:615 #, c-format msgid "cannot read ELF header: %s" msgstr "nie można odczytać nagłówka ELF: %s" -#: src/readelf.c:622 +#: src/readelf.c:623 #, c-format msgid "cannot create EBL handle" msgstr "nie można utworzyć uchwytu EBL" -#: src/readelf.c:635 -#, fuzzy, c-format +#: src/readelf.c:636 +#, c-format msgid "cannot determine number of program headers: %s" -msgstr "nie można określić liczby sekcji: %s" +msgstr "nie można określić liczby nagłówków programu: %s" -#: src/readelf.c:721 +#: src/readelf.c:722 msgid "NONE (None)" msgstr "NONE (Żaden)" -#: src/readelf.c:722 +#: src/readelf.c:723 msgid "REL (Relocatable file)" msgstr "REL (Plik relokowalny)" -#: src/readelf.c:723 +#: src/readelf.c:724 msgid "EXEC (Executable file)" msgstr "EXEC (Plik wykonywalny)" -#: src/readelf.c:724 +#: src/readelf.c:725 msgid "DYN (Shared object file)" msgstr "DYN (Plik obiektu dzielonego)" -#: src/readelf.c:725 +#: src/readelf.c:726 msgid "CORE (Core file)" msgstr "CORE (Plik core)" -#: src/readelf.c:730 +#: src/readelf.c:731 #, c-format msgid "OS Specific: (%x)\n" msgstr "Zależny od systemu: (%x)\n" -#: src/readelf.c:732 +#: src/readelf.c:733 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Zależny od procesora: (%x)\n" -#: src/readelf.c:742 +#: src/readelf.c:743 msgid "" "ELF Header:\n" " Magic: " @@ -4153,7 +4137,7 @@ msgstr "" "Nagłówek ELF:\n" " Magic: " -#: src/readelf.c:746 +#: src/readelf.c:747 #, c-format msgid "" "\n" @@ -4162,117 +4146,117 @@ msgstr "" "\n" " Klasa: %s\n" -#: src/readelf.c:751 +#: src/readelf.c:752 #, c-format msgid " Data: %s\n" msgstr " Dane: %s\n" -#: src/readelf.c:757 +#: src/readelf.c:758 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Wersja Ident: %hhd %s\n" -#: src/readelf.c:759 src/readelf.c:776 +#: src/readelf.c:760 src/readelf.c:777 msgid "(current)" msgstr "(aktualna)" -#: src/readelf.c:763 +#: src/readelf.c:764 #, c-format msgid " OS/ABI: %s\n" msgstr " OS/ABI: %s\n" -#: src/readelf.c:766 +#: src/readelf.c:767 #, c-format msgid " ABI Version: %hhd\n" msgstr " Wersja ABI: %hhd\n" -#: src/readelf.c:769 +#: src/readelf.c:770 msgid " Type: " msgstr " Typ: " -#: src/readelf.c:772 +#: src/readelf.c:773 #, c-format msgid " Machine: %s\n" -msgstr " Maszyna: %s\n" +msgstr " Komputer: %s\n" -#: src/readelf.c:774 +#: src/readelf.c:775 #, c-format msgid " Version: %d %s\n" msgstr " Wersja: %d %s\n" -#: src/readelf.c:778 +#: src/readelf.c:779 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " Adres punktu wejściowego: %#<PRIx64>\n" -#: src/readelf.c:781 +#: src/readelf.c:782 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " Początek nagłówków programu: %<PRId64> %s\n" -#: src/readelf.c:782 src/readelf.c:785 +#: src/readelf.c:783 src/readelf.c:786 msgid "(bytes into file)" msgstr "(bajtów w pliku)" -#: src/readelf.c:784 +#: src/readelf.c:785 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " Początek nagłówków sekcji: %<PRId64> %s\n" -#: src/readelf.c:787 +#: src/readelf.c:788 #, c-format msgid " Flags: %s\n" msgstr " Flagi: %s\n" -#: src/readelf.c:790 +#: src/readelf.c:791 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Rozmiar tego nagłówka: %<PRId16> %s\n" -#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811 +#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812 msgid "(bytes)" msgstr "(bajtów)" -#: src/readelf.c:793 +#: src/readelf.c:794 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " Rozmiar wpisów nagłówka programu: %<PRId16> %s\n" -#: src/readelf.c:796 +#: src/readelf.c:797 #, fuzzy, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " Liczba wpisów nagłówków programu: %<PRId16>\n" -#: src/readelf.c:803 -#, fuzzy, c-format +#: src/readelf.c:804 +#, c-format msgid " (%<PRIu32> in [0].sh_info)" -msgstr " (%<PRIu32> w [0].sh_link)" +msgstr " (%<PRIu32> w [0].sh_info)" -#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837 +#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838 msgid " ([0] not available)" msgstr " ([0] niedostępny)" -#: src/readelf.c:810 +#: src/readelf.c:811 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " Rozmiar wpisów nagłówka sekcji: %<PRId16> %s\n" -#: src/readelf.c:813 +#: src/readelf.c:814 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " Liczba wpisów nagłówków sekcji: %<PRId16>" -#: src/readelf.c:820 +#: src/readelf.c:821 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> w [0].sh_size)" -#: src/readelf.c:833 +#: src/readelf.c:834 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> w [0].sh_link)" -#: src/readelf.c:841 +#: src/readelf.c:842 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4281,7 +4265,7 @@ msgstr "" " Indeks tabeli łańcuchów nagłówków sekcji: XINDEX%s\n" "\n" -#: src/readelf.c:845 +#: src/readelf.c:846 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4290,7 +4274,7 @@ msgstr "" " Indeks tabeli łańcuchów nagłówków sekcji: %<PRId16>\n" "\n" -#: src/readelf.c:877 +#: src/readelf.c:878 #, c-format msgid "" "There are %d section headers, starting at offset %#<PRIx64>:\n" @@ -4299,11 +4283,11 @@ msgstr "" "Jest %d nagłówków sekcji, zaczynających się od offsetu %#<PRIx64>:\n" "\n" -#: src/readelf.c:887 +#: src/readelf.c:888 msgid "Section Headers:" msgstr "Nagłówki sekcji:" -#: src/readelf.c:890 +#: src/readelf.c:891 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4311,7 +4295,7 @@ msgstr "" "[Nr] Nazwa Typ Adres Offset Rozm ES Flagi Lk " "Inf Al" -#: src/readelf.c:892 +#: src/readelf.c:893 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4319,32 +4303,32 @@ msgstr "" "[Nr] Nazwa Typ Adres Offset Rozmiar ES " "Flagi Lk Inf Al" -#: src/readelf.c:899 src/readelf.c:1052 +#: src/readelf.c:900 src/readelf.c:1053 #, c-format msgid "cannot get section: %s" msgstr "nie można pobrać sekcji: %s" -#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353 -#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553 -#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244 -#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588 -#: src/unstrip.c:1778 +#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353 +#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558 +#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250 +#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593 +#: src/unstrip.c:1782 #, c-format msgid "cannot get section header: %s" msgstr "nie można pobrać nagłówka sekcji: %s" -#: src/readelf.c:964 +#: src/readelf.c:965 msgid "Program Headers:" msgstr "Nagłówki programu:" -#: src/readelf.c:966 +#: src/readelf.c:967 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Typ Offset AdresWirt AdresFiz RozmPlik RozmPam Flg " "Wyrównanie" -#: src/readelf.c:969 +#: src/readelf.c:970 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4352,12 +4336,12 @@ msgstr "" " Typ Offset AdresWirtualny AdresFizyczny RozmPlik " "RozmPam Flg Wyrównanie" -#: src/readelf.c:1009 +#: src/readelf.c:1010 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Wywołanie interpretera programu: %s]\n" -#: src/readelf.c:1030 +#: src/readelf.c:1031 msgid "" "\n" " Section to Segment mapping:\n" @@ -4367,12 +4351,12 @@ msgstr "" " Odwzorowanie sekcji na segmenty:\n" " Segment Sekcje..." -#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870 +#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883 #, c-format msgid "cannot get program header: %s" msgstr "nie można pobrać nagłówka programu: %s" -#: src/readelf.c:1175 +#: src/readelf.c:1176 #, c-format msgid "" "\n" @@ -4382,15 +4366,15 @@ msgid_plural "" "COMDAT section group [%2zu] '%s' with signature '%s' contains %zu entries:\n" msgstr[0] "" "\n" -"Grupa sekcji COMDAT [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpis:\n" +"Grupa sekcji COMDAT [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpis:\n" msgstr[1] "" "\n" -"Grupa sekcji COMDAT [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpisy:\n" +"Grupa sekcji COMDAT [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpisy:\n" msgstr[2] "" "\n" -"Grupa sekcji COMDAT [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpisów:\n" +"Grupa sekcji COMDAT [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpisów:\n" -#: src/readelf.c:1180 +#: src/readelf.c:1181 #, c-format msgid "" "\n" @@ -4400,23 +4384,23 @@ msgid_plural "" "Section group [%2zu] '%s' with signature '%s' contains %zu entries:\n" msgstr[0] "" "\n" -"Grupa sekcji [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpis:\n" +"Grupa sekcji [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpis:\n" msgstr[1] "" "\n" -"Grupa sekcji [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpisy:\n" +"Grupa sekcji [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpisy:\n" msgstr[2] "" "\n" -"Grupa sekcji [%2zu] '%s' z sygnaturą '%s' zawiera %zu wpisów:\n" +"Grupa sekcji [%2zu] \"%s\" z sygnaturą \"%s\" zawiera %zu wpisów:\n" -#: src/readelf.c:1188 +#: src/readelf.c:1189 msgid "<INVALID SYMBOL>" msgstr "<BŁĘDNY SYMBOL>" -#: src/readelf.c:1202 +#: src/readelf.c:1203 msgid "<INVALID SECTION>" msgstr "<BŁĘDNA SEKCJA>" -#: src/readelf.c:1353 +#: src/readelf.c:1354 #, c-format msgid "" "\n" @@ -4442,36 +4426,36 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%" "s'\n" -#: src/readelf.c:1365 +#: src/readelf.c:1366 msgid " Type Value\n" msgstr " Typ Wartość\n" -#: src/readelf.c:1389 +#: src/readelf.c:1390 #, c-format msgid "Shared library: [%s]\n" msgstr "Biblioteka dzielona: [%s]\n" -#: src/readelf.c:1394 +#: src/readelf.c:1395 #, c-format msgid "Library soname: [%s]\n" msgstr "soname biblioteki: [%s]\n" -#: src/readelf.c:1399 +#: src/readelf.c:1400 #, c-format msgid "Library rpath: [%s]\n" msgstr "rpath biblioteki: [%s]\n" -#: src/readelf.c:1404 +#: src/readelf.c:1405 #, c-format msgid "Library runpath: [%s]\n" msgstr "runpath biblioteki: [%s]\n" -#: src/readelf.c:1424 +#: src/readelf.c:1425 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (bajtów)\n" -#: src/readelf.c:1534 src/readelf.c:1720 +#: src/readelf.c:1535 src/readelf.c:1721 #, c-format msgid "" "\n" @@ -4480,7 +4464,7 @@ msgstr "" "\n" "Błędna tabela symboli pod offsetem %#0<PRIx64>\n" -#: src/readelf.c:1552 src/readelf.c:1737 +#: src/readelf.c:1553 src/readelf.c:1738 #, c-format msgid "" "\n" @@ -4492,18 +4476,18 @@ msgid_plural "" "contains %d entries:\n" msgstr[0] "" "\n" -"Sekcja relokacji [%2zu] '%s' dla sekcji [%2u] '%s' pod offsetem %#0<PRIx64> " -"zawiera %d wpis:\n" +"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem %" +"#0<PRIx64> zawiera %d wpis:\n" msgstr[1] "" "\n" -"Sekcja relokacji [%2zu] '%s' dla sekcji [%2u] '%s' pod offsetem %#0<PRIx64> " -"zawiera %d wpisy:\n" +"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem %" +"#0<PRIx64> zawiera %d wpisy:\n" msgstr[2] "" "\n" -"Sekcja relokacji [%2zu] '%s' dla sekcji [%2u] '%s' pod offsetem %#0<PRIx64> " -"zawiera %d wpisów:\n" +"Sekcja relokacji [%2zu] \"%s\" dla sekcji [%2u] \"%s\" pod offsetem %" +"#0<PRIx64> zawiera %d wpisów:\n" -#: src/readelf.c:1567 +#: src/readelf.c:1568 #, c-format msgid "" "\n" @@ -4513,38 +4497,38 @@ msgid_plural "" "Relocation section [%2u] '%s' at offset %#0<PRIx64> contains %d entries:\n" msgstr[0] "" "\n" -"Sekcja relokacji [%2u] '%s' pod offsetem %#0<PRIx64> zawiera %d wpis:\n" +"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0<PRIx64> zawiera %d wpis:\n" msgstr[1] "" "\n" -"Sekcja relokacji [%2u] '%s' pod offsetem %#0<PRIx64> zawiera %d wpisy:\n" +"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0<PRIx64> zawiera %d wpisy:\n" msgstr[2] "" "\n" -"Sekcja relokacji [%2u] '%s' pod offsetem %#0<PRIx64> zawiera %d wpisów:\n" +"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0<PRIx64> zawiera %d wpisów:\n" -#: src/readelf.c:1577 +#: src/readelf.c:1578 msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:1579 +#: src/readelf.c:1580 msgid " Offset Type Value Name\n" msgstr " Offset Typ Wartość Nazwa\n" -#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674 -#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831 -#: src/readelf.c:1850 src/readelf.c:1863 +#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675 +#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832 +#: src/readelf.c:1851 src/readelf.c:1864 msgid "<INVALID RELOC>" msgstr "<BŁĘDNA RELOKACJA>" -#: src/readelf.c:1749 +#: src/readelf.c:1750 msgid " Offset Type Value Addend Name\n" msgstr " Offset Typ Wartość Koniec Nazwa\n" -#: src/readelf.c:1751 +#: src/readelf.c:1752 msgid " Offset Type Value Addend Name\n" msgstr "" " Offset Typ Wartość Koniec Nazwa\n" -#: src/readelf.c:1952 +#: src/readelf.c:1953 #, c-format msgid "" "\n" @@ -4554,50 +4538,50 @@ msgid_plural "" "Symbol table [%2u] '%s' contains %u entries:\n" msgstr[0] "" "\n" -"Tabela symboli [%2u] '%s' zawiera %u wpis:\n" +"Tabela symboli [%2u] \"%s\" zawiera %u wpis:\n" msgstr[1] "" "\n" -"Tabela symboli [%2u] '%s' zawiera %u wpisy:\n" +"Tabela symboli [%2u] \"%s\" zawiera %u wpisy:\n" msgstr[2] "" "\n" -"Tabela symboli [%2u] '%s' zawiera %u wpisów:\n" +"Tabela symboli [%2u] \"%s\" zawiera %u wpisów:\n" -#: src/readelf.c:1958 +#: src/readelf.c:1959 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" -msgstr[0] " %lu symbol lokalny Tabela łańcuchów: [%2u] '%s'\n" -msgstr[1] " %lu symbole lokalne Tabela łańcuchów: [%2u] '%s'\n" -msgstr[2] " %lu symboli lokalnych Tabela łańcuchów: [%2u] '%s'\n" +msgstr[0] " %lu symbol lokalny Tabela łańcuchów: [%2u] \"%s\"\n" +msgstr[1] " %lu symbole lokalne Tabela łańcuchów: [%2u] \"%s\"\n" +msgstr[2] " %lu symboli lokalnych Tabela łańcuchów: [%2u] \"%s\"\n" -#: src/readelf.c:1968 +#: src/readelf.c:1969 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n" -#: src/readelf.c:1970 +#: src/readelf.c:1971 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " Numer: Wartość Rozm Typ Bind Widoczność Ndx Nazwa\n" -#: src/readelf.c:1990 +#: src/readelf.c:1991 #, c-format msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -#: src/readelf.c:2078 +#: src/readelf.c:2079 #, c-format msgid "bad dynamic symbol" msgstr "błędny symbol dynamiczny" -#: src/readelf.c:2160 +#: src/readelf.c:2161 msgid "none" msgstr "brak" -#: src/readelf.c:2177 +#: src/readelf.c:2178 msgid "| <unknown>" msgstr "| <nieznany>" -#: src/readelf.c:2202 -#, c-format +#: src/readelf.c:2203 +#, fuzzy, c-format msgid "" "\n" "Version needs section [%2u] '%s' contains %d entry:\n" @@ -4622,17 +4606,17 @@ msgstr[2] "" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%" "s'\n" -#: src/readelf.c:2225 +#: src/readelf.c:2226 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Wersja: %hu Plik: %s Licznik: %hu\n" -#: src/readelf.c:2238 +#: src/readelf.c:2239 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Nazwa: %s Flagi: %s Wersja: %hu\n" -#: src/readelf.c:2269 +#: src/readelf.c:2270 #, c-format msgid "" "\n" @@ -4644,32 +4628,32 @@ msgid_plural "" " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n" msgstr[0] "" "\n" -"Sekcja definicji wersji [%2u] '%s' zawiera %d wpis:\n" +"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpis:\n" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%" "s'\n" msgstr[1] "" "\n" -"Sekcja definicji wersji [%2u] '%s' zawiera %d wpisy:\n" +"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpisy:\n" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%" "s'\n" msgstr[2] "" "\n" -"Sekcja definicji wersji [%2u] '%s' zawiera %d wpisów:\n" +"Sekcja definicji wersji [%2u] \"%s\" zawiera %d wpisów:\n" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%" "s'\n" -#: src/readelf.c:2299 +#: src/readelf.c:2300 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr "" " %#06x: Wersja: %hd Flagi: %s Indeks: %hd Licznik: %hd Nazwa: %s\n" -#: src/readelf.c:2314 +#: src/readelf.c:2315 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: Rodzic %d: %s\n" -#: src/readelf.c:2546 +#: src/readelf.c:2547 #, c-format msgid "" "\n" @@ -4681,26 +4665,29 @@ msgid_plural "" " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'" msgstr[0] "" "\n" -"Sekcja symboli wersji [%2u] '%s' zawiera %d wpis:\n" -" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%s'" +"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpis:\n" +" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] \"%s" +"\"" msgstr[1] "" "\n" -"Sekcja symboli wersji [%2u] '%s' zawiera %d wpisy:\n" -" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%s'" +"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpisy:\n" +" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] \"%s" +"\"" msgstr[2] "" "\n" -"Sekcja symboli wersji [%2u] '%s' zawiera %d wpisów:\n" -" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%s'" +"Sekcja symboli wersji [%2u] \"%s\" zawiera %d wpisów:\n" +" Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] \"%s" +"\"" -#: src/readelf.c:2576 +#: src/readelf.c:2577 msgid " 0 *local* " msgstr " 0 *lokalny* " -#: src/readelf.c:2581 +#: src/readelf.c:2582 msgid " 1 *global* " msgstr " 1 *globalny* " -#: src/readelf.c:2612 +#: src/readelf.c:2613 #, c-format msgid "" "\n" @@ -4714,53 +4701,53 @@ msgid_plural "" " Addr: %#0*<PRIx64> Offset: %#08<PRIx64> Link to section: [%2u] '%s'\n" msgstr[0] "" "\n" -"Histogram dla długości listy kubełków w sekcji [%2u] '%s' (w sumie %d " +"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d " "kubełek):\n" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%" "s'\n" msgstr[1] "" "\n" -"Histogram dla długości listy kubełków w sekcji [%2u] '%s' (w sumie %d " +"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d " "kubełki):\n" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%" "s'\n" msgstr[2] "" "\n" -"Histogram dla długości listy kubełków w sekcji [%2u] '%s' (w sumie %d " +"Histogram dla długości listy kubełków w sekcji [%2u] \"%s\" (w sumie %d " "kubełków):\n" " Adres: %#0*<PRIx64> Offset: %#08<PRIx64> Dowiązanie do sekcji: [%2u] '%" "s'\n" -#: src/readelf.c:2636 +#: src/readelf.c:2637 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Długość Liczba % całości Pokrycie\n" -#: src/readelf.c:2638 +#: src/readelf.c:2639 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:2645 +#: src/readelf.c:2646 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:2658 -#, c-format +#: src/readelf.c:2659 +#, fuzzy, c-format msgid "" " Average number of tests: successful lookup: %f\n" -" unsuccessful lookup: %f\n" +"\t\t\t unsuccessful lookup: %f\n" msgstr "" " Średnia liczba testów: udane wyszukania: %f\n" " nieudane wyszukania: %f\n" -#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759 +#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760 #, c-format msgid "cannot get data for section %d: %s" msgstr "nie można pobrać danych dla sekcji %d: %s" -#: src/readelf.c:2813 +#: src/readelf.c:2814 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4770,7 +4757,7 @@ msgstr "" " Rozmiar maski bitowej: %zu bajtów %<PRIuFAST32>%% bitów ustawionych " "drugie przesunięcie hasza: %u\n" -#: src/readelf.c:2887 +#: src/readelf.c:2888 #, c-format msgid "" "\n" @@ -4780,18 +4767,18 @@ msgid_plural "" "Library list section [%2zu] '%s' at offset %#0<PRIx64> contains %d entries:\n" msgstr[0] "" "\n" -"Sekcja listy bibliotek [%2zu] '%s' pod offsetem %#0<PRIx64> zawiera %d " +"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0<PRIx64> zawiera %d " "wpis:\n" msgstr[1] "" "\n" -"Sekcja listy bibliotek [%2zu] '%s' pod offsetem %#0<PRIx64> zawiera %d " +"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0<PRIx64> zawiera %d " "wpisy:\n" msgstr[2] "" "\n" -"Sekcja listy bibliotek [%2zu] '%s' pod offsetem %#0<PRIx64> zawiera %d " +"Sekcja listy bibliotek [%2zu] \"%s\" pod offsetem %#0<PRIx64> zawiera %d " "wpisów:\n" -#: src/readelf.c:2901 +#: src/readelf.c:2902 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4799,7 +4786,7 @@ msgstr "" " Biblioteka Oznaczenie czasu Suma k. Wersja " "Flagi" -#: src/readelf.c:2951 +#: src/readelf.c:2952 #, fuzzy, c-format msgid "" "\n" @@ -4809,141 +4796,140 @@ msgstr "" "\n" "Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:2967 -#, fuzzy +#: src/readelf.c:2968 msgid " Owner Size\n" -msgstr " Właściciel Rozmiar danych Typ\n" +msgstr " Właściciel Rozmiar\n" -#: src/readelf.c:2993 -#, fuzzy, c-format +#: src/readelf.c:2994 +#, c-format msgid " %-13s %4<PRIu32>\n" -msgstr " %-13.*s %9<PRId32> %s\n" +msgstr " %-13s %4<PRIu32>\n" -#: src/readelf.c:3025 +#: src/readelf.c:3026 #, c-format msgid " %-4u %12<PRIu32>\n" -msgstr "" +msgstr " %-4u %12<PRIu32>\n" -#: src/readelf.c:3030 -#, fuzzy, c-format +#: src/readelf.c:3031 +#, c-format msgid " File: %11<PRIu32>\n" -msgstr " ustawienie pliku na %<PRIu64>\n" +msgstr " Plik: %11<PRIu32>\n" -#: src/readelf.c:3065 -#, fuzzy, c-format +#: src/readelf.c:3066 +#, c-format msgid " %s: %<PRId64>, %s\n" -msgstr " %-13.*s %9<PRId32> %s\n" +msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3068 -#, fuzzy, c-format +#: src/readelf.c:3069 +#, c-format msgid " %s: %<PRId64>\n" -msgstr " ustawienie pliku na %<PRIu64>\n" +msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3071 +#: src/readelf.c:3072 #, c-format msgid " %s: %s\n" -msgstr "" +msgstr " %s: %s\n" -#: src/readelf.c:3078 -#, fuzzy, c-format +#: src/readelf.c:3079 +#, c-format msgid " %u: %<PRId64>\n" -msgstr " ustawienie pliku na %<PRIu64>\n" +msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3081 +#: src/readelf.c:3082 #, c-format msgid " %u: %s\n" -msgstr "" +msgstr " %u: %s\n" -#: src/readelf.c:3117 +#: src/readelf.c:3118 #, c-format msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" -msgstr "" +msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3120 +#: src/readelf.c:3121 #, c-format msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" -msgstr "" +msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3125 +#: src/readelf.c:3126 #, c-format msgid "%#<PRIx64> <%s+%#<PRIx64>>" -msgstr "" +msgstr "%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3128 +#: src/readelf.c:3129 #, c-format msgid "%#0*<PRIx64> <%s+%#<PRIx64>>" -msgstr "" +msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3134 +#: src/readelf.c:3135 #, c-format msgid "%s+%#<PRIx64> <%s>" -msgstr "" +msgstr "%s+%#<PRIx64> <%s>" -#: src/readelf.c:3137 +#: src/readelf.c:3138 #, c-format msgid "%s+%#0*<PRIx64> <%s>" -msgstr "" +msgstr "%s+%#0*<PRIx64> <%s>" -#: src/readelf.c:3141 -#, fuzzy, c-format +#: src/readelf.c:3142 +#, c-format msgid "%#<PRIx64> <%s>" -msgstr "%<PRId64> (bajtów)\n" +msgstr "%#<PRIx64> <%s>" -#: src/readelf.c:3144 +#: src/readelf.c:3145 #, c-format msgid "%#0*<PRIx64> <%s>" -msgstr "" +msgstr "%#0*<PRIx64> <%s>" -#: src/readelf.c:3149 +#: src/readelf.c:3150 #, c-format msgid "%s+%#<PRIx64>" -msgstr "" +msgstr "%s+%#<PRIx64>" -#: src/readelf.c:3152 +#: src/readelf.c:3153 #, c-format msgid "%s+%#0*<PRIx64>" -msgstr "" +msgstr "%s+%#0*<PRIx64>" -#: src/readelf.c:3260 +#: src/readelf.c:3284 #, c-format msgid "unknown tag %hx" msgstr "nieznany znacznik %hx" -#: src/readelf.c:3262 +#: src/readelf.c:3286 #, c-format msgid "unknown user tag %hx" msgstr "nieznany znacznik użytkownika %hx" -#: src/readelf.c:3480 +#: src/readelf.c:3510 #, c-format msgid "unknown attribute %hx" msgstr "nieznany atrybut %hx" -#: src/readelf.c:3483 +#: src/readelf.c:3513 #, c-format msgid "unknown user attribute %hx" msgstr "nieznany atrybut użytkownika %hx" -#: src/readelf.c:3529 +#: src/readelf.c:3563 #, c-format msgid "unknown form %<PRIx64>" msgstr "nieznana forma %<PRIx64>" -#: src/readelf.c:3763 +#: src/readelf.c:3797 msgid "empty block" -msgstr "" +msgstr "pusty blok" -#: src/readelf.c:3766 +#: src/readelf.c:3800 #, c-format msgid "%zu byte block:" msgstr "" -#: src/readelf.c:4175 +#: src/readelf.c:4222 #, c-format msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" msgstr "" -#: src/readelf.c:4188 +#: src/readelf.c:4235 #, fuzzy, c-format msgid "" "\n" @@ -4951,10 +4937,10 @@ msgid "" " [ Code]\n" msgstr "" "\n" -"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n" +"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n" " [ Kod]\n" -#: src/readelf.c:4195 +#: src/readelf.c:4242 #, c-format msgid "" "\n" @@ -4963,30 +4949,30 @@ msgstr "" "\n" "Sekcja skrótów pod offsetem %<PRIu64>:\n" -#: src/readelf.c:4208 +#: src/readelf.c:4255 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** błąd podczas odczytu skrótu: %s\n" -#: src/readelf.c:4224 +#: src/readelf.c:4271 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] offset: %<PRId64>, potomek: %s, znacznik: %s\n" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "yes" msgstr "tak" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "no" msgstr "nie" -#: src/readelf.c:4263 +#: src/readelf.c:4310 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "nie można pobrać zawartości .debug_aranges: %s" -#: src/readelf.c:4268 +#: src/readelf.c:4315 #, fuzzy, c-format msgid "" "\n" @@ -4996,133 +4982,133 @@ msgid_plural "" "DWARF section [%2zu] '%s' at offset %#<PRIx64> contains %zu entries:\n" msgstr[0] "" "\n" -"Sekcja DWARF '%s' pod offsetem %#<PRIx64> zawiera %zu wpis:\n" +"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpis:\n" msgstr[1] "" "\n" -"Sekcja DWARF '%s' pod offsetem %#<PRIx64> zawiera %zu wpisy:\n" +"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpisy:\n" msgstr[2] "" "\n" -"Sekcja DWARF '%s' pod offsetem %#<PRIx64> zawiera %zu wpisów:\n" +"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64> zawiera %zu wpisów:\n" -#: src/readelf.c:4298 +#: src/readelf.c:4345 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4300 +#: src/readelf.c:4347 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" msgstr "" " [%*zu] start: %0#*<PRIx64>, długość: %5<PRIu64>, offset CU DIE: %6<PRId64>\n" -#: src/readelf.c:4319 +#: src/readelf.c:4366 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "nie można pobrać zawartości .debug_ranges: %s" -#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897 -#: src/readelf.c:5992 src/readelf.c:6164 +#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079 +#: src/readelf.c:6178 src/readelf.c:6350 #, fuzzy, c-format msgid "" "\n" "DWARF section [%2zu] '%s' at offset %#<PRIx64>:\n" msgstr "" "\n" -"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n" +"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n" -#: src/readelf.c:4338 src/readelf.c:5911 +#: src/readelf.c:4385 src/readelf.c:6097 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr "" -#: src/readelf.c:4360 src/readelf.c:5933 +#: src/readelf.c:4407 src/readelf.c:6119 #, c-format msgid " [%6tx] base address %s\n" msgstr "" -#: src/readelf.c:4371 +#: src/readelf.c:4418 #, c-format msgid " [%6tx] %s..%s\n" -msgstr "" +msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4373 +#: src/readelf.c:4420 #, c-format msgid " %s..%s\n" -msgstr "" +msgstr " %s..%s\n" -#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332 +#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518 #, fuzzy, c-format msgid "cannot get %s content: %s" msgstr "nie można pobrać sekcji: %s" -#: src/readelf.c:4806 +#: src/readelf.c:4853 #, fuzzy, c-format msgid "" "\n" "Call frame information section [%2zu] '%s' at offset %#<PRIx64>:\n" msgstr "" "\n" -"Sekcja relokacji [%2u] '%s' pod offsetem %#0<PRIx64> zawiera %d wpis:\n" +"Sekcja relokacji [%2u] \"%s\" pod offsetem %#0<PRIx64> zawiera %d wpis:\n" -#: src/readelf.c:4833 src/readelf.c:5486 +#: src/readelf.c:4881 src/readelf.c:5615 #, c-format msgid "invalid data in section [%zu] '%s'" -msgstr "błędne dane w sekcji [%zu] '%s'" +msgstr "błędne dane w sekcji [%zu] \"%s\"" -#: src/readelf.c:4855 +#: src/readelf.c:4903 #, c-format msgid "" "\n" " [%6tx] Zero terminator\n" msgstr "" -#: src/readelf.c:4924 +#: src/readelf.c:4987 #, c-format msgid "invalid augmentation length" msgstr "" -#: src/readelf.c:4936 +#: src/readelf.c:4999 msgid "FDE address encoding: " msgstr "" -#: src/readelf.c:4942 +#: src/readelf.c:5005 msgid "LSDA pointer encoding: " msgstr "" -#: src/readelf.c:5034 +#: src/readelf.c:5101 #, c-format msgid " (offset: %#<PRIx64>)" msgstr "" -#: src/readelf.c:5041 +#: src/readelf.c:5108 #, fuzzy, c-format msgid " (end offset: %#<PRIx64>)" msgstr "" "\n" -"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n" +"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n" -#: src/readelf.c:5068 +#: src/readelf.c:5135 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr "" -#: src/readelf.c:5114 +#: src/readelf.c:5182 #, c-format msgid "cannot get attribute code: %s" msgstr "nie można pobrać kodu atrybutu: %s" -#: src/readelf.c:5122 +#: src/readelf.c:5190 #, c-format msgid "cannot get attribute form: %s" msgstr "nie można pobrać formy atrybutu: %s" -#: src/readelf.c:5135 +#: src/readelf.c:5203 #, c-format msgid "cannot get attribute value: %s" msgstr "nie można pobrać wartości atrybutu: %s" -#: src/readelf.c:5331 +#: src/readelf.c:5428 #, fuzzy, c-format msgid "" "\n" @@ -5130,10 +5116,22 @@ msgid "" " [Offset]\n" msgstr "" "\n" -"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n" +"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n" " [Offset]\n" -#: src/readelf.c:5356 +#: src/readelf.c:5458 +#, fuzzy, c-format +msgid "" +" Type unit at offset %<PRIu64>:\n" +" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %" +"<PRIu8>, Offset size: %<PRIu8>\n" +" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n" +msgstr "" +" Jednostka kompilacji pod offsetem %<PRIu64>:\n" +" Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: %" +"<PRIu8>, rozmiar offsetu: %<PRIu8>\n" + +#: src/readelf.c:5466 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5144,38 +5142,38 @@ msgstr "" " Wersja: %<PRIu16>, offset sekcji skrótów: %<PRIu64>, rozmiar adresu: %" "<PRIu8>, rozmiar offsetu: %<PRIu8>\n" -#: src/readelf.c:5374 +#: src/readelf.c:5489 #, c-format msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s" -msgstr "nie można pobrać DIE pod offsetem %<PRIu64> w sekcji '%s': %s" +msgstr "nie można pobrać DIE pod offsetem %<PRIu64> w sekcji \"%s\": %s" -#: src/readelf.c:5385 +#: src/readelf.c:5500 #, c-format msgid "cannot get DIE offset: %s" msgstr "nie można pobrać offsetu DIE: %s" -#: src/readelf.c:5393 +#: src/readelf.c:5508 #, c-format msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s" msgstr "" -"nie można pobrać znacznika DIE pod offsetem %<PRIu64> w sekcji '%s': %s" +"nie można pobrać znacznika DIE pod offsetem %<PRIu64> w sekcji \"%s\": %s" -#: src/readelf.c:5422 +#: src/readelf.c:5537 #, c-format msgid "cannot get next DIE: %s\n" msgstr "nie można pobrać następnego DIE: %s\n" -#: src/readelf.c:5429 +#: src/readelf.c:5544 #, c-format msgid "cannot get next DIE: %s" msgstr "nie można pobrać następnego DIE: %s" -#: src/readelf.c:5464 +#: src/readelf.c:5593 #, c-format msgid "cannot get line data section data: %s" msgstr "nie można pobrać danych sekcji danych linii: %s" -#: src/readelf.c:5477 +#: src/readelf.c:5606 #, c-format msgid "" "\n" @@ -5184,14 +5182,15 @@ msgstr "" "\n" "Tabela pod offsetem %Zu:\n" -#: src/readelf.c:5529 -#, c-format +#: src/readelf.c:5661 +#, fuzzy, c-format msgid "" "\n" " Length: %<PRIu64>\n" " DWARF version: %<PRIuFAST16>\n" " Prologue length: %<PRIu64>\n" " Minimum instruction length: %<PRIuFAST8>\n" +" Maximum operations per instruction: %<PRIuFAST8>\n" " Initial value if '%s': %<PRIuFAST8>\n" " Line base: %<PRIdFAST8>\n" " Line range: %<PRIuFAST8>\n" @@ -5204,19 +5203,19 @@ msgstr "" " Wersja DWARF: %<PRIuFAST16>\n" " Długość prologu: %<PRIu64>\n" " Minimalna długość instrukcji: %<PRIuFAST8>\n" -" Początkowa wartość '%s': %<PRIuFAST8>\n" +" Początkowa wartość \"%s\": %<PRIuFAST8>\n" " Początek linii: %<PRIdFAST8>\n" " Przedział linii: %<PRIuFAST8>\n" " Początek instrukcji: %<PRIuFAST8>\n" "\n" "Instrukcje:\n" -#: src/readelf.c:5548 +#: src/readelf.c:5682 #, fuzzy, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" -msgstr "błędne dane w sekcji [%zu] '%s'" +msgstr "błędne dane w sekcji [%zu] \"%s\"" -#: src/readelf.c:5563 +#: src/readelf.c:5697 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" @@ -5224,7 +5223,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu argument\n" msgstr[1] " [%*<PRIuFAST8>] %hhu argumenty\n" msgstr[2] " [%*<PRIuFAST8>] %hhu argumentów\n" -#: src/readelf.c:5571 +#: src/readelf.c:5705 msgid "" "\n" "Directory table:" @@ -5232,7 +5231,7 @@ msgstr "" "\n" "Tabela katalogu:" -#: src/readelf.c:5587 +#: src/readelf.c:5721 msgid "" "\n" "File name table:\n" @@ -5242,7 +5241,7 @@ msgstr "" "Tabela nazw plików:\n" " Wpis Kat Czas Rozmiar Nazwa" -#: src/readelf.c:5616 +#: src/readelf.c:5750 msgid "" "\n" "Line number statements:" @@ -5250,88 +5249,113 @@ msgstr "" "\n" "Instrukcje numerów linii:" -#: src/readelf.c:5677 +#: src/readelf.c:5824 +#, fuzzy, c-format +msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" +msgstr " instrukcja specjalna %u: adres+%u = %#<PRIx64>, linia%+d = %zu\n" + +#: src/readelf.c:5829 #, fuzzy, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr " instrukcja specjalna %u: adres+%u = %#<PRIx64>, linia%+d = %zu\n" -#: src/readelf.c:5697 +#: src/readelf.c:5849 #, c-format msgid " extended opcode %u: " msgstr " instrukcja rozszerzona %u: " -#: src/readelf.c:5702 +#: src/readelf.c:5854 msgid "end of sequence" msgstr "koniec sekwencji" -#: src/readelf.c:5717 +#: src/readelf.c:5871 #, fuzzy, c-format msgid "set address to %s\n" msgstr "ustawienie adresu na %#<PRIx64>\n" -#: src/readelf.c:5738 +#: src/readelf.c:5892 #, c-format msgid "define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" "definicja nowego pliku: dir=%u, mtime=%<PRIu64>, długość=%<PRIu64>, nazwa=%" "s\n" -#: src/readelf.c:5747 +#: src/readelf.c:5905 +#, fuzzy, c-format +msgid " set discriminator to %u\n" +msgstr " ustawienie kolumny na %<PRIu64>\n" + +#: src/readelf.c:5910 msgid "unknown opcode" msgstr "nieznany kod instrukcji" -#: src/readelf.c:5759 +#: src/readelf.c:5922 msgid " copy" msgstr " kopiowanie" -#: src/readelf.c:5769 +#: src/readelf.c:5933 +#, fuzzy, c-format +msgid "advance address by %u to %s, op_index to %u\n" +msgstr " zwiększenie adresu o %u do %#<PRIx64>\n" + +#: src/readelf.c:5937 #, fuzzy, c-format msgid "advance address by %u to %s\n" msgstr " zwiększenie adresu o %u do %#<PRIx64>\n" -#: src/readelf.c:5780 +#: src/readelf.c:5948 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr " zwiększenie linii o stałą %d do %<PRId64>\n" -#: src/readelf.c:5788 +#: src/readelf.c:5956 #, c-format msgid " set file to %<PRIu64>\n" msgstr " ustawienie pliku na %<PRIu64>\n" -#: src/readelf.c:5798 +#: src/readelf.c:5966 #, c-format msgid " set column to %<PRIu64>\n" msgstr " ustawienie kolumny na %<PRIu64>\n" -#: src/readelf.c:5805 +#: src/readelf.c:5973 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" -msgstr " ustawienie '%s' na %<PRIuFAST8>\n" +msgstr " ustawienie \"%s\" na %<PRIuFAST8>\n" -#: src/readelf.c:5811 +#: src/readelf.c:5979 msgid " set basic block flag" msgstr " ustawienie podstawowej flagi bloku" -#: src/readelf.c:5821 +#: src/readelf.c:5988 +#, fuzzy, c-format +msgid "advance address by constant %u to %s, op_index to %u\n" +msgstr " zwiększenie adresu o stałą %u do %#<PRIx64>\n" + +#: src/readelf.c:5992 #, fuzzy, c-format msgid "advance address by constant %u to %s\n" msgstr " zwiększenie adresu o stałą %u do %#<PRIx64>\n" -#: src/readelf.c:5837 +#: src/readelf.c:6010 #, fuzzy, c-format msgid "advance address by fixed value %u to %s\n" msgstr " zwiększenie adresu o stałą wartość %u do %#<PRIx64>\n" -#: src/readelf.c:5846 +#: src/readelf.c:6019 msgid " set prologue end flag" msgstr " ustawienie flagi końca prologu" -#: src/readelf.c:5851 +#: src/readelf.c:6024 msgid " set epilogue begin flag" msgstr " ustawienie flagi początku epilogu" -#: src/readelf.c:5860 +#: src/readelf.c:6033 +#, fuzzy, c-format +msgid " set isa to %u\n" +msgstr " ustawienie pliku na %<PRIu64>\n" + +#: src/readelf.c:6042 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" @@ -5339,37 +5363,37 @@ msgstr[0] " nieznana instrukcja z %<PRIu8> parametrem:" msgstr[1] " nieznana instrukcja z %<PRIu8> parametrami:" msgstr[2] " nieznana instrukcja z %<PRIu8> parametrami:" -#: src/readelf.c:5892 +#: src/readelf.c:6074 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "nie można pobrać zawartości .debug_log: %s" -#: src/readelf.c:5947 +#: src/readelf.c:6133 #, c-format msgid " [%6tx] %s..%s" -msgstr "" +msgstr " [%6tx] %s..%s" -#: src/readelf.c:5949 +#: src/readelf.c:6135 #, c-format msgid " %s..%s" -msgstr "" +msgstr " %s..%s" -#: src/readelf.c:6002 +#: src/readelf.c:6188 #, c-format msgid "cannot get macro information section data: %s" msgstr "nie można pobrać danych sekcji informacji o makrach: %s" -#: src/readelf.c:6081 +#: src/readelf.c:6267 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** niezakończony łańcuch na końcu sekcji" -#: src/readelf.c:6149 +#: src/readelf.c:6335 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr " [%5d] offset DIE: %6<PRId64>, offset CU DIE: %6<PRId64>, nazwa: %s\n" -#: src/readelf.c:6188 +#: src/readelf.c:6374 #, fuzzy, c-format msgid "" "\n" @@ -5377,50 +5401,50 @@ msgid "" " %*s String\n" msgstr "" "\n" -"Sekcja DWARF '%s' pod offsetem %#<PRIx64>:\n" +"Sekcja DWARF \"%s\" pod offsetem %#<PRIx64>:\n" " %*s Łańcuch\n" -#: src/readelf.c:6202 +#: src/readelf.c:6388 #, c-format msgid " *** error while reading strings: %s\n" msgstr " *** błąd podczas odczytu łańcuchów: %s\n" -#: src/readelf.c:6222 +#: src/readelf.c:6408 #, c-format msgid "" "\n" "Call frame search table section [%2zu] '.eh_frame_hdr':\n" msgstr "" -#: src/readelf.c:6324 +#: src/readelf.c:6510 #, c-format msgid "" "\n" "Exception handling table section [%2zu] '.gcc_except_table':\n" msgstr "" -#: src/readelf.c:6347 +#: src/readelf.c:6533 #, c-format msgid " LPStart encoding: %#x " msgstr "" -#: src/readelf.c:6359 +#: src/readelf.c:6545 #, c-format msgid " TType encoding: %#x " msgstr "" -#: src/readelf.c:6373 +#: src/readelf.c:6559 #, c-format msgid " Call site encoding: %#x " msgstr "" -#: src/readelf.c:6386 +#: src/readelf.c:6572 msgid "" "\n" " Call site table:" msgstr "" -#: src/readelf.c:6400 +#: src/readelf.c:6586 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5429,43 +5453,43 @@ msgid "" " Action: %u\n" msgstr "" -#: src/readelf.c:6460 +#: src/readelf.c:6646 #, fuzzy, c-format msgid "invalid TType encoding" msgstr "błędny indeks linii" -#: src/readelf.c:6484 +#: src/readelf.c:6671 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "nie można pobrać deskryptora kontekstu debugowego: %s" -#: src/readelf.c:6620 src/readelf.c:7221 +#: src/readelf.c:6810 src/readelf.c:7411 #, fuzzy, c-format msgid "cannot convert core note data: %s" msgstr "nie można pobrać zawartości sekcji notatki: %s" -#: src/readelf.c:6961 +#: src/readelf.c:7151 #, c-format msgid "" "\n" "%*s... <repeats %u more times> ..." msgstr "" -#: src/readelf.c:7320 +#: src/readelf.c:7510 msgid " Owner Data size Type\n" msgstr " Właściciel Rozmiar danych Typ\n" -#: src/readelf.c:7338 +#: src/readelf.c:7528 #, c-format msgid " %-13.*s %9<PRId32> %s\n" -msgstr " %-13.*s %9<PRId32> %s\n" +msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:7372 +#: src/readelf.c:7562 #, c-format msgid "cannot get content of note section: %s" msgstr "nie można pobrać zawartości sekcji notatki: %s" -#: src/readelf.c:7399 +#: src/readelf.c:7589 #, fuzzy, c-format msgid "" "\n" @@ -5474,7 +5498,7 @@ msgstr "" "\n" "Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:7422 +#: src/readelf.c:7612 #, fuzzy, c-format msgid "" "\n" @@ -5483,19 +5507,19 @@ msgstr "" "\n" "Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:7468 +#: src/readelf.c:7658 #, fuzzy, c-format msgid "" "\n" "Section [%Zu] '%s' has no data to dump.\n" -msgstr "sekcja [%2zu] '%s' ma nieobsługiwany typ %d\n" +msgstr "sekcja [%2zu] \"%s\" ma nieobsługiwany typ %d\n" -#: src/readelf.c:7474 src/readelf.c:7497 +#: src/readelf.c:7664 src/readelf.c:7687 #, fuzzy, c-format msgid "cannot get data for section [%Zu] '%s': %s" msgstr "nie można pobrać danych dla sekcji %d: %s" -#: src/readelf.c:7478 +#: src/readelf.c:7668 #, fuzzy, c-format msgid "" "\n" @@ -5504,14 +5528,14 @@ msgstr "" "\n" "Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:7491 +#: src/readelf.c:7681 #, fuzzy, c-format msgid "" "\n" "Section [%Zu] '%s' has no strings to dump.\n" -msgstr "sekcja [%2zu] '%s' ma nieobsługiwany typ %d\n" +msgstr "sekcja [%2zu] \"%s\" ma nieobsługiwany typ %d\n" -#: src/readelf.c:7501 +#: src/readelf.c:7691 #, fuzzy, c-format msgid "" "\n" @@ -5520,45 +5544,45 @@ msgstr "" "\n" "Segment notatki o długości %<PRId64> bajtów pod offsetem %#0<PRIx64>:\n" -#: src/readelf.c:7549 +#: src/readelf.c:7739 #, c-format msgid "" "\n" "section [%lu] does not exist" msgstr "" -#: src/readelf.c:7576 +#: src/readelf.c:7766 #, fuzzy, c-format msgid "" "\n" "section '%s' does not exist" -msgstr "sekcja [%2d] '%s': brak obowiązkowego znacznika %s\n" +msgstr "sekcja [%2d] \"%s\": brak obowiązkowego znacznika %s\n" -#: src/readelf.c:7637 +#: src/readelf.c:7827 #, fuzzy, c-format msgid "cannot get symbol index of archive '%s': %s" -msgstr "nie można pobrać symbolu w '%s': %s" +msgstr "nie można pobrać symbolu w \"%s\": %s" -#: src/readelf.c:7640 +#: src/readelf.c:7830 #, c-format msgid "" "\n" "Archive '%s' has no symbol index\n" msgstr "" -#: src/readelf.c:7644 +#: src/readelf.c:7834 #, c-format msgid "" "\n" "Index of archive '%s' has %Zu entries:\n" msgstr "" -#: src/readelf.c:7662 +#: src/readelf.c:7852 #, fuzzy, c-format msgid "cannot extract member at offset %Zu in '%s': %s" -msgstr "nie można pobrać zawartości sekcji %zu w '%s': %s" +msgstr "nie można pobrać zawartości sekcji %zu w \"%s\": %s" -#: src/readelf.c:7667 +#: src/readelf.c:7857 #, c-format msgid "Archive member '%s' contains:\n" msgstr "" @@ -5573,23 +5597,23 @@ msgstr "" #: src/size.c:70 msgid "Same as `--format=sysv'" -msgstr "To samo co `--format=sysv'" +msgstr "To samo, co `--format=sysv'" #: src/size.c:71 msgid "Same as `--format=bsd'" -msgstr "To samo co `--format=bsd'" +msgstr "To samo, co `--format=bsd'" #: src/size.c:74 msgid "Same as `--radix=10'" -msgstr "To samo co `--radix=10'" +msgstr "To samo, co `--radix=10'" #: src/size.c:75 msgid "Same as `--radix=8'" -msgstr "To samo co `--radix=8'" +msgstr "To samo, co `--radix=8'" #: src/size.c:76 msgid "Same as `--radix=16'" -msgstr "To samo co `--radix=16'" +msgstr "To samo, co `--radix=16'" #: src/size.c:78 msgid "Similar to `--format=sysv' output but in one line" @@ -5671,7 +5695,7 @@ msgstr "Wypisanie łańcuchów znaków drukowalnych w plikach." #: src/strings.c:268 src/strings.c:303 #, c-format msgid "invalid value '%s' for %s parameter" -msgstr "błędna wartość '%s' dla parametru %s" +msgstr "błędna wartość \"%s\" dla parametru %s" #: src/strings.c:314 #, c-format @@ -5753,12 +5777,12 @@ msgstr "Opcja -R obsługuje tylko sekcję .comment" #: src/strip.c:298 src/strip.c:322 #, c-format msgid "cannot stat input file '%s'" -msgstr "nie można wykonać stat na pliku wejściowym '%s'" +msgstr "nie można wykonać stat na pliku wejściowym \"%s\"" #: src/strip.c:312 #, c-format msgid "while opening '%s'" -msgstr "podczas otwierania '%s'" +msgstr "podczas otwierania \"%s\"" #: src/strip.c:350 #, c-format @@ -5773,12 +5797,12 @@ msgstr "nie można otworzyć backendu EBL" #: src/strip.c:498 src/strip.c:522 #, c-format msgid "cannot create new file '%s': %s" -msgstr "nie można utworzyć nowego pliku '%s': %s" +msgstr "nie można utworzyć nowego pliku \"%s\": %s" #: src/strip.c:582 #, c-format msgid "illformed file '%s'" -msgstr "plik '%s' ma zły format" +msgstr "plik \"%s\" ma zły format" #: src/strip.c:869 src/strip.c:956 #, c-format @@ -5793,7 +5817,7 @@ msgstr "%s: błąd podczas tworzenia nagłówka ELF: %s" #: src/strip.c:943 #, c-format msgid "while preparing output for '%s'" -msgstr "podczas przygotowywania wyjścia dla '%s'" +msgstr "podczas przygotowywania wyjścia dla \"%s\"" #: src/strip.c:994 src/strip.c:1050 #, c-format @@ -5813,12 +5837,12 @@ msgstr "podczas tworzenia tabeli łańcuchów nagłówka sekcji: %s" #: src/strip.c:1593 src/strip.c:1690 #, c-format msgid "while writing '%s': %s" -msgstr "podczas zapisu '%s': %s" +msgstr "podczas zapisywania \"%s\": %s" #: src/strip.c:1604 #, c-format msgid "while creating '%s'" -msgstr "podczas tworzenia `%s'" +msgstr "podczas tworzenia \"%s\"" #: src/strip.c:1616 #, c-format @@ -5833,12 +5857,12 @@ msgstr "%s: błąd podczas odczytu pliku: %s" #: src/strip.c:1722 src/strip.c:1729 #, c-format msgid "error while finishing '%s': %s" -msgstr "błąd podczas kończenia '%s': %s" +msgstr "błąd podczas kończenia \"%s\": %s" #: src/strip.c:1752 src/strip.c:1809 #, c-format msgid "cannot set access and modification date of '%s'" -msgstr "nie można ustawić czasu dostępu i modyfikacji '%s'" +msgstr "nie można ustawić czasu dostępu i modyfikacji \"%s\"" #: src/unstrip.c:78 msgid "Match MODULE against file names, not module names" @@ -5892,7 +5916,7 @@ msgstr "" #: src/unstrip.c:190 #, c-format msgid "output directory '%s'" -msgstr "" +msgstr "katalog wyjściowy \"%s\"" #: src/unstrip.c:199 #, c-format @@ -5919,7 +5943,7 @@ msgstr "nie można odczytać nagłówka ELF: %s" msgid "cannot copy ELF header: %s" msgstr "nie można uaktualnić nagłówka ELF: %s" -#: src/unstrip.c:264 src/unstrip.c:1817 +#: src/unstrip.c:264 src/unstrip.c:1830 #, fuzzy, c-format msgid "cannot create program headers: %s" msgstr "nie można utworzyć nagłówka programu: %s" @@ -5934,12 +5958,12 @@ msgstr "nie można pobrać nagłówka programu: %s" msgid "cannot copy section header: %s" msgstr "nie można pobrać nagłówka sekcji: %s" -#: src/unstrip.c:283 src/unstrip.c:1505 +#: src/unstrip.c:283 src/unstrip.c:1511 #, fuzzy, c-format msgid "cannot get section data: %s" msgstr "nie można pobrać sekcji: %s" -#: src/unstrip.c:285 src/unstrip.c:1507 +#: src/unstrip.c:285 src/unstrip.c:1513 #, fuzzy, c-format msgid "cannot copy section data: %s" msgstr "nie można przydzielić danych sekcji: %s" @@ -5947,183 +5971,192 @@ msgstr "nie można przydzielić danych sekcji: %s" #: src/unstrip.c:309 #, fuzzy, c-format msgid "cannot create directory '%s'" -msgstr "nie można utworzyć deskryptora EBL dla '%s'" +msgstr "nie można utworzyć deskryptora EBL dla \"%s\"" -#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540 +#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545 #, fuzzy, c-format msgid "cannot get symbol table entry: %s" -msgstr "nie można pobrać sekcji tabeli symboli %zu w '%s': %s" +msgstr "nie można pobrać sekcji tabeli symboli %zu w \"%s\": %s" -#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613 -#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715 +#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616 +#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720 #, fuzzy, c-format msgid "cannot update symbol table: %s" msgstr "nie można uaktualnić nagłówka ELF: %s" -#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209 -#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791 +#: src/unstrip.c:375 #, fuzzy, c-format msgid "cannot update section header: %s" msgstr "nie można pobrać nagłówka sekcji: %s" -#: src/unstrip.c:408 src/unstrip.c:419 +#: src/unstrip.c:414 src/unstrip.c:425 #, fuzzy, c-format msgid "cannot update relocation: %s" msgstr "nie można pobrać relokacji: %s" -#: src/unstrip.c:507 +#: src/unstrip.c:512 #, fuzzy, c-format msgid "cannot get symbol version: %s" -msgstr "nie można pobrać symbolu w '%s': %s" +msgstr "nie można pobrać symbolu w \"%s\": %s" -#: src/unstrip.c:519 +#: src/unstrip.c:524 #, c-format msgid "unexpected section type in [%Zu] with sh_link to symtab" msgstr "" -#: src/unstrip.c:769 +#: src/unstrip.c:772 #, fuzzy, c-format msgid "invalid string offset in symbol [%Zu]" msgstr "błędny offset %zu dla symbolu %s" -#: src/unstrip.c:911 src/unstrip.c:1248 +#: src/unstrip.c:914 src/unstrip.c:1254 #, fuzzy, c-format msgid "cannot read section [%Zu] name: %s" msgstr "nie można pobrać nagłówka sekcji: %s" -#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004 +#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007 #, fuzzy, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "nie można odczytać sekcji dynamicznej: %s" -#: src/unstrip.c:992 +#: src/unstrip.c:995 #, fuzzy, c-format msgid "invalid contents in '%s' section" msgstr "błędna sekcja .debug_line" -#: src/unstrip.c:1047 src/unstrip.c:1370 +#: src/unstrip.c:1050 src/unstrip.c:1376 #, fuzzy, c-format msgid "cannot find matching section for [%Zu] '%s'" -msgstr "błędne dane w sekcji [%zu] '%s'" +msgstr "błędne dane w sekcji [%zu] \"%s\"" -#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451 +#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457 #, fuzzy, c-format msgid "cannot add section name to string table: %s" msgstr "nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji" -#: src/unstrip.c:1195 +#: src/unstrip.c:1198 #, fuzzy, c-format msgid "cannot update section header string table data: %s" msgstr "%s: nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji: %s\n" -#: src/unstrip.c:1223 src/unstrip.c:1227 +#: src/unstrip.c:1225 src/unstrip.c:1229 #, fuzzy, c-format msgid "cannot get section header string table section index: %s" msgstr "%s: nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji: %s\n" -#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466 +#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472 #, fuzzy, c-format msgid "cannot get section count: %s" msgstr "nie można pobrać sekcji: %s" -#: src/unstrip.c:1293 src/unstrip.c:1385 +#: src/unstrip.c:1240 +#, c-format +msgid "more sections in stripped file than debug file -- arguments reversed?" +msgstr "" + +#: src/unstrip.c:1299 src/unstrip.c:1391 #, fuzzy, c-format msgid "cannot read section header string table: %s" msgstr "nie można pobrać indeksu tabeli łańcuchów nagłówków sekcji" -#: src/unstrip.c:1445 +#: src/unstrip.c:1451 #, fuzzy, c-format msgid "cannot add new section: %s" msgstr "nie można pobrać sekcji: %s" -#: src/unstrip.c:1548 +#: src/unstrip.c:1553 #, fuzzy, c-format msgid "symbol [%Zu] has invalid section index" -msgstr "sekcja [%2d] '%s': symbol %zu: błędny indeks sekcji\n" +msgstr "sekcja [%2d] \"%s\": symbol %zu: błędny indeks sekcji\n" -#: src/unstrip.c:1800 +#: src/unstrip.c:1791 +#, fuzzy, c-format +msgid "cannot read section data: %s" +msgstr "nie można pobrać sekcji: %s" + +#: src/unstrip.c:1812 #, fuzzy, c-format msgid "cannot get ELF header: %s" msgstr "nie można pobrać nagłówka ELF" -#: src/unstrip.c:1827 +#: src/unstrip.c:1840 #, fuzzy, c-format msgid "cannot update program header: %s" msgstr "nie można utworzyć nagłówka programu: %s" -#: src/unstrip.c:1832 src/unstrip.c:1911 +#: src/unstrip.c:1845 src/unstrip.c:1924 #, fuzzy, c-format msgid "cannot write output file: %s" msgstr "nie można utworzyć pliku wyjściowego" -#: src/unstrip.c:1880 +#: src/unstrip.c:1893 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1883 +#: src/unstrip.c:1896 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" msgstr "" -#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034 +#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047 #, fuzzy, c-format msgid "cannot create ELF descriptor: %s" -msgstr "nie można utworzyć deskryptora ELF dla '%s': %s" +msgstr "nie można utworzyć deskryptora ELF dla \"%s\": %s" -#: src/unstrip.c:1960 +#: src/unstrip.c:1973 #, c-format msgid "'%s' and '%s' do not seem to match" msgstr "" -#: src/unstrip.c:1991 +#: src/unstrip.c:2004 #, fuzzy, c-format msgid "cannot find stripped file for module '%s': %s" -msgstr "nie można utworzyć nowego pliku '%s': %s" +msgstr "nie można utworzyć nowego pliku \"%s\": %s" -#: src/unstrip.c:1995 +#: src/unstrip.c:2008 #, fuzzy, c-format msgid "cannot open stripped file '%s' for module '%s': %s" -msgstr "nie można utworzyć nowego pliku '%s': %s" +msgstr "nie można utworzyć nowego pliku \"%s\": %s" -#: src/unstrip.c:2010 +#: src/unstrip.c:2023 #, fuzzy, c-format msgid "cannot find debug file for module '%s': %s" -msgstr "nie można utworzyć nowego pliku '%s': %s" +msgstr "nie można utworzyć nowego pliku \"%s\": %s" -#: src/unstrip.c:2014 +#: src/unstrip.c:2027 #, fuzzy, c-format msgid "cannot open debug file '%s' for module '%s': %s" -msgstr "nie można utworzyć nowego pliku '%s': %s" +msgstr "nie można utworzyć nowego pliku \"%s\": %s" -#: src/unstrip.c:2027 +#: src/unstrip.c:2040 #, fuzzy, c-format msgid "module '%s' file '%s' is not stripped" -msgstr "plik wejściowy '%s' zignorowany" +msgstr "plik wejściowy \"%s\" zignorowany" -#: src/unstrip.c:2058 +#: src/unstrip.c:2071 #, fuzzy, c-format msgid "cannot cache section addresses for module '%s': %s" -msgstr "nie można pobrać nagłówka sekcji dla sekcji [%2zu] '%s': %s\n" +msgstr "nie można pobrać nagłówka sekcji dla sekcji [%2zu] \"%s\": %s\n" -#: src/unstrip.c:2191 +#: src/unstrip.c:2204 #, fuzzy, c-format msgid "no matching modules found" msgstr "brak pasującego zakresu adresów" -#: src/unstrip.c:2200 +#: src/unstrip.c:2213 #, fuzzy, c-format msgid "matched more than one module" msgstr "%s podano więcej niż raz na wejściu" -#: src/unstrip.c:2247 +#: src/unstrip.c:2260 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" msgstr "" -#: src/unstrip.c:2248 +#: src/unstrip.c:2261 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugzilla.redhat.com/\n" -"POT-Creation-Date: 2010-05-03 14:14-0700\n" -"PO-Revision-Date: 2010-04-15 07:24+0300\n" +"POT-Creation-Date: 2010-06-28 12:08-0700\n" +"PO-Revision-Date: 2010-06-22 20:44+0300\n" "Last-Translator: Yuri Chornoivan <[email protected]>\n" "Language-Team: Ukrainian <[email protected]>\n" "MIME-Version: 1.0\n" @@ -15,10 +15,10 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Lokalize 1.0\n" +"X-Generator: Lokalize 1.1\n" -#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2822 -#: src/readelf.c:3161 src/unstrip.c:2087 src/unstrip.c:2295 +#: lib/xmalloc.c:51 lib/xmalloc.c:65 lib/xmalloc.c:79 src/readelf.c:2823 +#: src/readelf.c:3162 src/unstrip.c:2100 src/unstrip.c:2308 #, c-format msgid "memory exhausted" msgstr "пам’ять вичерпано" @@ -204,7 +204,7 @@ msgstr "немає розділу .debug_ranges" msgid "invalid CFI section" msgstr "некоректний розділ CFI" -#: libdwfl/argp-std.c:67 src/unstrip.c:2237 +#: libdwfl/argp-std.c:67 src/unstrip.c:2250 msgid "Input selection options:" msgstr "Вибір параметрів виведення даних:" @@ -354,6 +354,10 @@ msgstr "не є коректним файлом ELF" msgid "cannot handle DWARF type description" msgstr "не вдалося обробити опис типу DWARF" +#: libdwfl/libdwflP.h:97 +msgid "ELF file does not match build ID" +msgstr "Файл ELF не відповідає ідентифікатору збирання" + #: libebl/eblbackendname.c:63 msgid "No backend" msgstr "Немає сервера" @@ -414,7 +418,7 @@ msgstr "некоректна розмірність вхідного парам� msgid "invalid size of destination operand" msgstr "некоректна розмірність вихідного параметра" -#: libelf/elf_error.c:108 src/readelf.c:4779 +#: libelf/elf_error.c:108 src/readelf.c:4826 #, c-format msgid "invalid encoding" msgstr "некоректне кодування" @@ -495,7 +499,7 @@ msgstr "невідповідність полів data/scn" msgid "invalid section header" msgstr "некоректний заголовок розділу" -#: libelf/elf_error.c:208 src/readelf.c:6242 src/readelf.c:6343 +#: libelf/elf_error.c:208 src/readelf.c:6428 src/readelf.c:6529 #, c-format msgid "invalid data" msgstr "некоректні дані" @@ -579,7 +583,7 @@ msgstr "[АДРЕСА...]" #: src/addr2line.c:185 src/ar.c:289 src/elfcmp.c:555 src/elflint.c:239 #: src/findtextrel.c:170 src/ld.c:957 src/nm.c:253 src/objdump.c:181 -#: src/ranlib.c:136 src/readelf.c:449 src/size.c:219 src/strings.c:227 +#: src/ranlib.c:136 src/readelf.c:450 src/size.c:219 src/strings.c:227 #: src/strip.c:204 src/unstrip.c:234 #, c-format msgid "" @@ -594,7 +598,7 @@ msgstr "" #: src/addr2line.c:190 src/ar.c:294 src/elfcmp.c:560 src/elflint.c:244 #: src/findtextrel.c:175 src/ld.c:962 src/nm.c:258 src/objdump.c:186 -#: src/ranlib.c:141 src/readelf.c:454 src/size.c:224 src/strings.c:232 +#: src/ranlib.c:141 src/readelf.c:455 src/size.c:224 src/strings.c:232 #: src/strip.c:209 src/unstrip.c:239 #, c-format msgid "Written by %s.\n" @@ -610,12 +614,12 @@ msgstr "Синтаксис розділів вимагає точного одн msgid "offset %#<PRIxMAX> lies outside section '%s'" msgstr "зміщення %#<PRIxMAX> розташовано поза межами розділу «%s»" -#: src/addr2line.c:461 +#: src/addr2line.c:469 #, c-format msgid "cannot find symbol '%s'" msgstr "не вдалося знайти символ «%s»" -#: src/addr2line.c:466 +#: src/addr2line.c:474 #, c-format msgid "offset %#<PRIxMAX> lies outside contents of '%s'" msgstr "зміщення %#<PRIxMAX> розташовано поза межами вмісту «%s»" @@ -1003,8 +1007,8 @@ msgstr "Некоректне значення «%s» параметра --gaps." #: src/elfcmp.c:607 src/findtextrel.c:229 src/ldgeneric.c:1767 #: src/ldgeneric.c:4257 src/nm.c:363 src/ranlib.c:169 src/size.c:301 -#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1900 -#: src/unstrip.c:1929 +#: src/strings.c:183 src/strip.c:433 src/strip.c:468 src/unstrip.c:1913 +#: src/unstrip.c:1942 #, c-format msgid "cannot open '%s'" msgstr "не вдалося відкрити «%s»" @@ -1063,7 +1067,7 @@ msgstr "" msgid "FILE..." msgstr "ФАЙЛ..." -#: src/elflint.c:159 src/readelf.c:272 +#: src/elflint.c:159 src/readelf.c:273 #, c-format msgid "cannot open input file" msgstr "не вдалося відкрити вхідний файл." @@ -1082,7 +1086,7 @@ msgstr "помилка під час спроби закриття дескри� msgid "No errors" msgstr "Без помилок" -#: src/elflint.c:223 src/readelf.c:425 +#: src/elflint.c:223 src/readelf.c:426 msgid "Missing file name.\n" msgstr "Не вказано назви файла.\n" @@ -3413,7 +3417,7 @@ msgstr "Попередження: тип «%s» змінився з %s у %s н� msgid "Warning: size of `%s' changed from %<PRIu64> in %s to %<PRIu64> in %s" msgstr "Попередження: розмір «%s» змінено з %<PRIu64> у %s на %<PRIu64> у %s" -#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:629 src/strip.c:543 +#: src/ldgeneric.c:661 src/ldgeneric.c:1122 src/readelf.c:630 src/strip.c:543 #, c-format msgid "cannot determine number of sections: %s" msgstr "не вдалося визначити кількість розділів: %s" @@ -3653,7 +3657,7 @@ msgstr "внутрішня помилка: небезбітовий розділ msgid "cannot get header of 0th section: %s" msgstr "не вдалося отримати заголовок 0-го розділу: %s" -#: src/ldgeneric.c:6941 src/unstrip.c:1808 +#: src/ldgeneric.c:6941 src/unstrip.c:1820 #, c-format msgid "cannot update ELF header: %s" msgstr "не вдалося оновити заголовок ELF: %s" @@ -3855,11 +3859,11 @@ msgstr "%s%s%s: не вдалося розпізнати формат файла msgid "cannot create search tree" msgstr "не вдалося створити дерево пошуку" -#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:885 -#: src/readelf.c:1028 src/readelf.c:1169 src/readelf.c:1351 src/readelf.c:1549 -#: src/readelf.c:1735 src/readelf.c:1945 src/readelf.c:2199 src/readelf.c:2265 -#: src/readelf.c:2343 src/readelf.c:2841 src/readelf.c:2877 src/readelf.c:2939 -#: src/readelf.c:6493 src/readelf.c:7387 src/readelf.c:7534 src/readelf.c:7604 +#: src/nm.c:740 src/nm.c:1002 src/objdump.c:744 src/readelf.c:886 +#: src/readelf.c:1029 src/readelf.c:1170 src/readelf.c:1352 src/readelf.c:1550 +#: src/readelf.c:1736 src/readelf.c:1946 src/readelf.c:2200 src/readelf.c:2266 +#: src/readelf.c:2344 src/readelf.c:2842 src/readelf.c:2878 src/readelf.c:2940 +#: src/readelf.c:6682 src/readelf.c:7577 src/readelf.c:7724 src/readelf.c:7794 #: src/size.c:425 src/size.c:499 src/strip.c:483 #, c-format msgid "cannot get section header string table index" @@ -3948,7 +3952,7 @@ msgstr "Показати інформацію лише з розділу НАЗ� msgid "Show information from FILEs (a.out by default)." msgstr "Показати інформацію з ФАЙЛів (типово a.out)." -#: src/objdump.c:236 src/readelf.c:430 +#: src/objdump.c:236 src/readelf.c:431 msgid "No operation specified.\n" msgstr "Не вказано дії.\n" @@ -3957,11 +3961,11 @@ msgstr "Не вказано дії.\n" msgid "while close `%s'" msgstr "під час закриття «%s»" -#: src/objdump.c:379 src/readelf.c:1644 src/readelf.c:1818 +#: src/objdump.c:379 src/readelf.c:1645 src/readelf.c:1819 msgid "INVALID SYMBOL" msgstr "НЕКОРЕКТНИЙ СИМВОЛ" -#: src/objdump.c:394 src/readelf.c:1675 src/readelf.c:1851 +#: src/objdump.c:394 src/readelf.c:1676 src/readelf.c:1852 msgid "INVALID SECTION" msgstr "НЕКОРЕКТНИЙ РОЗДІЛ" @@ -4103,87 +4107,87 @@ msgstr "Не шукати назви символів для адресу у д� msgid "Print information from ELF file in human-readable form." msgstr "Виводити відомості з файла ELF у придатному для читання форматі." -#: src/readelf.c:401 +#: src/readelf.c:402 #, c-format msgid "Unknown DWARF debug section `%s'.\n" msgstr "Невідомий діагностичний розділ DWARF «%s».\n" -#: src/readelf.c:465 +#: src/readelf.c:466 #, c-format msgid "cannot generate Elf descriptor: %s" msgstr "не вдалося створити дескриптор Elf: %s" -#: src/readelf.c:477 +#: src/readelf.c:478 #, c-format msgid "'%s' is not an archive, cannot print archive index" msgstr "«%s» не є архівом, виведення покажчика архіву неможливе" -#: src/readelf.c:482 +#: src/readelf.c:483 #, c-format msgid "error while closing Elf descriptor: %s" msgstr "помилка під час спроби закриття дескриптора Elf: %s" -#: src/readelf.c:574 +#: src/readelf.c:575 #, c-format msgid "cannot stat input file" msgstr "не вдалося отримати дані з вхідного файла за допомогою stat" -#: src/readelf.c:576 +#: src/readelf.c:577 #, c-format msgid "input file is empty" msgstr "вхідний файл є порожнім" -#: src/readelf.c:578 +#: src/readelf.c:579 #, c-format msgid "failed reading '%s': %s" msgstr "не вдалося прочитати «%s»: %s" -#: src/readelf.c:614 +#: src/readelf.c:615 #, c-format msgid "cannot read ELF header: %s" msgstr "не вдалося прочитати заголовок ELF: %s" -#: src/readelf.c:622 +#: src/readelf.c:623 #, c-format msgid "cannot create EBL handle" msgstr "не вдалося створити дескриптор EBL" -#: src/readelf.c:635 +#: src/readelf.c:636 #, c-format msgid "cannot determine number of program headers: %s" msgstr "не вдалося визначити кількість заголовків програми: %s" -#: src/readelf.c:721 +#: src/readelf.c:722 msgid "NONE (None)" msgstr "NONE (Немає)" -#: src/readelf.c:722 +#: src/readelf.c:723 msgid "REL (Relocatable file)" msgstr "REL (Придатний до переміщення файл)" -#: src/readelf.c:723 +#: src/readelf.c:724 msgid "EXEC (Executable file)" msgstr "EXEC (Виконуваний файл)" -#: src/readelf.c:724 +#: src/readelf.c:725 msgid "DYN (Shared object file)" msgstr "DYN (Файл об’єктів спільного використання)" -#: src/readelf.c:725 +#: src/readelf.c:726 msgid "CORE (Core file)" msgstr "CORE (Файл ядра)" -#: src/readelf.c:730 +#: src/readelf.c:731 #, c-format msgid "OS Specific: (%x)\n" msgstr "ОС-специфічне: (%x)\n" -#: src/readelf.c:732 +#: src/readelf.c:733 #, c-format msgid "Processor Specific: (%x)\n" msgstr "Специфічне для процесора: (%x)\n" -#: src/readelf.c:742 +#: src/readelf.c:743 msgid "" "ELF Header:\n" " Magic: " @@ -4191,7 +4195,7 @@ msgstr "" "Заголовок ELF:\n" " Magic: " -#: src/readelf.c:746 +#: src/readelf.c:747 #, c-format msgid "" "\n" @@ -4200,117 +4204,117 @@ msgstr "" "\n" " Клас: %s\n" -#: src/readelf.c:751 +#: src/readelf.c:752 #, c-format msgid " Data: %s\n" msgstr " Дані: %s\n" -#: src/readelf.c:757 +#: src/readelf.c:758 #, c-format msgid " Ident Version: %hhd %s\n" msgstr " Версія Ident: %hhd %s\n" -#: src/readelf.c:759 src/readelf.c:776 +#: src/readelf.c:760 src/readelf.c:777 msgid "(current)" msgstr "(поточний)" -#: src/readelf.c:763 +#: src/readelf.c:764 #, c-format msgid " OS/ABI: %s\n" msgstr " ОС/ABI: %s\n" -#: src/readelf.c:766 +#: src/readelf.c:767 #, c-format msgid " ABI Version: %hhd\n" msgstr " Версія ABI: %hhd\n" -#: src/readelf.c:769 +#: src/readelf.c:770 msgid " Type: " msgstr " Тип: " -#: src/readelf.c:772 +#: src/readelf.c:773 #, c-format msgid " Machine: %s\n" msgstr " Архітектура: %s\n" -#: src/readelf.c:774 +#: src/readelf.c:775 #, c-format msgid " Version: %d %s\n" msgstr " Версія: %d %s\n" -#: src/readelf.c:778 +#: src/readelf.c:779 #, c-format msgid " Entry point address: %#<PRIx64>\n" msgstr " Адреса вхідної точки: %#<PRIx64>\n" -#: src/readelf.c:781 +#: src/readelf.c:782 #, c-format msgid " Start of program headers: %<PRId64> %s\n" msgstr " Початок заголовків програм: %<PRId64> %s\n" -#: src/readelf.c:782 src/readelf.c:785 +#: src/readelf.c:783 src/readelf.c:786 msgid "(bytes into file)" msgstr "(байтів у файл)" -#: src/readelf.c:784 +#: src/readelf.c:785 #, c-format msgid " Start of section headers: %<PRId64> %s\n" msgstr " Початок заголовків розділів: %<PRId64> %s\n" -#: src/readelf.c:787 +#: src/readelf.c:788 #, c-format msgid " Flags: %s\n" msgstr " Прапорці: %s\n" -#: src/readelf.c:790 +#: src/readelf.c:791 #, c-format msgid " Size of this header: %<PRId16> %s\n" msgstr " Розмір цього заголовка: %<PRId16> %s\n" -#: src/readelf.c:791 src/readelf.c:794 src/readelf.c:811 +#: src/readelf.c:792 src/readelf.c:795 src/readelf.c:812 msgid "(bytes)" msgstr "(байтів)" -#: src/readelf.c:793 +#: src/readelf.c:794 #, c-format msgid " Size of program header entries: %<PRId16> %s\n" msgstr " Розмір записів заголовка програми: %<PRId16> %s\n" -#: src/readelf.c:796 +#: src/readelf.c:797 #, c-format msgid " Number of program headers entries: %<PRId16>" msgstr " Кількість записів заголовків програми: %<PRId16>" -#: src/readelf.c:803 +#: src/readelf.c:804 #, c-format msgid " (%<PRIu32> in [0].sh_info)" msgstr " (%<PRIu32> у [0].sh_info)" -#: src/readelf.c:806 src/readelf.c:823 src/readelf.c:837 +#: src/readelf.c:807 src/readelf.c:824 src/readelf.c:838 msgid " ([0] not available)" msgstr " ([0] недоступний)" -#: src/readelf.c:810 +#: src/readelf.c:811 #, c-format msgid " Size of section header entries: %<PRId16> %s\n" msgstr " Розмір записів заголовків розділів: %<PRId16> %s\n" -#: src/readelf.c:813 +#: src/readelf.c:814 #, c-format msgid " Number of section headers entries: %<PRId16>" msgstr " Кількість записів заголовків розділів: %<PRId16>" -#: src/readelf.c:820 +#: src/readelf.c:821 #, c-format msgid " (%<PRIu32> in [0].sh_size)" msgstr " (%<PRIu32> у [0].sh_size)" -#: src/readelf.c:833 +#: src/readelf.c:834 #, c-format msgid " (%<PRIu32> in [0].sh_link)" msgstr " (%<PRIu32> у [0].sh_link)" -#: src/readelf.c:841 +#: src/readelf.c:842 #, c-format msgid "" " Section header string table index: XINDEX%s\n" @@ -4319,7 +4323,7 @@ msgstr "" " Індекс заголовка розділу у таблиці рядків: XINDEX%s\n" "\n" -#: src/readelf.c:845 +#: src/readelf.c:846 #, c-format msgid "" " Section header string table index: %<PRId16>\n" @@ -4328,7 +4332,7 @@ msgstr "" " Індекс заголовка розділу у таблиці рядків: %<PRId16>\n" "\n" -#: src/readelf.c:877 +#: src/readelf.c:878 #, c-format msgid "" "There are %d section headers, starting at offset %#<PRIx64>:\n" @@ -4337,11 +4341,11 @@ msgstr "" "Виявлено %d заголовків розділів, зміщення початку — %#<PRIx64>:\n" "\n" -#: src/readelf.c:887 +#: src/readelf.c:888 msgid "Section Headers:" msgstr "Заголовки розділів:" -#: src/readelf.c:890 +#: src/readelf.c:891 msgid "" "[Nr] Name Type Addr Off Size ES Flags Lk " "Inf Al" @@ -4349,7 +4353,7 @@ msgstr "" "[№ ] Назва Тип Адр Змі Розмір ES Прап Lk " "Інф Al" -#: src/readelf.c:892 +#: src/readelf.c:893 msgid "" "[Nr] Name Type Addr Off Size ES " "Flags Lk Inf Al" @@ -4357,31 +4361,31 @@ msgstr "" "[№ ] Назва Тип Адр Змі Розмір ES " "Прап Lk Інф Al" -#: src/readelf.c:899 src/readelf.c:1052 +#: src/readelf.c:900 src/readelf.c:1053 #, c-format msgid "cannot get section: %s" msgstr "не вдалося отримати розділ: %s" -#: src/readelf.c:906 src/readelf.c:1060 src/readelf.c:7554 src/unstrip.c:353 -#: src/unstrip.c:377 src/unstrip.c:427 src/unstrip.c:536 src/unstrip.c:553 -#: src/unstrip.c:591 src/unstrip.c:789 src/unstrip.c:1057 src/unstrip.c:1244 -#: src/unstrip.c:1305 src/unstrip.c:1427 src/unstrip.c:1480 src/unstrip.c:1588 -#: src/unstrip.c:1778 +#: src/readelf.c:907 src/readelf.c:1061 src/readelf.c:7744 src/unstrip.c:353 +#: src/unstrip.c:384 src/unstrip.c:433 src/unstrip.c:541 src/unstrip.c:558 +#: src/unstrip.c:594 src/unstrip.c:792 src/unstrip.c:1060 src/unstrip.c:1250 +#: src/unstrip.c:1311 src/unstrip.c:1433 src/unstrip.c:1486 src/unstrip.c:1593 +#: src/unstrip.c:1782 #, c-format msgid "cannot get section header: %s" msgstr "не вдалося отримати заголовок розділу: %s" -#: src/readelf.c:964 +#: src/readelf.c:965 msgid "Program Headers:" msgstr "Заголовки програми:" -#: src/readelf.c:966 +#: src/readelf.c:967 msgid "" " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align" msgstr "" " Тип Зміщен ВіртАдр ФізАдр РозмФайл РозмПам Пра Вирів" -#: src/readelf.c:969 +#: src/readelf.c:970 msgid "" " Type Offset VirtAddr PhysAddr FileSiz " "MemSiz Flg Align" @@ -4389,12 +4393,12 @@ msgstr "" " Тип Зміщен ВіртАдр ФізАдр " "РозмФайлРозмПам Пра Вирів" -#: src/readelf.c:1009 +#: src/readelf.c:1010 #, c-format msgid "\t[Requesting program interpreter: %s]\n" msgstr "\t[Запит щодо інтерпретатора програми: %s]\n" -#: src/readelf.c:1030 +#: src/readelf.c:1031 msgid "" "\n" " Section to Segment mapping:\n" @@ -4404,12 +4408,12 @@ msgstr "" " Відображення розділів на сегмент:\n" " Розділи сегмента..." -#: src/readelf.c:1041 src/unstrip.c:1824 src/unstrip.c:1863 src/unstrip.c:1870 +#: src/readelf.c:1042 src/unstrip.c:1837 src/unstrip.c:1876 src/unstrip.c:1883 #, c-format msgid "cannot get program header: %s" msgstr "не вдалося отримати заголовок програми: %s" -#: src/readelf.c:1175 +#: src/readelf.c:1176 #, c-format msgid "" "\n" @@ -4427,7 +4431,7 @@ msgstr[2] "" "\n" "Група розділів COMDAT [%2zu] «%s» з підписом «%s» містить %zu записів:\n" -#: src/readelf.c:1180 +#: src/readelf.c:1181 #, c-format msgid "" "\n" @@ -4445,15 +4449,15 @@ msgstr[2] "" "\n" "Група розділів [%2zu] «%s» з підписом «%s» містить %zu записів:\n" -#: src/readelf.c:1188 +#: src/readelf.c:1189 msgid "<INVALID SYMBOL>" msgstr "<НЕКОРЕКТНИЙ СИМВОЛ>" -#: src/readelf.c:1202 +#: src/readelf.c:1203 msgid "<INVALID SECTION>" msgstr "<НЕКОРЕКТНИЙ РОЗДІЛ>" -#: src/readelf.c:1353 +#: src/readelf.c:1354 #, c-format msgid "" "\n" @@ -4476,36 +4480,36 @@ msgstr[2] "" "Динамічний сегмент містить %lu записів:\n" " Адр: %#0*<PRIx64> Зміщення: %#08<PRIx64> Пос. на розділ: [%2u] '%s'\n" -#: src/readelf.c:1365 +#: src/readelf.c:1366 msgid " Type Value\n" msgstr " Тип Значення\n" -#: src/readelf.c:1389 +#: src/readelf.c:1390 #, c-format msgid "Shared library: [%s]\n" msgstr "Спільна бібліотека: [%s]\n" -#: src/readelf.c:1394 +#: src/readelf.c:1395 #, c-format msgid "Library soname: [%s]\n" msgstr "Назва so бібліотеки: [%s]\n" -#: src/readelf.c:1399 +#: src/readelf.c:1400 #, c-format msgid "Library rpath: [%s]\n" msgstr "Rpath бібліотеки: [%s]\n" -#: src/readelf.c:1404 +#: src/readelf.c:1405 #, c-format msgid "Library runpath: [%s]\n" msgstr "Runpath бібліотеки: [%s]\n" -#: src/readelf.c:1424 +#: src/readelf.c:1425 #, c-format msgid "%<PRId64> (bytes)\n" msgstr "%<PRId64> (байт)\n" -#: src/readelf.c:1534 src/readelf.c:1720 +#: src/readelf.c:1535 src/readelf.c:1721 #, c-format msgid "" "\n" @@ -4514,7 +4518,7 @@ msgstr "" "\n" "Некоректна таблиця символів за зміщенням %#0<PRIx64>\n" -#: src/readelf.c:1552 src/readelf.c:1737 +#: src/readelf.c:1553 src/readelf.c:1738 #, c-format msgid "" "\n" @@ -4537,7 +4541,7 @@ msgstr[2] "" "Розділ переміщення [%2zu] «%s» для розділу [%2u] «%s» за зміщенням %#0<PRIx64> " "містить %d записів:\n" -#: src/readelf.c:1567 +#: src/readelf.c:1568 #, c-format msgid "" "\n" @@ -4555,30 +4559,30 @@ msgstr[2] "" "\n" "Розділ переміщення [%2u] «%s» за зміщенням %#0<PRIx64> містить %d записів:\n" -#: src/readelf.c:1577 +#: src/readelf.c:1578 msgid " Offset Type Value Name\n" msgstr " Зміщення Тип Значення Назва\n" -#: src/readelf.c:1579 +#: src/readelf.c:1580 msgid " Offset Type Value Name\n" msgstr " Зміщення Тип Значення Назва\n" -#: src/readelf.c:1632 src/readelf.c:1643 src/readelf.c:1656 src/readelf.c:1674 -#: src/readelf.c:1686 src/readelf.c:1805 src/readelf.c:1817 src/readelf.c:1831 -#: src/readelf.c:1850 src/readelf.c:1863 +#: src/readelf.c:1633 src/readelf.c:1644 src/readelf.c:1657 src/readelf.c:1675 +#: src/readelf.c:1687 src/readelf.c:1806 src/readelf.c:1818 src/readelf.c:1832 +#: src/readelf.c:1851 src/readelf.c:1864 msgid "<INVALID RELOC>" msgstr "<НЕКОРЕКТНЕ ПЕРЕМІЩЕННЯ>" -#: src/readelf.c:1749 +#: src/readelf.c:1750 msgid " Offset Type Value Addend Name\n" msgstr " Зміщення Тип Значення Назва додатка\n" -#: src/readelf.c:1751 +#: src/readelf.c:1752 msgid " Offset Type Value Addend Name\n" msgstr "" " Зміщення Тип Значення Назва додатка\n" -#: src/readelf.c:1952 +#: src/readelf.c:1953 #, c-format msgid "" "\n" @@ -4596,7 +4600,7 @@ msgstr[2] "" "\n" "Таблиця символів [%2u] «%s» містить %u записів:\n" -#: src/readelf.c:1958 +#: src/readelf.c:1959 #, c-format msgid " %lu local symbol String table: [%2u] '%s'\n" msgid_plural " %lu local symbols String table: [%2u] '%s'\n" @@ -4604,33 +4608,33 @@ msgstr[0] " %lu лок. символ Таблиця символів: [%2u] « msgstr[1] " %lu лок. символи Таблиця символів: [%2u] «%s»\n" msgstr[2] " %lu лок. символів Таблиця символів: [%2u] «%s»\n" -#: src/readelf.c:1968 +#: src/readelf.c:1969 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " №№ Знач. Роз. Тип Зв’яз Вид. Інд Назва\n" -#: src/readelf.c:1970 +#: src/readelf.c:1971 msgid " Num: Value Size Type Bind Vis Ndx Name\n" msgstr " №№ Знач. Роз. Тип Зв’яз Вид. Інд Назва\n" -#: src/readelf.c:1990 +#: src/readelf.c:1991 #, c-format msgid "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" msgstr "%5u: %0*<PRIx64> %6<PRId64> %-7s %-6s %-9s %6s %s" -#: src/readelf.c:2078 +#: src/readelf.c:2079 #, c-format msgid "bad dynamic symbol" msgstr "помилковий динамічний символ" -#: src/readelf.c:2160 +#: src/readelf.c:2161 msgid "none" msgstr "немає" -#: src/readelf.c:2177 +#: src/readelf.c:2178 msgid "| <unknown>" msgstr "| <невідомо>" -#: src/readelf.c:2202 +#: src/readelf.c:2203 #, c-format msgid "" "\n" @@ -4653,17 +4657,17 @@ msgstr[2] "" "Розділ потреби у версіях [%2u] «%s», що містить %d записів:\n" " Адр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> Посилання на розділ: [%2u] «%s»\n" -#: src/readelf.c:2225 +#: src/readelf.c:2226 #, c-format msgid " %#06x: Version: %hu File: %s Cnt: %hu\n" msgstr " %#06x: Версія: %hu Файл: %s Кть: %hu\n" -#: src/readelf.c:2238 +#: src/readelf.c:2239 #, c-format msgid " %#06x: Name: %s Flags: %s Version: %hu\n" msgstr " %#06x: Назва: %s Прап: %s Версія: %hu\n" -#: src/readelf.c:2269 +#: src/readelf.c:2270 #, c-format msgid "" "\n" @@ -4686,17 +4690,17 @@ msgstr[2] "" "Розділ визначення версії [%2u] «%s», що містить %d записів:\n" " Адр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> Посилання на розділ: [%2u] «%s»\n" -#: src/readelf.c:2299 +#: src/readelf.c:2300 #, c-format msgid " %#06x: Version: %hd Flags: %s Index: %hd Cnt: %hd Name: %s\n" msgstr " %#06x: Версія: %hd Прап.: %s Індекс: %hd К-ть: %hd Назва: %s\n" -#: src/readelf.c:2314 +#: src/readelf.c:2315 #, c-format msgid " %#06x: Parent %d: %s\n" msgstr " %#06x: батьківський %d: %s\n" -#: src/readelf.c:2546 +#: src/readelf.c:2547 #, c-format msgid "" "\n" @@ -4719,15 +4723,15 @@ msgstr[2] "" "Розділ символів версій [%2u] «%s», що містить %d записів:\n" " Адр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> Посилання на розділ: [%2u] «%s»" -#: src/readelf.c:2576 +#: src/readelf.c:2577 msgid " 0 *local* " msgstr " 0 *локальний* " -#: src/readelf.c:2581 +#: src/readelf.c:2582 msgid " 1 *global* " msgstr " 1 *загальний* " -#: src/readelf.c:2612 +#: src/readelf.c:2613 #, c-format msgid "" "\n" @@ -4755,36 +4759,36 @@ msgstr[2] "" "блоками):\n" " Адр.: %#0*<PRIx64> Зміщ.: %#08<PRIx64> Посилання на розділ: [%2u] «%s»\n" -#: src/readelf.c:2636 +#: src/readelf.c:2637 #, no-c-format msgid " Length Number % of total Coverage\n" msgstr " Довжина Номер % від загал. Покриття\n" -#: src/readelf.c:2638 +#: src/readelf.c:2639 #, c-format msgid " 0 %6<PRIu32> %5.1f%%\n" msgstr " 0 %6<PRIu32> %5.1f%%\n" -#: src/readelf.c:2645 +#: src/readelf.c:2646 #, c-format msgid "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" msgstr "%7d %6<PRIu32> %5.1f%% %5.1f%%\n" -#: src/readelf.c:2658 +#: src/readelf.c:2659 #, c-format msgid "" " Average number of tests: successful lookup: %f\n" -" unsuccessful lookup: %f\n" +"\t\t\t unsuccessful lookup: %f\n" msgstr "" " Середня кількість тестів: успішний пошук: %f\n" -" неуспішний пошук: %f\n" +"\t\t\t неуспішний пошук: %f\n" -#: src/readelf.c:2676 src/readelf.c:2718 src/readelf.c:2759 +#: src/readelf.c:2677 src/readelf.c:2719 src/readelf.c:2760 #, c-format msgid "cannot get data for section %d: %s" msgstr "не вдалося отримати дані для розділу %d: %s" -#: src/readelf.c:2813 +#: src/readelf.c:2814 #, c-format msgid "" " Symbol Bias: %u\n" @@ -4794,7 +4798,7 @@ msgstr "" " Розмір бітової маски: %zu байтів %<PRIuFAST32>%% встановлених бітів зсув " "2-го хешу: %u\n" -#: src/readelf.c:2887 +#: src/readelf.c:2888 #, c-format msgid "" "\n" @@ -4815,7 +4819,7 @@ msgstr[2] "" "Розділ списку бібліотек [%2zu] «%s» за зміщенням %#0<PRIx64> містить %d " "записів:\n" -#: src/readelf.c:2901 +#: src/readelf.c:2902 msgid "" " Library Time Stamp Checksum Version " "Flags" @@ -4823,7 +4827,7 @@ msgstr "" " Бібліотека Часовий штамп Версія суми " "Прапорці" -#: src/readelf.c:2951 +#: src/readelf.c:2952 #, c-format msgid "" "\n" @@ -4834,140 +4838,140 @@ msgstr "" "Розділ атрибутів об’єктів [%2zu] «%s» з %<PRIu64> байтів за зміщенням %" "#0<PRIx64>:\n" -#: src/readelf.c:2967 +#: src/readelf.c:2968 msgid " Owner Size\n" msgstr " Власник Розмір\n" -#: src/readelf.c:2993 +#: src/readelf.c:2994 #, c-format msgid " %-13s %4<PRIu32>\n" msgstr " %-13s %4<PRIu32>\n" -#: src/readelf.c:3025 +#: src/readelf.c:3026 #, c-format msgid " %-4u %12<PRIu32>\n" msgstr " %-4u %12<PRIu32>\n" -#: src/readelf.c:3030 +#: src/readelf.c:3031 #, c-format msgid " File: %11<PRIu32>\n" msgstr " Файл: %11<PRIu32>\n" -#: src/readelf.c:3065 +#: src/readelf.c:3066 #, c-format msgid " %s: %<PRId64>, %s\n" msgstr " %s: %<PRId64>, %s\n" -#: src/readelf.c:3068 +#: src/readelf.c:3069 #, c-format msgid " %s: %<PRId64>\n" msgstr " %s: %<PRId64>\n" -#: src/readelf.c:3071 +#: src/readelf.c:3072 #, c-format msgid " %s: %s\n" msgstr " %s: %s\n" -#: src/readelf.c:3078 +#: src/readelf.c:3079 #, c-format msgid " %u: %<PRId64>\n" msgstr " %u: %<PRId64>\n" -#: src/readelf.c:3081 +#: src/readelf.c:3082 #, c-format msgid " %u: %s\n" msgstr " %u: %s\n" -#: src/readelf.c:3117 +#: src/readelf.c:3118 #, c-format msgid "%s+%#<PRIx64> <%s+%#<PRIx64>>" msgstr "%s+%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3120 +#: src/readelf.c:3121 #, c-format msgid "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" msgstr "%s+%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3125 +#: src/readelf.c:3126 #, c-format msgid "%#<PRIx64> <%s+%#<PRIx64>>" msgstr "%#<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3128 +#: src/readelf.c:3129 #, c-format msgid "%#0*<PRIx64> <%s+%#<PRIx64>>" msgstr "%#0*<PRIx64> <%s+%#<PRIx64>>" -#: src/readelf.c:3134 +#: src/readelf.c:3135 #, c-format msgid "%s+%#<PRIx64> <%s>" msgstr "%s+%#<PRIx64> <%s>" -#: src/readelf.c:3137 +#: src/readelf.c:3138 #, c-format msgid "%s+%#0*<PRIx64> <%s>" msgstr "%s+%#0*<PRIx64> <%s>" -#: src/readelf.c:3141 +#: src/readelf.c:3142 #, c-format msgid "%#<PRIx64> <%s>" msgstr "%#<PRIx64> <%s>" -#: src/readelf.c:3144 +#: src/readelf.c:3145 #, c-format msgid "%#0*<PRIx64> <%s>" msgstr "%#0*<PRIx64> <%s>" -#: src/readelf.c:3149 +#: src/readelf.c:3150 #, c-format msgid "%s+%#<PRIx64>" msgstr "%s+%#<PRIx64>" -#: src/readelf.c:3152 +#: src/readelf.c:3153 #, c-format msgid "%s+%#0*<PRIx64>" msgstr "%s+%#0*<PRIx64>" -#: src/readelf.c:3260 +#: src/readelf.c:3284 #, c-format msgid "unknown tag %hx" msgstr "невідомий теґ %hx" -#: src/readelf.c:3262 +#: src/readelf.c:3286 #, c-format msgid "unknown user tag %hx" msgstr "невідомий теґ користувача %hx" -#: src/readelf.c:3480 +#: src/readelf.c:3510 #, c-format msgid "unknown attribute %hx" msgstr "невідомий атрибут %hx" -#: src/readelf.c:3483 +#: src/readelf.c:3513 #, c-format msgid "unknown user attribute %hx" msgstr "невідомий атрибут користувача %hx" -#: src/readelf.c:3529 +#: src/readelf.c:3563 #, c-format msgid "unknown form %<PRIx64>" msgstr "невідома форма %<PRIx64>" -#: src/readelf.c:3763 +#: src/readelf.c:3797 msgid "empty block" msgstr "порожній блок" -#: src/readelf.c:3766 +#: src/readelf.c:3800 #, c-format msgid "%zu byte block:" msgstr "%zu-байтовий блок:" -#: src/readelf.c:4175 +#: src/readelf.c:4222 #, c-format msgid "%*s[%4<PRIuMAX>] %s <TRUNCATED>\n" msgstr "%*s[%4<PRIuMAX>] %s <ОБРІЗАНО>\n" -#: src/readelf.c:4188 +#: src/readelf.c:4235 #, c-format msgid "" "\n" @@ -4978,7 +4982,7 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n" " [ Код]\n" -#: src/readelf.c:4195 +#: src/readelf.c:4242 #, c-format msgid "" "\n" @@ -4987,30 +4991,30 @@ msgstr "" "\n" "Розділ скорочень за зміщенням %<PRIu64>:\n" -#: src/readelf.c:4208 +#: src/readelf.c:4255 #, c-format msgid " *** error while reading abbreviation: %s\n" msgstr " *** помилка під час читання скорочення: %s\n" -#: src/readelf.c:4224 +#: src/readelf.c:4271 #, c-format msgid " [%5u] offset: %<PRId64>, children: %s, tag: %s\n" msgstr " [%5u] зміщення: %<PRId64>, дочірній: %s, мітка: %s\n" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "yes" msgstr "так" -#: src/readelf.c:4227 +#: src/readelf.c:4274 msgid "no" msgstr "ні" -#: src/readelf.c:4263 +#: src/readelf.c:4310 #, c-format msgid "cannot get .debug_aranges content: %s" msgstr "не вдалося отримати дані get .debug_aranges: %s" -#: src/readelf.c:4268 +#: src/readelf.c:4315 #, c-format msgid "" "\n" @@ -5028,12 +5032,12 @@ msgstr[2] "" "\n" "Розділ DWARF [%2zu] «%s» за зміщенням %#<PRIx64> містить %zu записів:\n" -#: src/readelf.c:4298 +#: src/readelf.c:4345 #, c-format msgid " [%*zu] ???\n" msgstr " [%*zu] ???\n" -#: src/readelf.c:4300 +#: src/readelf.c:4347 #, c-format msgid "" " [%*zu] start: %0#*<PRIx64>, length: %5<PRIu64>, CU DIE offset: %6<PRId64>\n" @@ -5041,13 +5045,13 @@ msgstr "" " [%*zu] початок: %0#*<PRIx64>, довжина: %5<PRIu64>, зміщення CU DIE: %" "6<PRId64>\n" -#: src/readelf.c:4319 +#: src/readelf.c:4366 #, c-format msgid "cannot get .debug_ranges content: %s" msgstr "не вдалося отримати дані .debug_ranges: %s" -#: src/readelf.c:4324 src/readelf.c:4810 src/readelf.c:5452 src/readelf.c:5897 -#: src/readelf.c:5992 src/readelf.c:6164 +#: src/readelf.c:4371 src/readelf.c:4857 src/readelf.c:5581 src/readelf.c:6079 +#: src/readelf.c:6178 src/readelf.c:6350 #, c-format msgid "" "\n" @@ -5056,32 +5060,32 @@ msgstr "" "\n" "Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n" -#: src/readelf.c:4338 src/readelf.c:5911 +#: src/readelf.c:4385 src/readelf.c:6097 #, c-format msgid " [%6tx] <INVALID DATA>\n" msgstr " [%6tx] <НЕКОРЕКТНІ ДАНІ>\n" -#: src/readelf.c:4360 src/readelf.c:5933 +#: src/readelf.c:4407 src/readelf.c:6119 #, c-format msgid " [%6tx] base address %s\n" msgstr " [%6tx] базова адреса %s\n" -#: src/readelf.c:4371 +#: src/readelf.c:4418 #, c-format msgid " [%6tx] %s..%s\n" msgstr " [%6tx] %s..%s\n" -#: src/readelf.c:4373 +#: src/readelf.c:4420 #, c-format msgid " %s..%s\n" msgstr " %s..%s\n" -#: src/readelf.c:4799 src/readelf.c:6230 src/readelf.c:6332 +#: src/readelf.c:4846 src/readelf.c:6416 src/readelf.c:6518 #, c-format msgid "cannot get %s content: %s" msgstr "не вдалося отримати дані %s: %s" -#: src/readelf.c:4806 +#: src/readelf.c:4853 #, c-format msgid "" "\n" @@ -5090,12 +5094,12 @@ msgstr "" "\n" "Розділ відомостей щодо вікна викликів [%2zu] «%s» за зміщенням %#<PRIx64>:\n" -#: src/readelf.c:4833 src/readelf.c:5486 +#: src/readelf.c:4881 src/readelf.c:5615 #, c-format msgid "invalid data in section [%zu] '%s'" msgstr "некоректні дані у розділі [%zu] «%s»" -#: src/readelf.c:4855 +#: src/readelf.c:4903 #, c-format msgid "" "\n" @@ -5104,50 +5108,50 @@ msgstr "" "\n" " [%6tx] нульовий переривач\n" -#: src/readelf.c:4924 +#: src/readelf.c:4987 #, c-format msgid "invalid augmentation length" msgstr "некоректна довжина збільшення" -#: src/readelf.c:4936 +#: src/readelf.c:4999 msgid "FDE address encoding: " msgstr "Кодування адреси FDE: " -#: src/readelf.c:4942 +#: src/readelf.c:5005 msgid "LSDA pointer encoding: " msgstr "Кодування вказівника LSDA: " -#: src/readelf.c:5034 +#: src/readelf.c:5101 #, c-format msgid " (offset: %#<PRIx64>)" msgstr " (зміщення: %#<PRIx64>)" -#: src/readelf.c:5041 +#: src/readelf.c:5108 #, c-format msgid " (end offset: %#<PRIx64>)" msgstr " (зміщення від кінця: %#<PRIx64>)" -#: src/readelf.c:5068 +#: src/readelf.c:5135 #, c-format msgid " %-26sLSDA pointer: %#<PRIx64>\n" msgstr " %-26sвказівник LSDA: %#<PRIx64>\n" -#: src/readelf.c:5114 +#: src/readelf.c:5182 #, c-format msgid "cannot get attribute code: %s" msgstr "не вдалося отримати код атрибута: %s" -#: src/readelf.c:5122 +#: src/readelf.c:5190 #, c-format msgid "cannot get attribute form: %s" msgstr "не вдалося отримати форму атрибута: %s" -#: src/readelf.c:5135 +#: src/readelf.c:5203 #, c-format msgid "cannot get attribute value: %s" msgstr "не вдалося отримати значення атрибута: %s" -#: src/readelf.c:5331 +#: src/readelf.c:5428 #, c-format msgid "" "\n" @@ -5158,7 +5162,20 @@ msgstr "" "Розділ DWARF [%2zu] «%s» за зміщенням %#<PRIx64>:\n" " [Зміщення]\n" -#: src/readelf.c:5356 +#: src/readelf.c:5458 +#, c-format +msgid "" +" Type unit at offset %<PRIu64>:\n" +" Version: %<PRIu16>, Abbreviation section offset: %<PRIu64>, Address size: %" +"<PRIu8>, Offset size: %<PRIu8>\n" +" Type signature: %#<PRIx64>, Type offset: %#<PRIx64>\n" +msgstr "" +" Модуль типів за зміщенням %<PRIu64>:\n" +" Версія: %<PRIu16>, Зміщення розділу скорочень: %<PRIu64>, Адреса: %<PRIu8>, " +"Зміщення: %<PRIu8>\n" +" Підпис типу: %#<PRIx64>, Зміщення типу: %#<PRIx64>\n" + +#: src/readelf.c:5466 #, c-format msgid "" " Compilation unit at offset %<PRIu64>:\n" @@ -5169,37 +5186,37 @@ msgstr "" " Версія: %<PRIu16>, Зміщення розділу скорочень: %<PRIu64>, Адреса: %<PRIu8>, " "Зміщення: %<PRIu8>\n" -#: src/readelf.c:5374 +#: src/readelf.c:5489 #, c-format msgid "cannot get DIE at offset %<PRIu64> in section '%s': %s" msgstr "не вдалося отримати DIE за зміщенням %<PRIu64> у розділі «%s»: %s" -#: src/readelf.c:5385 +#: src/readelf.c:5500 #, c-format msgid "cannot get DIE offset: %s" msgstr "не вдалося отримати зміщення DIE: %s" -#: src/readelf.c:5393 +#: src/readelf.c:5508 #, c-format msgid "cannot get tag of DIE at offset %<PRIu64> in section '%s': %s" msgstr "не вдалося отримати мітку DIE за зміщенням %<PRIu64> у розділі «%s»: %s" -#: src/readelf.c:5422 +#: src/readelf.c:5537 #, c-format msgid "cannot get next DIE: %s\n" msgstr "не вдалося визначити наступний DIE: %s\n" -#: src/readelf.c:5429 +#: src/readelf.c:5544 #, c-format msgid "cannot get next DIE: %s" msgstr "не вдалося визначити наступний DIE: %s" -#: src/readelf.c:5464 +#: src/readelf.c:5593 #, c-format msgid "cannot get line data section data: %s" msgstr "не вдалося отримати дані розділу лінійних даних: %s" -#: src/readelf.c:5477 +#: src/readelf.c:5606 #, c-format msgid "" "\n" @@ -5208,7 +5225,7 @@ msgstr "" "\n" "Таблиця за зміщенням %Zu:\n" -#: src/readelf.c:5529 +#: src/readelf.c:5661 #, c-format msgid "" "\n" @@ -5216,6 +5233,7 @@ msgid "" " DWARF version: %<PRIuFAST16>\n" " Prologue length: %<PRIu64>\n" " Minimum instruction length: %<PRIuFAST8>\n" +" Maximum operations per instruction: %<PRIuFAST8>\n" " Initial value if '%s': %<PRIuFAST8>\n" " Line base: %<PRIdFAST8>\n" " Line range: %<PRIuFAST8>\n" @@ -5228,19 +5246,20 @@ msgstr "" " Версія DWARF: %<PRIuFAST16>\n" " Довжина вступу: %<PRIu64>\n" " Мінімальна довж. інстр.: %<PRIuFAST8>\n" -" Поч. знач., якщо «%s»: %<PRIuFAST8>\n" +" Макс. к-ть операцій на інструкцію: %<PRIuFAST8>\n" +" Поч. значення, якщо «%s»: %<PRIuFAST8>\n" " Основа рядків: %<PRIdFAST8>\n" " Діапазон рядків: %<PRIuFAST8>\n" " Основа кодів операцій: %<PRIuFAST8>\n" "\n" "Коди операцій:\n" -#: src/readelf.c:5548 +#: src/readelf.c:5682 #, c-format msgid "invalid data at offset %tu in section [%zu] '%s'" msgstr "некоректні дані зі зміщенням %tu у розділі [%zu] «%s»" -#: src/readelf.c:5563 +#: src/readelf.c:5697 #, c-format msgid " [%*<PRIuFAST8>] %hhu argument\n" msgid_plural " [%*<PRIuFAST8>] %hhu arguments\n" @@ -5248,7 +5267,7 @@ msgstr[0] " [%*<PRIuFAST8>] %hhu аргумент\n" msgstr[1] " [%*<PRIuFAST8>] %hhu аргументи\n" msgstr[2] " [%*<PRIuFAST8>] %hhu аргументів\n" -#: src/readelf.c:5571 +#: src/readelf.c:5705 msgid "" "\n" "Directory table:" @@ -5256,7 +5275,7 @@ msgstr "" "\n" "Таблиця каталогу:" -#: src/readelf.c:5587 +#: src/readelf.c:5721 msgid "" "\n" "File name table:\n" @@ -5266,7 +5285,7 @@ msgstr "" "Таблиця назв файлів:\n" " Запис Кат Час Розмір Назва" -#: src/readelf.c:5616 +#: src/readelf.c:5750 msgid "" "\n" "Line number statements:" @@ -5274,88 +5293,115 @@ msgstr "" "\n" "Оператори номерів рядків:" -#: src/readelf.c:5677 +#: src/readelf.c:5824 +#, c-format +msgid " special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n" +msgstr "" +" спеціальний код операції %u: адреса+%u = %s, індекс_оп = %u, рядок%+d = %" +"zu\n" + +#: src/readelf.c:5829 #, c-format msgid " special opcode %u: address+%u = %s, line%+d = %zu\n" msgstr " спеціальний код операції %u: адреса+%u = %s, рядок%+d = %zu\n" -#: src/readelf.c:5697 +#: src/readelf.c:5849 #, c-format msgid " extended opcode %u: " msgstr " розширений код операції %u: " -#: src/readelf.c:5702 +#: src/readelf.c:5854 msgid "end of sequence" msgstr "кінець послідовності" -#: src/readelf.c:5717 +#: src/readelf.c:5871 #, c-format msgid "set address to %s\n" msgstr "встановити адресу у значення %s\n" -#: src/readelf.c:5738 +#: src/readelf.c:5892 #, c-format msgid "define new file: dir=%u, mtime=%<PRIu64>, length=%<PRIu64>, name=%s\n" msgstr "" "визначення нового файла: dir=%u, mtime=%<PRIu64>, довжина=%<PRIu64>, назва=%" "s\n" -#: src/readelf.c:5747 +#: src/readelf.c:5905 +#, c-format +msgid " set discriminator to %u\n" +msgstr " встановити розрізнення для %u\n" + +#: src/readelf.c:5910 msgid "unknown opcode" msgstr "невідомий код операції" -#: src/readelf.c:5759 +#: src/readelf.c:5922 msgid " copy" msgstr " копія" -#: src/readelf.c:5769 +#: src/readelf.c:5933 +#, c-format +msgid "advance address by %u to %s, op_index to %u\n" +msgstr "збільшення адреси на %u до %s, індекс_оп до %u\n" + +#: src/readelf.c:5937 #, c-format msgid "advance address by %u to %s\n" msgstr "збільшення адреси на %u до %s\n" -#: src/readelf.c:5780 +#: src/readelf.c:5948 #, c-format msgid " advance line by constant %d to %<PRId64>\n" msgstr " просувати рядок на сталу %d до %<PRId64>\n" -#: src/readelf.c:5788 +#: src/readelf.c:5956 #, c-format msgid " set file to %<PRIu64>\n" msgstr " встановити файл у %<PRIu64>\n" -#: src/readelf.c:5798 +#: src/readelf.c:5966 #, c-format msgid " set column to %<PRIu64>\n" msgstr " встановити значення стовпчика %<PRIu64>\n" -#: src/readelf.c:5805 +#: src/readelf.c:5973 #, c-format msgid " set '%s' to %<PRIuFAST8>\n" msgstr " встановити «%s» у %<PRIuFAST8>\n" -#: src/readelf.c:5811 +#: src/readelf.c:5979 msgid " set basic block flag" msgstr " встановити прапорець базового блоку" -#: src/readelf.c:5821 +#: src/readelf.c:5988 +#, c-format +msgid "advance address by constant %u to %s, op_index to %u\n" +msgstr "збільшити адресу на сталу величину %u до %s, індекс_оп до %u\n" + +#: src/readelf.c:5992 #, c-format msgid "advance address by constant %u to %s\n" msgstr "збільшити адресу на сталу величину %u до %s\n" -#: src/readelf.c:5837 +#: src/readelf.c:6010 #, c-format msgid "advance address by fixed value %u to %s\n" msgstr "збільшити адресу на фіксовану величину %u до %s\n" -#: src/readelf.c:5846 +#: src/readelf.c:6019 msgid " set prologue end flag" msgstr " встановити прапорець кінця вступу" -#: src/readelf.c:5851 +#: src/readelf.c:6024 msgid " set epilogue begin flag" msgstr " встановити прапорець початку епілогу" -#: src/readelf.c:5860 +#: src/readelf.c:6033 +#, c-format +msgid " set isa to %u\n" +msgstr " встановити isa у %u\n" + +#: src/readelf.c:6042 #, c-format msgid " unknown opcode with %<PRIu8> parameter:" msgid_plural " unknown opcode with %<PRIu8> parameters:" @@ -5363,38 +5409,38 @@ msgstr[0] " невідомий код операції з %<PRIu8> параме� msgstr[1] " невідомий код операції з %<PRIu8> параметрами:" msgstr[2] " невідомий код операції з %<PRIu8> параметрами:" -#: src/readelf.c:5892 +#: src/readelf.c:6074 #, c-format msgid "cannot get .debug_loc content: %s" msgstr "не вдалося отримати вміст .debug_loc: %s" -#: src/readelf.c:5947 +#: src/readelf.c:6133 #, c-format msgid " [%6tx] %s..%s" msgstr " [%6tx] %s..%s" -#: src/readelf.c:5949 +#: src/readelf.c:6135 #, c-format msgid " %s..%s" msgstr " %s..%s" -#: src/readelf.c:6002 +#: src/readelf.c:6188 #, c-format msgid "cannot get macro information section data: %s" msgstr "не вдалося отримати дані розділу відомостей щодо макросів: %s" -#: src/readelf.c:6081 +#: src/readelf.c:6267 #, c-format msgid "%*s*** non-terminated string at end of section" msgstr "%*s*** незавершений рядок наприкінці розділу" -#: src/readelf.c:6149 +#: src/readelf.c:6335 #, c-format msgid " [%5d] DIE offset: %6<PRId64>, CU DIE offset: %6<PRId64>, name: %s\n" msgstr "" " [%5d] зміщення DIE: %6<PRId64>, зміщення CU DIE: %6<PRId64>, назва: %s\n" -#: src/readelf.c:6188 +#: src/readelf.c:6374 #, c-format msgid "" "\n" @@ -5405,12 +5451,12 @@ msgstr "" "Розділ DWARF [%2zu] «%s» зі зміщенням %#<PRIx64>:\n" " %*s Рядок\n" -#: src/readelf.c:6202 +#: src/readelf.c:6388 #, c-format msgid " *** error while reading strings: %s\n" msgstr " *** помилка під час читання рядків: %s\n" -#: src/readelf.c:6222 +#: src/readelf.c:6408 #, c-format msgid "" "\n" @@ -5419,7 +5465,7 @@ msgstr "" "\n" "Розділ таблиці пошуку вікон виклику [%2zu] '.eh_frame_hdr':\n" -#: src/readelf.c:6324 +#: src/readelf.c:6510 #, c-format msgid "" "\n" @@ -5428,22 +5474,22 @@ msgstr "" "\n" "Розділ таблиці обробки виключень [%2zu] '.gcc_except_table':\n" -#: src/readelf.c:6347 +#: src/readelf.c:6533 #, c-format msgid " LPStart encoding: %#x " msgstr " Кодування LPStart: %#x " -#: src/readelf.c:6359 +#: src/readelf.c:6545 #, c-format msgid " TType encoding: %#x " msgstr " Кодування TType: %#x " -#: src/readelf.c:6373 +#: src/readelf.c:6559 #, c-format msgid " Call site encoding: %#x " msgstr " Кодування місця виклику:%#x " -#: src/readelf.c:6386 +#: src/readelf.c:6572 msgid "" "\n" " Call site table:" @@ -5451,7 +5497,7 @@ msgstr "" "\n" " Таблиця місця виклику:" -#: src/readelf.c:6400 +#: src/readelf.c:6586 #, c-format msgid "" " [%4u] Call site start: %#<PRIx64>\n" @@ -5464,22 +5510,22 @@ msgstr "" " Місце застосування: %#<PRIx64>\n" " Дія: %u\n" -#: src/readelf.c:6460 +#: src/readelf.c:6646 #, c-format msgid "invalid TType encoding" msgstr "некоректне кодування TType" -#: src/readelf.c:6484 +#: src/readelf.c:6671 #, c-format msgid "cannot get debug context descriptor: %s" msgstr "не вдалося отримати дескриптор контексту зневаджування: %s" -#: src/readelf.c:6620 src/readelf.c:7221 +#: src/readelf.c:6810 src/readelf.c:7411 #, c-format msgid "cannot convert core note data: %s" msgstr "не вдалося перетворити дані запису ядра: %s" -#: src/readelf.c:6961 +#: src/readelf.c:7151 #, c-format msgid "" "\n" @@ -5488,21 +5534,21 @@ msgstr "" "\n" "%*s... <повторюється %u разів> ..." -#: src/readelf.c:7320 +#: src/readelf.c:7510 msgid " Owner Data size Type\n" msgstr " Власник Розм. даних Тип\n" -#: src/readelf.c:7338 +#: src/readelf.c:7528 #, c-format msgid " %-13.*s %9<PRId32> %s\n" msgstr " %-13.*s %9<PRId32> %s\n" -#: src/readelf.c:7372 +#: src/readelf.c:7562 #, c-format msgid "cannot get content of note section: %s" msgstr "не вдалося отримати вміст розділу записів: %s" -#: src/readelf.c:7399 +#: src/readelf.c:7589 #, c-format msgid "" "\n" @@ -5512,7 +5558,7 @@ msgstr "" "Розділ записів (note) [%2zu] «%s» з %<PRIu64> байтів за зміщенням %" "#0<PRIx64>:\n" -#: src/readelf.c:7422 +#: src/readelf.c:7612 #, c-format msgid "" "\n" @@ -5521,7 +5567,7 @@ msgstr "" "\n" "Сегмент записів з %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n" -#: src/readelf.c:7468 +#: src/readelf.c:7658 #, c-format msgid "" "\n" @@ -5530,12 +5576,12 @@ msgstr "" "\n" "У розділі [%Zu] «%s» не міститься даних для створення дампу.\n" -#: src/readelf.c:7474 src/readelf.c:7497 +#: src/readelf.c:7664 src/readelf.c:7687 #, c-format msgid "cannot get data for section [%Zu] '%s': %s" msgstr "не вдалося отримати дані для розділу [%Zu] «%s»: %s" -#: src/readelf.c:7478 +#: src/readelf.c:7668 #, c-format msgid "" "\n" @@ -5544,7 +5590,7 @@ msgstr "" "\n" "Шіст. дамп розділу [%Zu] «%s», %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n" -#: src/readelf.c:7491 +#: src/readelf.c:7681 #, c-format msgid "" "\n" @@ -5553,7 +5599,7 @@ msgstr "" "\n" "У розділі [%Zu] «%s» не міститься рядків для створення дампу.\n" -#: src/readelf.c:7501 +#: src/readelf.c:7691 #, c-format msgid "" "\n" @@ -5562,7 +5608,7 @@ msgstr "" "\n" "Розділ рядків [%Zu] «%s» містить %<PRIu64> байтів за зміщенням %#0<PRIx64>:\n" -#: src/readelf.c:7549 +#: src/readelf.c:7739 #, c-format msgid "" "\n" @@ -5571,7 +5617,7 @@ msgstr "" "\n" "розділу [%lu] не існує" -#: src/readelf.c:7576 +#: src/readelf.c:7766 #, c-format msgid "" "\n" @@ -5580,12 +5626,12 @@ msgstr "" "\n" "розділу «%s» не існує" -#: src/readelf.c:7637 +#: src/readelf.c:7827 #, c-format msgid "cannot get symbol index of archive '%s': %s" msgstr "не вдалося отримати покажчик символів архіву «%s»: %s" -#: src/readelf.c:7640 +#: src/readelf.c:7830 #, c-format msgid "" "\n" @@ -5594,7 +5640,7 @@ msgstr "" "\n" "У архіві «%s» немає покажчика символів\n" -#: src/readelf.c:7644 +#: src/readelf.c:7834 #, c-format msgid "" "\n" @@ -5603,12 +5649,12 @@ msgstr "" "\n" "Покажчик архіву «%s» містить %Zu записів:\n" -#: src/readelf.c:7662 +#: src/readelf.c:7852 #, c-format msgid "cannot extract member at offset %Zu in '%s': %s" msgstr "не вдалося видобути елемент за зміщенням %Zu у «%s»: %s" -#: src/readelf.c:7667 +#: src/readelf.c:7857 #, c-format msgid "Archive member '%s' contains:\n" msgstr "Елемент архіву «%s» містить:\n" @@ -5978,7 +6024,7 @@ msgstr "не вдалося створити заголовок ELF: %s" msgid "cannot copy ELF header: %s" msgstr "не вдалося скопіювати заголовок ELF: %s" -#: src/unstrip.c:264 src/unstrip.c:1817 +#: src/unstrip.c:264 src/unstrip.c:1830 #, c-format msgid "cannot create program headers: %s" msgstr "не вдалося створити заголовки програми: %s" @@ -5993,12 +6039,12 @@ msgstr "не вдалося скопіювати заголовок програ msgid "cannot copy section header: %s" msgstr "не вдалося скопіювати заголовок розділу: %s" -#: src/unstrip.c:283 src/unstrip.c:1505 +#: src/unstrip.c:283 src/unstrip.c:1511 #, c-format msgid "cannot get section data: %s" msgstr "не вдалося отримати дані розділу: %s" -#: src/unstrip.c:285 src/unstrip.c:1507 +#: src/unstrip.c:285 src/unstrip.c:1513 #, c-format msgid "cannot copy section data: %s" msgstr "не вдалося скопіювати дані розділу: %s" @@ -6008,122 +6054,133 @@ msgstr "не вдалося скопіювати дані розділу: %s" msgid "cannot create directory '%s'" msgstr "не вдалося створити каталог «%s»" -#: src/unstrip.c:349 src/unstrip.c:763 src/unstrip.c:1540 +#: src/unstrip.c:349 src/unstrip.c:766 src/unstrip.c:1545 #, c-format msgid "cannot get symbol table entry: %s" msgstr "не вдалося отримати запис таблиці символів: %s" -#: src/unstrip.c:365 src/unstrip.c:580 src/unstrip.c:601 src/unstrip.c:613 -#: src/unstrip.c:1561 src/unstrip.c:1691 src/unstrip.c:1715 +#: src/unstrip.c:365 src/unstrip.c:583 src/unstrip.c:604 src/unstrip.c:616 +#: src/unstrip.c:1566 src/unstrip.c:1696 src/unstrip.c:1720 #, c-format msgid "cannot update symbol table: %s" msgstr "не вдалося оновити таблицю символів: %s" -#: src/unstrip.c:382 src/unstrip.c:432 src/unstrip.c:562 src/unstrip.c:1209 -#: src/unstrip.c:1525 src/unstrip.c:1720 src/unstrip.c:1791 +#: src/unstrip.c:375 #, c-format msgid "cannot update section header: %s" msgstr "не вдалося оновити заголовок розділу: %s" -#: src/unstrip.c:408 src/unstrip.c:419 +#: src/unstrip.c:414 src/unstrip.c:425 #, c-format msgid "cannot update relocation: %s" msgstr "не вдалося оновити переміщення: %s" -#: src/unstrip.c:507 +#: src/unstrip.c:512 #, c-format msgid "cannot get symbol version: %s" msgstr "не вдалося отримати версію символу: %s" -#: src/unstrip.c:519 +#: src/unstrip.c:524 #, c-format msgid "unexpected section type in [%Zu] with sh_link to symtab" msgstr "неочікуваний тип розділу у [%Zu] з посиланням sh_link на symtab" -#: src/unstrip.c:769 +#: src/unstrip.c:772 #, c-format msgid "invalid string offset in symbol [%Zu]" msgstr "некоректне зміщення рядка у символі [%Zu]" -#: src/unstrip.c:911 src/unstrip.c:1248 +#: src/unstrip.c:914 src/unstrip.c:1254 #, c-format msgid "cannot read section [%Zu] name: %s" msgstr "не вдалося прочитати назву розділу [%Zu]: %s" -#: src/unstrip.c:952 src/unstrip.c:971 src/unstrip.c:1004 +#: src/unstrip.c:955 src/unstrip.c:974 src/unstrip.c:1007 #, c-format msgid "cannot read '.gnu.prelink_undo' section: %s" msgstr "не вдалося прочитати розділ «.gnu.prelink_undo»: %s" -#: src/unstrip.c:992 +#: src/unstrip.c:995 #, c-format msgid "invalid contents in '%s' section" msgstr "некоректний вміст розділу «%s»" -#: src/unstrip.c:1047 src/unstrip.c:1370 +#: src/unstrip.c:1050 src/unstrip.c:1376 #, c-format msgid "cannot find matching section for [%Zu] '%s'" msgstr "не вдалося знайти відповідний розділ для [%Zu] «%s»" -#: src/unstrip.c:1171 src/unstrip.c:1186 src/unstrip.c:1451 +#: src/unstrip.c:1174 src/unstrip.c:1189 src/unstrip.c:1457 #, c-format msgid "cannot add section name to string table: %s" msgstr "не вдалося додати назву розділу до таблиці рядків: %s" -#: src/unstrip.c:1195 +#: src/unstrip.c:1198 #, c-format msgid "cannot update section header string table data: %s" msgstr "не вдалося оновити дані заголовка розділу у таблиці рядків: %s" -#: src/unstrip.c:1223 src/unstrip.c:1227 +#: src/unstrip.c:1225 src/unstrip.c:1229 #, c-format msgid "cannot get section header string table section index: %s" msgstr "" "не вдалося визначити індекс розділу заголовка розділу у таблиці рядків: %s" -#: src/unstrip.c:1231 src/unstrip.c:1235 src/unstrip.c:1466 +#: src/unstrip.c:1233 src/unstrip.c:1237 src/unstrip.c:1472 #, c-format msgid "cannot get section count: %s" msgstr "не вдалося отримати кількість розділів: %s" -#: src/unstrip.c:1293 src/unstrip.c:1385 +#: src/unstrip.c:1240 +#, c-format +msgid "more sections in stripped file than debug file -- arguments reversed?" +msgstr "" +"у очищеному файлі більше розділів ніж у файлі з даними для зневаджування — " +"помилковий порядок параметрів?" + +#: src/unstrip.c:1299 src/unstrip.c:1391 #, c-format msgid "cannot read section header string table: %s" msgstr "не вдалося прочитати таблицю рядків заголовка розділу: %s" -#: src/unstrip.c:1445 +#: src/unstrip.c:1451 #, c-format msgid "cannot add new section: %s" msgstr "не вдалося додати новий розділ: %s" -#: src/unstrip.c:1548 +#: src/unstrip.c:1553 #, c-format msgid "symbol [%Zu] has invalid section index" msgstr "символ [%Zu] має некоректний індекс розділу" -#: src/unstrip.c:1800 +#: src/unstrip.c:1791 +#, c-format +msgid "cannot read section data: %s" +msgstr "не вдалося прочитати дані розділу: %s" + +#: src/unstrip.c:1812 #, c-format msgid "cannot get ELF header: %s" msgstr "не вдалося отримати заголовок ELF: %s" -#: src/unstrip.c:1827 +#: src/unstrip.c:1840 #, c-format msgid "cannot update program header: %s" msgstr "не вдалося оновити заголовок програми: %s" -#: src/unstrip.c:1832 src/unstrip.c:1911 +#: src/unstrip.c:1845 src/unstrip.c:1924 #, c-format msgid "cannot write output file: %s" msgstr "не вдалося записати файл виведених даних: %s" -#: src/unstrip.c:1880 +#: src/unstrip.c:1893 #, c-format msgid "DWARF data not adjusted for prelinking bias; consider prelink -u" msgstr "" "Дані DWARF не скориговано відповідно до відхилення перед компонуванням; " "спробуйте виправити це командою prelink -u" -#: src/unstrip.c:1883 +#: src/unstrip.c:1896 #, c-format msgid "" "DWARF data in '%s' not adjusted for prelinking bias; consider prelink -u" @@ -6131,57 +6188,57 @@ msgstr "" "Дані DWARF у «%s» не скориговано відповідно до відхилення перед " "компонуванням; спробуйте виправити це командою prelink -u" -#: src/unstrip.c:1902 src/unstrip.c:1942 src/unstrip.c:1954 src/unstrip.c:2034 +#: src/unstrip.c:1915 src/unstrip.c:1955 src/unstrip.c:1967 src/unstrip.c:2047 #, c-format msgid "cannot create ELF descriptor: %s" msgstr "не вдалося створити дескриптор ELF: %s" -#: src/unstrip.c:1960 +#: src/unstrip.c:1973 #, c-format msgid "'%s' and '%s' do not seem to match" msgstr "«%s» і «%s» не відповідають одне одному" -#: src/unstrip.c:1991 +#: src/unstrip.c:2004 #, c-format msgid "cannot find stripped file for module '%s': %s" msgstr "не вдалося знайти очищений файл для модуля «%s»: %s" -#: src/unstrip.c:1995 +#: src/unstrip.c:2008 #, c-format msgid "cannot open stripped file '%s' for module '%s': %s" msgstr "не вдалося відкрити очищений файл «%s» для модуля «%s»: %s" -#: src/unstrip.c:2010 +#: src/unstrip.c:2023 #, c-format msgid "cannot find debug file for module '%s': %s" msgstr "не вдалося знайти файл діагностичних даних для модуля «%s»: %s" -#: src/unstrip.c:2014 +#: src/unstrip.c:2027 #, c-format msgid "cannot open debug file '%s' for module '%s': %s" msgstr "не вдалося відкрити файл діагностичних даних «%s» для модуля «%s»: %s" -#: src/unstrip.c:2027 +#: src/unstrip.c:2040 #, c-format msgid "module '%s' file '%s' is not stripped" msgstr "у модулі «%s» файл «%s» не очищено strip" -#: src/unstrip.c:2058 +#: src/unstrip.c:2071 #, c-format msgid "cannot cache section addresses for module '%s': %s" msgstr "не вдалося кешувати адреси розділів для модуля «%s»: %s" -#: src/unstrip.c:2191 +#: src/unstrip.c:2204 #, c-format msgid "no matching modules found" msgstr "відповідних модулів не виявлено" -#: src/unstrip.c:2200 +#: src/unstrip.c:2213 #, c-format msgid "matched more than one module" msgstr "встановлено відповідність декількох модулів" -#: src/unstrip.c:2247 +#: src/unstrip.c:2260 msgid "" "STRIPPED-FILE DEBUG-FILE\n" "[MODULE...]" @@ -6189,7 +6246,7 @@ msgstr "" "ОЧИЩЕНИЙ-ФАЙЛ ФАЙЛ-DEBUG\n" "[МОДУЛЬ...]" -#: src/unstrip.c:2248 +#: src/unstrip.c:2261 msgid "" "Combine stripped files with separate symbols and debug information.\vThe " "first form puts the result in DEBUG-FILE if -o was not given.\n" diff --git a/src/ChangeLog b/src/ChangeLog index ae673bd2..5bb85453 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,70 @@ +2010-06-22 Roland McGrath <[email protected]> + + * readelf.c (print_debug_line_section): Fix braino in DW_LNS_set_isa. + +2010-06-21 Roland McGrath <[email protected]> + + * readelf.c (dwarf_tag_string): Handle new v4 tags. + (dwarf_attr_string): Add new attributes. + (dwarf_tag_string): Handle DW_TAG_GNU_*. + + * readelf.c (print_ops): Use 64-bit types for LEB128 operands. + (print_cfa_program): Likewise. + +2010-06-20 Roland McGrath <[email protected]> + + * readelf.c (print_debug_units): New function, broken out of ... + (print_debug_info_section): ... here. Call it. + (print_debug_types_section): New function. + (enum section_e): Add section_types alias for section_info. + (print_debug): Add types to the sections table. + + * readelf.c (print_debug_frame_section): Handle version 4 format. + + * readelf.c (print_debug_line_section): Handle version 4 format. + +2010-06-14 Roland McGrath <[email protected]> + + * unstrip.c (copy_elided_sections): Make sure all sections' data have + been read in before we write anything out. + +2010-06-04 Roland McGrath <[email protected]> + + * unstrip.c (update_shdr): New function. + (update_sh_size): Call it instead of gelf_update_shdr. + (adjust_relocs, add_new_section_symbols): Likewise. + (new_shstrtab, copy_elided_sections): Likewise. + + * unstrip.c (copy_elided_sections): Bail if stripped file has more + sections than unstripped file, rather than getting confused later. + +2010-06-01 Roland McGrath <[email protected]> + + * readelf.c (dwarf_form_string): Handle DWARF 4 forms. + (attr_callback): Handle DW_FORM_flag_present, DW_FORM_exprloc, + DW_FORM_sec_offset, DW_FORM_ref_sig8. + + * readelf.c (print_debug): Don't bail if libdw setup fails. + Suppress complaint if we only want .eh_frame anyway. + +2010-05-28 Ulrich Drepper <[email protected]> + + * readelf.c (attr_callback): Also print form information. + +2010-05-19 Roland McGrath <[email protected]> + + * addr2line.c (find_symbol): Short-circuit on empty name. + (handle_address): Handle SYMBOL with no +OFFSET. + +2010-05-08 Roland McGrath <[email protected]> + + * readelf.c (print_ops): Take new arg OFFSET_SIZE. + Use that for DW_OP_call_ref, not ADDRSIZE. + (print_cfa_program): Update caller. + (struct attrcb_args): Add offset_size field. + (attr_callback): Use it for print_ops call. + (print_debug_info_section): Initialize it. + 2010-04-14 Roland McGrath <[email protected]> * readelf.c (handle_core_item): Fix bitmask printing. diff --git a/src/addr2line.c b/src/addr2line.c index 99264b01..48f017bb 100644 --- a/src/addr2line.c +++ b/src/addr2line.c @@ -1,5 +1,5 @@ /* Locate source files and line information for given addresses - Copyright (C) 2005, 2006, 2007, 2008, 2009 Red Hat, Inc. + Copyright (C) 2005-2010 Red Hat, Inc. This file is part of Red Hat elfutils. Written by Ulrich Drepper <[email protected]>, 2005. @@ -374,7 +374,7 @@ find_symbol (Dwfl_Module *mod, for (int i = 1; i < n; ++i) { const char *symbol_name = dwfl_module_getsym (mod, i, symbol, NULL); - if (symbol_name == NULL) + if (symbol_name == NULL || symbol_name[0] == '\0') continue; switch (GELF_ST_TYPE (symbol->st_info)) { @@ -445,15 +445,23 @@ handle_address (const char *string, Dwfl *dwfl) if (endp == string) { bool parsed = false; - int n; + int i, j; char *name = NULL; - if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &n) == 2 - && string[n] == '\0') + if (sscanf (string, "(%m[^)])%" PRIiMAX "%n", &name, &addr, &i) == 2 + && string[i] == '\0') parsed = adjust_to_section (name, &addr, dwfl); - else if (sscanf (string, "%m[^-+]%" PRIiMAX "%n", &name, &addr, &n) == 2 - && string[n] == '\0') + switch (sscanf (string, "%m[^-+]%n%" PRIiMAX "%n", &name, &i, &addr, &j)) { - /* It was symbol+offset. */ + default: + break; + case 1: + addr = 0; + j = i; + case 2: + if (string[j] != '\0') + break; + + /* It was symbol[+offset]. */ GElf_Sym sym; void *arg[2] = { name, &sym }; (void) dwfl_getmodules (dwfl, &find_symbol, arg, 0); @@ -469,6 +477,7 @@ handle_address (const char *string, Dwfl *dwfl) addr += sym.st_value; parsed = true; } + break; } free (name); diff --git a/src/readelf.c b/src/readelf.c index 299c13e5..0412131a 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -181,7 +181,8 @@ static enum section_e section_abbrev = 1, /* .debug_abbrev */ section_aranges = 2, /* .debug_aranges */ section_frame = 4, /* .debug_frame or .eh_frame & al. */ - section_info = 8, /* .debug_info */ + section_info = 8, /* .debug_info, .debug_types */ + section_types = section_info, section_line = 16, /* .debug_line */ section_loc = 32, /* .debug_loc */ section_pubnames = 64, /* .debug_pubnames */ @@ -2168,7 +2169,7 @@ get_ver_flags (unsigned int flags) if (flags & VER_FLG_WEAK) { if (endp != buf) - endp = stpcpy (endp, "| "); + endp = stpcpy (endp, "| "); endp = stpcpy (endp, "WEAK "); } @@ -2658,7 +2659,7 @@ print_hash_info (Ebl *ebl, Elf_Scn *scn, GElf_Shdr *shdr, size_t shstrndx, printf (gettext ("\ Average number of tests: successful lookup: %f\n\ - unsuccessful lookup: %f\n"), + unsuccessful lookup: %f\n"), (double) success / (double) nzero_counts, (double) nzero_counts / (double) nbucket); } @@ -3182,7 +3183,8 @@ print_block (size_t n, const void *block) static void print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest, - unsigned int addrsize, Dwarf_Word len, const unsigned char *data) + unsigned int addrsize, unsigned int offset_size, + Dwarf_Word len, const unsigned char *data) { static const char *const known[] = { @@ -3357,7 +3359,6 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest, switch (op) { - case DW_OP_call_ref: case DW_OP_addr:; /* Address operand. */ Dwarf_Word addr; @@ -3372,18 +3373,31 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest, data += addrsize; len -= addrsize; - if (op == DW_OP_addr) + char *a = format_dwarf_addr (dwflmod, 0, addr); + printf ("%*s[%4" PRIuMAX "] %s %s\n", + indent, "", (uintmax_t) offset, known[op], a); + free (a); + + offset += 1 + addrsize; + break; + + case DW_OP_call_ref: + /* Offset operand. */ + NEED (offset_size); + if (offset_size == 4) + addr = read_4ubyte_unaligned (dbg, data); + else { - char *a = format_dwarf_addr (dwflmod, 0, addr); - printf ("%*s[%4" PRIuMAX "] %s %s\n", - indent, "", (uintmax_t) offset, known[op], a); - free (a); + assert (offset_size == 8); + addr = read_8ubyte_unaligned (dbg, data); } - else - printf ("%*s[%4" PRIuMAX "] %s %#" PRIxMAX "\n", - indent, "", (uintmax_t) offset, - known[op], (uintmax_t) addr); - offset += 1 + addrsize; + data += offset_size; + len -= offset_size; + + printf ("%*s[%4" PRIuMAX "] %s %#" PRIxMAX "\n", + indent, "", (uintmax_t) offset, + known[op], (uintmax_t) addr); + offset += 1 + offset_size; break; case DW_OP_deref_size: @@ -3482,9 +3496,9 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest, case DW_OP_plus_uconst: case DW_OP_constu:; const unsigned char *start = data; - unsigned int uleb; + uint64_t uleb; get_uleb128 (uleb, data); /* XXX check overrun */ - printf ("%*s[%4" PRIuMAX "] %s %u\n", + printf ("%*s[%4" PRIuMAX "] %s %" PRIu64 "\n", indent, "", (uintmax_t) offset, known[op], uleb); len -= data - start; offset += 1 + (data - start); @@ -3492,10 +3506,10 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest, case DW_OP_bit_piece: start = data; - unsigned int uleb2; + uint64_t uleb2; get_uleb128 (uleb, data); /* XXX check overrun */ get_uleb128 (uleb2, data); /* XXX check overrun */ - printf ("%*s[%4" PRIuMAX "] %s %u, %u\n", + printf ("%*s[%4" PRIuMAX "] %s %" PRIu64 ", %" PRIu64 "\n", indent, "", (uintmax_t) offset, known[op], uleb, uleb2); len -= data - start; offset += 1 + (data - start); @@ -3505,9 +3519,9 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest, case DW_OP_breg0 ... DW_OP_breg31: case DW_OP_consts: start = data; - unsigned int sleb; + int64_t sleb; get_sleb128 (sleb, data); /* XXX check overrun */ - printf ("%*s[%4" PRIuMAX "] %s %d\n", + printf ("%*s[%4" PRIuMAX "] %s %" PRId64 "\n", indent, "", (uintmax_t) offset, known[op], sleb); len -= data - start; offset += 1 + (data - start); @@ -3517,7 +3531,7 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest, start = data; get_uleb128 (uleb, data); /* XXX check overrun */ get_sleb128 (sleb, data); /* XXX check overrun */ - printf ("%*s[%4" PRIuMAX "] %s %u %d\n", + printf ("%*s[%4" PRIuMAX "] %s %" PRIu64 " %" PRId64 "\n", indent, "", (uintmax_t) offset, known[op], uleb, sleb); len -= data - start; offset += 1 + (data - start); @@ -3928,7 +3942,7 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp, // XXX overflow check get_uleb128 (op1, readp); /* Length of DW_FORM_block. */ printf (" def_cfa_expression %" PRIu64 "\n", op1); - print_ops (dwflmod, dbg, 10, 10, ptr_size, op1, readp); + print_ops (dwflmod, dbg, 10, 10, ptr_size, 0, op1, readp); readp += op1; break; case DW_CFA_expression: @@ -3937,7 +3951,7 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp, get_uleb128 (op2, readp); /* Length of DW_FORM_block. */ printf (" expression r%" PRIu64 " (%s) \n", op1, regname (op1)); - print_ops (dwflmod, dbg, 10, 10, ptr_size, op2, readp); + print_ops (dwflmod, dbg, 10, 10, ptr_size, 0, op2, readp); readp += op2; break; case DW_CFA_offset_extended_sf: @@ -3980,7 +3994,7 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp, get_uleb128 (op2, readp); /* Length of DW_FORM_block. */ printf (" val_expression r%" PRIu64 " (%s)\n", op1, regname (op1)); - print_ops (dwflmod, dbg, 10, 10, ptr_size, op2, readp); + print_ops (dwflmod, dbg, 10, 10, ptr_size, 0, op2, readp); readp += op2; break; case DW_CFA_MIPS_advance_loc8: @@ -4005,10 +4019,10 @@ print_cfa_program (const unsigned char *readp, const unsigned char *const endp, opcode & 0x3f, pc += (opcode & 0x3f) * code_align); else if (opcode < DW_CFA_restore) { - unsigned int offset; + uint64_t offset; // XXX overflow check get_uleb128 (offset, readp); - printf (" offset r%u (%s) at cfa%+d\n", + printf (" offset r%u (%s) at cfa%+" PRId64 "\n", opcode & 0x3f, regname (opcode & 0x3f), offset * data_align); } else @@ -4225,8 +4239,9 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, const char *augmentation; unsigned int code_alignment_factor; unsigned int data_alignment_factor; - unsigned int fde_encoding; - unsigned int lsda_encoding; + uint8_t address_size; + uint8_t fde_encoding; + uint8_t lsda_encoding; struct cieinfo *next; } *cies = NULL; @@ -4296,6 +4311,16 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, if (unlikely (readp == NULL)) goto invalid_data; ++readp; + + uint_fast8_t segment_size = 0; + if (version >= 4) + { + if (cieend - readp < 5) + goto invalid_data; + ptr_size = *readp++; + segment_size = *readp++; + } + // XXX Check overflow get_uleb128 (code_alignment_factor, readp); // XXX Check overflow @@ -4315,12 +4340,17 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, printf ("\n [%6tx] CIE length=%" PRIu64 "\n" " CIE_id: %" PRIu64 "\n" " version: %u\n" - " augmentation: \"%s\"\n" - " code_alignment_factor: %u\n" + " augmentation: \"%s\"\n", + offset, (uint64_t) unit_length, (uint64_t) cie_id, + version, augmentation); + if (version >= 4) + printf (" address_size: %u\n" + " segment_size: %u\n", + ptr_size, segment_size); + printf (" code_alignment_factor: %u\n" " data_alignment_factor: %d\n" " return_address_register: %u\n", - offset, (uint64_t) unit_length, (uint64_t) cie_id, - version, augmentation, code_alignment_factor, + code_alignment_factor, data_alignment_factor, return_address_register); if (augmentation[0] == 'z') @@ -4386,15 +4416,19 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, } } - struct cieinfo *newp = alloca (sizeof (*newp)); - newp->cie_offset = offset; - newp->augmentation = augmentation; - newp->fde_encoding = fde_encoding; - newp->lsda_encoding = lsda_encoding; - newp->code_alignment_factor = code_alignment_factor; - newp->data_alignment_factor = data_alignment_factor; - newp->next = cies; - cies = newp; + if (likely (ptr_size == 4 || ptr_size == 8)) + { + struct cieinfo *newp = alloca (sizeof (*newp)); + newp->cie_offset = offset; + newp->augmentation = augmentation; + newp->fde_encoding = fde_encoding; + newp->lsda_encoding = lsda_encoding; + newp->address_size = ptr_size; + newp->code_alignment_factor = code_alignment_factor; + newp->data_alignment_factor = data_alignment_factor; + newp->next = cies; + cies = newp; + } } else { @@ -4415,7 +4449,7 @@ print_debug_frame_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, /* Initialize from CIE data. */ fde_encoding = cie->fde_encoding; lsda_encoding = cie->lsda_encoding; - ptr_size = encoded_ptr_size (fde_encoding, ptr_size); + ptr_size = encoded_ptr_size (fde_encoding, cie->address_size); code_alignment_factor = cie->code_alignment_factor; data_alignment_factor = cie->data_alignment_factor; @@ -4506,6 +4540,7 @@ struct attrcb_args Dwarf *dbg; int level; unsigned int addrsize; + unsigned int offset_size; Dwarf_Off cu_offset; }; @@ -4545,8 +4580,9 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) return DWARF_CB_ABORT; } char *a = format_dwarf_addr (cbargs->dwflmod, cbargs->addrsize, addr); - printf (" %*s%-20s %s\n", - (int) (level * 2), "", dwarf_attr_string (attr), a); + printf (" %*s%-20s (%s) %s\n", + (int) (level * 2), "", dwarf_attr_string (attr), + dwarf_form_string (form), a); free (a); } break; @@ -4557,8 +4593,9 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) const char *str = dwarf_formstring (attrp); if (unlikely (str == NULL)) goto attrval_out; - printf (" %*s%-20s \"%s\"\n", - (int) (level * 2), "", dwarf_attr_string (attr), str); + printf (" %*s%-20s (%s) \"%s\"\n", + (int) (level * 2), "", dwarf_attr_string (attr), + dwarf_form_string (form), str); break; case DW_FORM_ref_addr: @@ -4571,11 +4608,22 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) if (unlikely (dwarf_formref_die (attrp, &ref) == NULL)) goto attrval_out; - printf (" %*s%-20s [%6" PRIxMAX "]\n", + printf (" %*s%-20s (%s) [%6" PRIxMAX "]\n", (int) (level * 2), "", dwarf_attr_string (attr), - (uintmax_t) dwarf_dieoffset (&ref)); + dwarf_form_string (form), (uintmax_t) dwarf_dieoffset (&ref)); break; + case DW_FORM_ref_sig8: + printf (" %*s%-20s (%s) {%6" PRIx64 "}\n", + (int) (level * 2), "", dwarf_attr_string (attr), + dwarf_form_string (form), + read_8ubyte_unaligned (attrp->cu->dbg, attrp->valp)); + break; + + case DW_FORM_sec_offset: + attrp->form = cbargs->offset_size == 8 ? DW_FORM_data8 : DW_FORM_data4; + /* Fall through. */ + case DW_FORM_udata: case DW_FORM_sdata: case DW_FORM_data8: @@ -4591,11 +4639,12 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) { /* This case can take either a constant or a loclistptr. */ case DW_AT_data_member_location: - if (form != DW_FORM_data4 && form != DW_FORM_data8) + if (form != DW_FORM_data4 && form != DW_FORM_data8 + && form != DW_FORM_sec_offset) /* XXX not data[48] if CU v4! */ { - printf (" %*s%-20s %" PRIxMAX "\n", + printf (" %*s%-20s (%s) %" PRIxMAX "\n", (int) (level * 2), "", dwarf_attr_string (attr), - (uintmax_t) num); + dwarf_form_string (form), (uintmax_t) num); return DWARF_CB_OK; } /* else fallthrough */ @@ -4609,15 +4658,15 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) case DW_AT_frame_base: case DW_AT_return_addr: case DW_AT_static_link: - printf (" %*s%-20s location list [%6" PRIxMAX "]\n", + printf (" %*s%-20s (%s) location list [%6" PRIxMAX "]\n", (int) (level * 2), "", dwarf_attr_string (attr), - (uintmax_t) num); + dwarf_form_string (form), (uintmax_t) num); return DWARF_CB_OK; case DW_AT_ranges: - printf (" %*s%-20s range list [%6" PRIxMAX "]\n", + printf (" %*s%-20s (%s) range list [%6" PRIxMAX "]\n", (int) (level * 2), "", dwarf_attr_string (attr), - (uintmax_t) num); + dwarf_form_string (form), (uintmax_t) num); return DWARF_CB_OK; case DW_AT_language: @@ -4656,13 +4705,13 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) } if (valuestr == NULL) - printf (" %*s%-20s %" PRIuMAX "\n", + printf (" %*s%-20s (%s) %" PRIuMAX "\n", (int) (level * 2), "", dwarf_attr_string (attr), - (uintmax_t) num); + dwarf_form_string (form), (uintmax_t) num); else - printf (" %*s%-20s %s (%" PRIuMAX ")\n", + printf (" %*s%-20s (%s) %s (%" PRIuMAX ")\n", (int) (level * 2), "", dwarf_attr_string (attr), - valuestr, (uintmax_t) num); + dwarf_form_string (form), valuestr, (uintmax_t) num); break; case DW_FORM_flag:; @@ -4670,11 +4719,18 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) if (unlikely (dwarf_formflag (attrp, &flag) != 0)) goto attrval_out; - printf (" %*s%-20s %s\n", + printf (" %*s%-20s (%s) %s\n", (int) (level * 2), "", dwarf_attr_string (attr), - nl_langinfo (flag ? YESSTR : NOSTR)); + dwarf_form_string (form), nl_langinfo (flag ? YESSTR : NOSTR)); break; + case DW_FORM_flag_present: + printf (" %*s%-20s (%s) %s\n", + (int) (level * 2), "", dwarf_attr_string (attr), + dwarf_form_string (form), nl_langinfo (YESSTR)); + break; + + case DW_FORM_exprloc: case DW_FORM_block4: case DW_FORM_block2: case DW_FORM_block1: @@ -4683,11 +4739,20 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) if (unlikely (dwarf_formblock (attrp, &block) != 0)) goto attrval_out; - printf (" %*s%-20s ", - (int) (level * 2), "", dwarf_attr_string (attr)); + printf (" %*s%-20s (%s) ", + (int) (level * 2), "", dwarf_attr_string (attr), + dwarf_form_string (form)); switch (attr) { + default: + if (form != DW_FORM_exprloc) + { + print_block (block.length, block.data); + break; + } + /* Fall through. */ + case DW_AT_location: case DW_AT_data_location: case DW_AT_data_member_location: @@ -4709,17 +4774,14 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) case DW_AT_upper_bound: print_ops (cbargs->dwflmod, cbargs->dbg, 12 + level * 2, 12 + level * 2, - cbargs->addrsize, block.length, block.data); - break; - - default: - print_block (block.length, block.data); + cbargs->addrsize, cbargs->offset_size, + block.length, block.data); break; } break; default: - printf (" %*s%-20s [form: %d] ???\n", + printf (" %*s%-20s (form: %#x) ???\n", (int) (level * 2), "", dwarf_attr_string (attr), (int) form); break; @@ -4728,17 +4790,19 @@ attr_callback (Dwarf_Attribute *attrp, void *arg) return DWARF_CB_OK; } - static void -print_debug_info_section (Dwfl_Module *dwflmod, - Ebl *ebl __attribute__ ((unused)), - GElf_Ehdr *ehdr __attribute__ ((unused)), - Elf_Scn *scn, - GElf_Shdr *shdr, Dwarf *dbg) +print_debug_units (Dwfl_Module *dwflmod, + Ebl *ebl __attribute__ ((unused)), + GElf_Ehdr *ehdr __attribute__ ((unused)), + Elf_Scn *scn, + GElf_Shdr *shdr, Dwarf *dbg, + bool debug_types) { + const char *secname = debug_types ? ".debug_types" : ".debug_info"; + printf (gettext ("\ \nDWARF section [%2zu] '%s' at offset %#" PRIx64 ":\n [Offset]\n"), - elf_ndxscn (scn), ".debug_info", (uint64_t) shdr->sh_offset); + elf_ndxscn (scn), secname, (uint64_t) shdr->sh_offset); /* If the section is empty we don't have to do anything. */ if (shdr->sh_size == 0) @@ -4751,37 +4815,55 @@ print_debug_info_section (Dwfl_Module *dwflmod, /* New compilation unit. */ size_t cuhl; - //Dwarf_Half version; + Dwarf_Half version; Dwarf_Off abbroffset; uint8_t addrsize; uint8_t offsize; Dwarf_Off nextcu; + uint64_t typesig; + Dwarf_Off typeoff; next_cu: - if (dwarf_nextcu (dbg, offset, &nextcu, &cuhl, &abbroffset, &addrsize, - &offsize) != 0) + if (dwarf_next_unit (dbg, offset, &nextcu, &cuhl, &version, + &abbroffset, &addrsize, &offsize, + debug_types ? &typesig : NULL, + debug_types ? &typeoff : NULL) != 0) goto do_return; - printf (gettext (" Compilation unit at offset %" PRIu64 ":\n" - " Version: %" PRIu16 ", Abbreviation section offset: %" - PRIu64 ", Address size: %" PRIu8 ", Offset size: %" PRIu8 "\n"), - (uint64_t) offset, /*version*/2, abbroffset, addrsize, offsize); + if (debug_types) + printf (gettext (" Type unit at offset %" PRIu64 ":\n" + " Version: %" PRIu16 ", Abbreviation section offset: %" + PRIu64 ", Address size: %" PRIu8 ", Offset size: %" PRIu8 + "\n Type signature: %#" PRIx64 + ", Type offset: %#" PRIx64 "\n"), + (uint64_t) offset, version, abbroffset, addrsize, offsize, + typesig, (uint64_t) typeoff); + else + printf (gettext (" Compilation unit at offset %" PRIu64 ":\n" + " Version: %" PRIu16 ", Abbreviation section offset: %" + PRIu64 ", Address size: %" PRIu8 ", Offset size: %" PRIu8 + "\n"), + (uint64_t) offset, version, abbroffset, addrsize, offsize); - struct attrcb_args args; - args.dwflmod = dwflmod; - args.dbg = dbg; - args.addrsize = addrsize; - args.cu_offset = offset; + struct attrcb_args args = + { + .dwflmod = dwflmod, + .dbg = dbg, + .addrsize = addrsize, + .offset_size = offsize, + .cu_offset = offset + }; offset += cuhl; int level = 0; - if (unlikely (dwarf_offdie (dbg, offset, &dies[level]) == NULL)) + if (unlikely ((debug_types ? dwarf_offdie_types : dwarf_offdie) + (dbg, offset, &dies[level]) == NULL)) { error (0, 0, gettext ("cannot get DIE at offset %" PRIu64 " in section '%s': %s"), - (uint64_t) offset, ".debug_info", dwarf_errmsg (-1)); + (uint64_t) offset, secname, dwarf_errmsg (-1)); goto do_return; } @@ -4800,7 +4882,7 @@ print_debug_info_section (Dwfl_Module *dwflmod, { error (0, 0, gettext ("cannot get tag of DIE at offset %" PRIu64 " in section '%s': %s"), - (uint64_t) offset, ".debug_info", dwarf_errmsg (-1)); + (uint64_t) offset, secname, dwarf_errmsg (-1)); goto do_return; } @@ -4851,6 +4933,20 @@ print_debug_info_section (Dwfl_Module *dwflmod, free (dies); } +static void +print_debug_info_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, + Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) +{ + print_debug_units (dwflmod, ebl, ehdr, scn, shdr, dbg, false); +} + +static void +print_debug_types_section (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr, + Elf_Scn *scn, GElf_Shdr *shdr, Dwarf *dbg) +{ + print_debug_units (dwflmod, ebl, ehdr, scn, shdr, dbg, true); +} + static void print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, @@ -4919,7 +5015,10 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, /* Next the minimum instruction length. */ uint_fast8_t minimum_instr_len = *linep++; - /* Then the flag determining the default value of the is_stmt + /* Next the maximum operations per instruction, in version 4 format. */ + uint_fast8_t max_ops_per_instr = version < 4 ? 1 : *linep++; + + /* Then the flag determining the default value of the is_stmt register. */ uint_fast8_t default_is_stmt = *linep++; @@ -4939,6 +5038,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, " DWARF version: %" PRIuFAST16 "\n" " Prologue length: %" PRIu64 "\n" " Minimum instruction length: %" PRIuFAST8 "\n" + " Maximum operations per instruction: %" PRIuFAST8 "\n" " Initial value if '%s': %" PRIuFAST8 "\n" " Line base: %" PRIdFAST8 "\n" " Line range: %" PRIuFAST8 "\n" @@ -4946,7 +5046,8 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, "\n" "Opcodes:\n"), (uint64_t) unit_length, version, (uint64_t) header_length, - minimum_instr_len, "is_stmt", default_is_stmt, line_base, + minimum_instr_len, max_ops_per_instr, + "is_stmt", default_is_stmt, line_base, line_range, opcode_base); if (unlikely (linep + opcode_base - 1 >= lineendp)) @@ -5023,6 +5124,7 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, puts (gettext ("\nLine number statements:")); Dwarf_Word address = 0; + unsigned int op_index = 0; size_t line = 1; uint_fast8_t is_stmt = default_is_stmt; @@ -5054,6 +5156,20 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, } } + /* Apply the "operation advance" from a special opcode + or DW_LNS_advance_pc (as per DWARF4 6.2.5.1). */ + unsigned int op_addr_advance; + bool show_op_index; + inline void advance_pc (unsigned int op_advance) + { + op_addr_advance = minimum_instr_len * ((op_index + op_advance) + / max_ops_per_instr); + address += op_advance; + show_op_index = (op_index > 0 || + (op_index + op_advance) % max_ops_per_instr > 0); + op_index = (op_index + op_advance) % max_ops_per_instr; + } + while (linep < lineendp) { unsigned int u128; @@ -5069,22 +5185,25 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, is computed with opcode = (desired line increment - line_base) - + (line_range * address advance) + opcode_base + + (line_range * address advance) + opcode_base */ int line_increment = (line_base + (opcode - opcode_base) % line_range); - unsigned int address_increment = (minimum_instr_len - * ((opcode - opcode_base) - / line_range)); /* Perform the increments. */ line += line_increment; - address += address_increment; + advance_pc ((opcode - opcode_base) / line_range); char *a = format_dwarf_addr (dwflmod, 0, address); - printf (gettext ("\ + if (show_op_index) + printf (gettext ("\ + special opcode %u: address+%u = %s, op_index = %u, line%+d = %zu\n"), + opcode, op_addr_advance, a, op_index, + line_increment, line); + else + printf (gettext ("\ special opcode %u: address+%u = %s, line%+d = %zu\n"), - opcode, address_increment, a, line_increment, line); + opcode, op_addr_advance, a, line_increment, line); free (a); } else if (opcode == 0) @@ -5111,11 +5230,13 @@ print_debug_line_section (Dwfl_Module *dwflmod, Ebl *ebl, /* Reset the registers we care about. */ address = 0; + op_index = 0; line = 1; is_stmt = default_is_stmt; break; case DW_LNE_set_address: + op_index = 0; if (address_size == 4) address = read_4ubyte_unaligned_inc (dbg, linep); else @@ -5150,6 +5271,15 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"), } break; + case DW_LNE_set_discriminator: + /* Takes one ULEB128 parameter, the discriminator. */ + if (unlikely (standard_opcode_lengths[opcode] != 1)) + goto invalid_unit; + + get_uleb128 (u128, linep); + printf (gettext (" set discriminator to %u\n"), u128); + break; + default: /* Unknown, ignore it. */ puts (gettext ("unknown opcode")); @@ -5157,7 +5287,7 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"), break; } } - else if (opcode <= DW_LNS_set_epilogue_begin) + else if (opcode <= DW_LNS_set_isa) { /* This is a known standard opcode. */ switch (opcode) @@ -5171,11 +5301,16 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"), /* Takes one uleb128 parameter which is added to the address. */ get_uleb128 (u128, linep); - address += minimum_instr_len * u128; + advance_pc (u128); { char *a = format_dwarf_addr (dwflmod, 0, address); - printf (gettext ("advance address by %u to %s\n"), - u128, a); + if (show_op_index) + printf (gettext ("\ +advance address by %u to %s, op_index to %u\n"), + op_addr_advance, a, op_index); + else + printf (gettext ("advance address by %u to %s\n"), + op_addr_advance, a); free (a); } break; @@ -5221,13 +5356,17 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"), case DW_LNS_const_add_pc: /* Takes no argument. */ - u128 = (minimum_instr_len - * ((255 - opcode_base) / line_range)); - address += u128; + advance_pc ((255 - opcode_base) / line_range); { char *a = format_dwarf_addr (dwflmod, 0, address); - printf (gettext ("advance address by constant %u to %s\n"), - u128, a); + if (show_op_index) + printf (gettext ("\ +advance address by constant %u to %s, op_index to %u\n"), + op_addr_advance, a, op_index); + else + printf (gettext ("\ +advance address by constant %u to %s\n"), + op_addr_advance, a); free (a); } break; @@ -5240,6 +5379,7 @@ define new file: dir=%u, mtime=%" PRIu64 ", length=%" PRIu64 ", name=%s\n"), u128 = read_2ubyte_unaligned_inc (dbg, linep); address += u128; + op_index = 0; { char *a = format_dwarf_addr (dwflmod, 0, address); printf (gettext ("\ @@ -5258,6 +5398,15 @@ advance address by fixed value %u to %s\n"), /* Takes no argument. */ puts (gettext (" set epilogue begin flag")); break; + + case DW_LNS_set_isa: + /* Takes one uleb128 parameter which is stored in isa. */ + if (unlikely (standard_opcode_lengths[opcode] != 1)) + goto invalid_unit; + + get_uleb128 (u128, linep); + printf (gettext (" set isa to %u\n"), u128); + break; } } else @@ -5308,6 +5457,10 @@ print_debug_loc_section (Dwfl_Module *dwflmod, size_t address_size = ehdr->e_ident[EI_CLASS] == ELFCLASS32 ? 4 : 8; + /* XXX This is wrong! We can only know the right size given the CU that + points to this location list. */ + size_t offset_size = 4; + bool first = true; unsigned char *readp = data->d_buf; while (readp < (unsigned char *) data->d_buf + data->d_size) @@ -5360,7 +5513,7 @@ print_debug_loc_section (Dwfl_Module *dwflmod, free (e); print_ops (dwflmod, dbg, 1, 18 + (address_size * 4), - address_size, len, readp); + address_size, offset_size, len, readp); first = false; readp += len; @@ -5477,9 +5630,9 @@ print_debug_macinfo_section (Dwfl_Module *dwflmod __attribute__ ((unused)), case DW_MACINFO_undef: case DW_MACINFO_vendor_ext: /* For the first two opcodes the parameters are - line, string + line, string For the latter - number, string. + number, string. We can treat these cases together. */ get_uleb128 (u128, readp); @@ -5886,12 +6039,15 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) /* Before we start the real work get a debug context descriptor. */ Dwarf_Addr dwbias; Dwarf *dbg = dwfl_module_getdwarf (dwflmod, &dwbias); + Dwarf dummy_dbg = { .other_byte_order = MY_ELFDATA != ehdr->e_ident[EI_DATA] }; if (dbg == NULL) { - if (print_debug_sections != 0) + if ((print_debug_sections & ~section_exception) != 0) error (0, 0, gettext ("cannot get debug context descriptor: %s"), dwfl_errmsg (-1)); - return; + if ((print_debug_sections & section_exception) == 0) + return; + dbg = &dummy_dbg; } /* Get the section header string table index. */ @@ -5923,6 +6079,7 @@ print_debug (Dwfl_Module *dwflmod, Ebl *ebl, GElf_Ehdr *ehdr) NEW_SECTION (aranges), NEW_SECTION (frame), NEW_SECTION (info), + NEW_SECTION (types), NEW_SECTION (line), NEW_SECTION (loc), NEW_SECTION (pubnames), diff --git a/src/unstrip.c b/src/unstrip.c index 0984e6bc..443cd620 100644 --- a/src/unstrip.c +++ b/src/unstrip.c @@ -368,6 +368,13 @@ symtab_count_leading_section_symbols (Elf *elf, Elf_Scn *scn, size_t shnum, return shnum; } +static void +update_shdr (Elf_Scn *outscn, GElf_Shdr *newshdr) +{ + ELF_CHECK (gelf_update_shdr (outscn, newshdr), + _("cannot update section header: %s")); +} + /* We expanded the output section, so update its header. */ static void update_sh_size (Elf_Scn *outscn, const Elf_Data *data) @@ -378,8 +385,7 @@ update_sh_size (Elf_Scn *outscn, const Elf_Data *data) newshdr->sh_size = data->d_size; - ELF_CHECK (gelf_update_shdr (outscn, newshdr), - _("cannot update section header: %s")); + update_shdr (outscn, newshdr); } /* Update relocation sections using the symbol table. */ @@ -428,8 +434,7 @@ adjust_relocs (Elf_Scn *outscn, Elf_Scn *inscn, const GElf_Shdr *shdr, if (newshdr->sh_info != STN_UNDEF) { newshdr->sh_info = map[newshdr->sh_info - 1]; - ELF_CHECK (gelf_update_shdr (outscn, newshdr), - _("cannot update section header: %s")); + update_shdr (outscn, newshdr); } break; } @@ -557,9 +562,7 @@ add_new_section_symbols (Elf_Scn *old_symscn, size_t old_shnum, shdr->sh_info += added; shdr->sh_size += added * shdr->sh_entsize; - - ELF_CHECK (gelf_update_shdr (symscn, shdr), - _("cannot update section header: %s")); + update_shdr (symscn, shdr); Elf_Data *symdata = elf_getdata (symscn, NULL); Elf_Data *shndxdata = NULL; /* XXX */ @@ -1205,8 +1208,7 @@ new_shstrtab (Elf *unstripped, size_t unstripped_shnum, shdr->sh_name = ebl_strtaboffset (unstripped_strent[i]); if (i + 1 == unstripped_shstrndx) shdr->sh_size = strtab_data->d_size; - ELF_CHECK (gelf_update_shdr (scn, shdr), - _("cannot update section header: %s")); + update_shdr (scn, shdr); } return strtab_data; @@ -1234,6 +1236,10 @@ copy_elided_sections (Elf *unstripped, Elf *stripped, ELF_CHECK (elf_getshdrnum (stripped, &stripped_shnum) == 0, _("cannot get section count: %s")); + if (unlikely (stripped_shnum > unstripped_shnum)) + error (EXIT_FAILURE, 0, _("\ +more sections in stripped file than debug file -- arguments reversed?")); + /* Cache the stripped file's section details. */ struct section sections[stripped_shnum - 1]; Elf_Scn *scn = NULL; @@ -1521,8 +1527,7 @@ copy_elided_sections (Elf *unstripped, Elf *stripped, offset = end_offset; } - ELF_CHECK (gelf_update_shdr (sec->outscn, &shdr_mem), - _("cannot update section header: %s")); + update_shdr (sec->outscn, &shdr_mem); if (shdr_mem.sh_type == SHT_SYMTAB || shdr_mem.sh_type == SHT_DYNSYM) { @@ -1716,8 +1721,7 @@ copy_elided_sections (Elf *unstripped, Elf *stripped, } elf_flagdata (symdata, ELF_C_SET, ELF_F_DIRTY); - ELF_CHECK (gelf_update_shdr (unstripped_symtab, shdr), - _("cannot update section header: %s")); + update_shdr (unstripped_symtab, shdr); if (stripped_symtab != NULL) { @@ -1777,6 +1781,15 @@ copy_elided_sections (Elf *unstripped, Elf *stripped, GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem); ELF_CHECK (shdr != NULL, _("cannot get section header: %s")); + /* We must make sure we have read in the data of all sections + beforehand and marked them to be written out. When we're + modifying the existing file in place, we might overwrite + this part of the file before we get to handling the section. */ + + ELF_CHECK (elf_flagdata (elf_getdata (scn, NULL), + ELF_C_SET, ELF_F_DIRTY), + _("cannot read section data: %s")); + if (skip_reloc && (shdr->sh_type == SHT_REL || shdr->sh_type == SHT_RELA)) continue; @@ -1787,8 +1800,7 @@ copy_elided_sections (Elf *unstripped, Elf *stripped, if (shdr->sh_type != SHT_NOBITS) offset += shdr->sh_size; - ELF_CHECK (gelf_update_shdr (scn, shdr), - _("cannot update section header: %s")); + update_shdr (scn, shdr); if (unstripped_shstrndx == 1 + i) { @@ -1810,7 +1822,8 @@ copy_elided_sections (Elf *unstripped, Elf *stripped, placed[i] = true; } - } while (skip_reloc); + } + while (skip_reloc); if (stripped_ehdr->e_phnum > 0) ELF_CHECK (gelf_newphdr (unstripped, stripped_ehdr->e_phnum), diff --git a/tests/ChangeLog b/tests/ChangeLog index e2fe66f2..6e4519d6 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2010-06-04 Roland McGrath <[email protected]> + + * run-unstrip-test.sh: Also test modifying the file in place. + 2010-04-22 Roland McGrath <[email protected]> * addrcfi.c (handle_cfi): Fix function name in error message. diff --git a/tests/run-unstrip-test.sh b/tests/run-unstrip-test.sh index 8f0fc698..b9959a10 100755 --- a/tests/run-unstrip-test.sh +++ b/tests/run-unstrip-test.sh @@ -1,5 +1,5 @@ #! /bin/sh -# Copyright (C) 2007 Red Hat, Inc. +# Copyright (C) 2007-2010 Red Hat, Inc. # This file is part of Red Hat elfutils. # # Red Hat elfutils is free software; you can redistribute it and/or modify @@ -30,7 +30,7 @@ stripped=${stripped:-testfile17} debugfile=${debugfile:-${stripped}.debug} testfiles $original $stripped $debugfile -tempfiles testfile.unstrip +tempfiles testfile.unstrip testfile.inplace # These are old reference output from run-test-strip6.sh, when # strip left the .debug file with unchanged sh_size in @@ -40,3 +40,12 @@ tempfiles testfile.unstrip testrun ../src/unstrip -o testfile.unstrip $stripped $debugfile testrun ../src/elfcmp --hash-inexact $original testfile.unstrip + +# Also test modifying the file in place. + +rm -f testfile.inplace +cp $debugfile testfile.inplace +chmod 644 testfile.inplace +testrun ../src/unstrip $stripped testfile.inplace + +testrun ../src/elfcmp --hash-inexact $original testfile.inplace |
