# German translation of gprof
# Copyright (C) 1997, 1998 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
# Roland Stigge <stigge@antcom.de>, 2003, 2007, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.19.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 14:10+0200\n"
"PO-Revision-Date: 2009-09-13 09:40+0200\n"
"Last-Translator: Roland Stigge <stigge@antcom.de>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: alpha.c:102 mips.c:54
msgid "<indirect child>"
msgstr "<indirektes Kind>"

#: alpha.c:107 mips.c:59
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr "[find_call] %s: 0x%lx bis 0x%lx\n"

#: alpha.c:129
#, c-format
msgid "[find_call] 0x%lx: jsr%s <indirect_child>\n"
msgstr "[find_call] 0x%lx: jsr%s <indirektes Kind>\n"

#: alpha.c:139
#, c-format
msgid "[find_call] 0x%lx: bsr"
msgstr "[find_call] 0x%lx: bsr"

#: basic_blocks.c:128 call_graph.c:89 hist.c:105
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: unerwartetes Dateiende\n"

#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: Warnung: ignoriere basic-block Befehlszähler (benutzen Sie -l oder --line)\n"

#. FIXME: This only works if bfd_vma is unsigned long.
#: basic_blocks.c:289 basic_blocks.c:299
#, c-format
msgid "%s:%d: (%s:0x%lx) %lu executions\n"
msgstr "%s:%d: (%s:0x%lx) %lu Ausführungen\n"

#: basic_blocks.c:290 basic_blocks.c:300
msgid "<unknown>"
msgstr "<unbekannt>"

#: basic_blocks.c:543
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"Erste %d Zeilen:\n"
"\n"
"     Zeile     Anzahl\n"
"\n"

#: basic_blocks.c:567
#, c-format
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
"\n"
"Ausführungszusammenfassung:\n"
"\n"

#: basic_blocks.c:568
#, c-format
msgid "%9ld   Executable lines in this file\n"
msgstr "%9ld   Ausführbare Zeilen in dieser Datei\n"

#: basic_blocks.c:570
#, c-format
msgid "%9ld   Lines executed\n"
msgstr "%9ld   Zeilen ausgeführt\n"

#: basic_blocks.c:571
#, c-format
msgid "%9.2f   Percent of the file executed\n"
msgstr "%9.2f   Prozent der Datei ausgeführt\n"

#: basic_blocks.c:575
#, c-format
msgid ""
"\n"
"%9lu   Total number of line executions\n"
msgstr ""
"\n"
"%9lu   Gesamtzahl ausgeführter Zeilen\n"

#: basic_blocks.c:577
#, c-format
msgid "%9.2f   Average executions per line\n"
msgstr "%9.2f   Durchschnittliche Ausführungen pro Zeile\n"

#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] Bogen von %s bis %s wurde %lu mal durchlaufen\n"

#: cg_print.c:74
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Aufrufgraph (Erklärung folgt)\n"
"\n"

#: cg_print.c:76
#, c-format
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
"\t\t\tAufrufgraph\n"
"\n"

#: cg_print.c:79 hist.c:466
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"Granularität: jeder Stichprobentreffer deckt %ld Byte(s) ab"

#: cg_print.c:83
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" für %.2f%% von %.2f Sekunden\n"
"\n"

#: cg_print.c:87
#, c-format
msgid ""
" no time propagated\n"
"\n"
msgstr ""
" keine Zeit weitergereicht\n"
"\n"

#: cg_print.c:96 cg_print.c:99 cg_print.c:101
msgid "called"
msgstr "aufgerufen"

#: cg_print.c:96 cg_print.c:101
msgid "total"
msgstr "gesamt"

#: cg_print.c:96
msgid "parents"
msgstr "Eltern"

#: cg_print.c:98 cg_print.c:99
msgid "index"
msgstr "Index"

# c-format ???
#: cg_print.c:98
#, c-format
msgid "%time"
msgstr "%time"

#: cg_print.c:98 cg_print.c:99
msgid "self"
msgstr "selbst"

#: cg_print.c:98
msgid "descendants"
msgstr "Nachfahren"

#: cg_print.c:99 hist.c:492
msgid "name"
msgstr "Name"

#: cg_print.c:101
msgid "children"
msgstr "Kinder"

#: cg_print.c:106
#, c-format
msgid "index %% time    self  children    called     name\n"
msgstr "Index %% Zeit   Selb. Kinder      aufgerufen Name\n"

#: cg_print.c:129
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <Zyklus %d als Ganzes> [%d]\n"

#: cg_print.c:355
#, c-format
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontan>\n"

#: cg_print.c:356
#, c-format
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontan>\n"

#: cg_print.c:590
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Index nach Funktionsnamen\n"
"\n"

#: cg_print.c:647 cg_print.c:656
#, c-format
msgid "<cycle %d>"
msgstr "<Zyklus %d>"

#: corefile.c:60
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: Konnte Mapping-Datei %s nicht analysieren.\n"

#: corefile.c:84 corefile.c:496
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: Konnte %s nicht öffnen.\n"

#: corefile.c:183
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: nicht in ausführbarem Format\n"

#: corefile.c:194
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: kann den .text-Abschnitt in %s nicht finden\n"

#: corefile.c:269
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: Platzmangel für %lu Bytes des Textraumes\n"

#: corefile.c:283
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: kann -c nicht ausführen\n"

#: corefile.c:322
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c nicht unterstützt auf Architektur %s\n"

#: corefile.c:505 corefile.c:588
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: Datei `%s' hat keine Symbole\n"

#: corefile.c:848
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: jemand hat sich verzählt: ltab.len=%d anstelle von %ld\n"

#: gmon_io.c:84
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: Adressbreite hat unerwarteten Wert von %u\n"

#: gmon_io.c:319 gmon_io.c:415
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: Datei zu kurz um eine gmon-Datei zu sein\n"

#: gmon_io.c:329 gmon_io.c:458
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: Datei `%s' hat ungültiges magisches Cookie\n"

#: gmon_io.c:340
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: Datei `%s' hat nicht unterstützte Version %d\n"

#: gmon_io.c:370
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: schlechte Markierung %d gefunden (Datei beschädigt?)\n"

#: gmon_io.c:437
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: Profilingrate inkompatibel mit erster gmon-Datei\n"

#: gmon_io.c:488
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: inkompatibel mit erster gmon-Datei\n"

#: gmon_io.c:518
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: Datei '%s' ist nicht im gmon.out-Format\n"

#: gmon_io.c:531
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: unerwartetes Dateiende nach dem Lesen von %d/%d Kästen\n"

#: gmon_io.c:565
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "Zeit in Takten, nicht Sekunden\n"

#: gmon_io.c:571 gmon_io.c:748
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: keine Behandlung des Dateiformates %d bekannt\n"

#: gmon_io.c:578
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Datei `%s' (version %d) enthält:\n"

#: gmon_io.c:581
#, c-format
msgid "\t%d histogram record\n"
msgstr "\t%d Histogrammdatensatz\n"

#: gmon_io.c:582
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d Histogrammdatensätze\n"

#: gmon_io.c:584
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d Aufrufgraph-Datensatz\n"

#: gmon_io.c:585
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d Aufrufgraph-Datensätze\n"

#: gmon_io.c:587
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d basic-block Anzahldatensatz\n"

#: gmon_io.c:588
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d basic-block Anzahldatensätze\n"

#: gprof.c:159
#, c-format
msgid ""
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I dirs]\n"
"\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
"\t[--[no-]time=name] [--all-lines] [--brief] [--debug[=level]]\n"
"\t[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=dirs] [--display-unused-functions]\n"
"\t[--file-format=name] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
"\t[image-file] [profile-file...]\n"
msgstr ""
"Aufruf: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][Name]] [-I Verzeichnisse]\n"
"\t[-d[Anz.]] [-k von/bis] [-m min-Anz.] [-t Tabellenlänge]\n"
"\t[--[no-]annotated-source[=Name]] [--[no-]exec-counts[=Name]]\n"
"\t[--[no-]flat-profile[=Name]] [--[no-]graph[=Name]]\n"
"\t[--[no-]time=Name] [--all-lines] [--brief] [--debug[=Level]]\n"
"\t[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=Verz.] [--display-unused-functions]\n"
"\t[--file-format=Name] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STIL]] [--no-demangle] [--external-symbol-table=Name] [@DATEI]\n"
"\t[image-file] [profile-Datei...]\n"

#: gprof.c:175
#, c-format
msgid "Report bugs to %s\n"
msgstr "Melden Sie Fehler an %s\n"

#: gprof.c:251
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: Debugging nicht unterstützt; -d ignoriert\n"

#: gprof.c:331
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s: unbekanntes Dateiformat %s\n"

#. This output is intended to follow the GNU standards document.
#: gprof.c:419
#, c-format
msgid "GNU gprof %s\n"
msgstr "GNU gprof %s\n"

#: gprof.c:420
#, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "Basierend auf BSD gprof, copyright 1983 Regenten der University of California.\n"

#: gprof.c:421
#, c-format
msgid "This program is free software.  This program has absolutely no warranty.\n"
msgstr "Dieses Programm ist Freie Software. Es kommt absolut ohne Garantie.\n"

#: gprof.c:462
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: unbekannter Auflösungsstil `%s'\n"

#: gprof.c:482
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Nur entweder --function-ordering oder --file-ordering kann angegeben werden.\n"

#: gprof.c:534
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: Sorry, Dateiformat `gprof' wird noch nicht unterstützt\n"

#: gprof.c:588
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: gmon.out-Datei hat kein Histogramm\n"

#: gprof.c:595
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: gmon.out-Datei hat keine Aufrufgraph-Daten\n"

#: hist.c:133
#, c-format
msgid ""
"%s: dimension unit changed between histogram records\n"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: Einheit zwischen Histogrammdateisätzen geändert\n"
"%s: von »%s«\n"
"%s: nach »%s«\n"

#: hist.c:143
#, c-format
msgid ""
"%s: dimension abbreviation changed between histogram records\n"
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: Einheitsabkürzung zwischen Histogrammdateisätzen geändert\n"
"%s: von »%c«\n"
"%s: nach »%c«\n"

#: hist.c:157
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s:  unterschiedliche Maßstäbe in Histogrammdatensätzen"

#: hist.c:194
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: Histogrammdatensätze überschneiden sich\n"

#: hist.c:228
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: unerwartetes Dateiende nach dem Lesen von %u von %u Mustern\n"

#: hist.c:462
#, c-format
msgid "%c%c/call"
msgstr "%c%c/Aufruf"

#: hist.c:470
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
"\n"
msgstr ""
" für %.2f%% von %.2f %s\n"
"\n"

#: hist.c:476
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Jedes Muster zählt als %g %s.\n"

#: hist.c:481
#, c-format
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
" keine Zeit angesammelt\n"
"\n"

#: hist.c:488
msgid "cumulative"
msgstr "kumulativ"

#: hist.c:488
msgid "self  "
msgstr "Selbst"

#: hist.c:488
msgid "total "
msgstr "Gesamt"

#: hist.c:491
msgid "time"
msgstr "Zeit"

#: hist.c:491
msgid "calls"
msgstr "Aufrufe"

#: hist.c:580
#, c-format
msgid ""
"\n"
"\n"
"\n"
"flat profile:\n"
msgstr ""
"\n"
"\n"
"\n"
"Flaches Profil:\n"

#: hist.c:586
#, c-format
msgid "Flat profile:\n"
msgstr "Flaches Profil:\n"

#: hist.c:705
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: Symbol gefunden, das mehrere Histogrammdatensätze umfasst"

#: mips.c:71
#, c-format
msgid "[find_call] 0x%lx: jal"
msgstr "[find_call] 0x%lx: jal"

#: mips.c:99
#, c-format
msgid "[find_call] 0x%lx: jalr\n"
msgstr "[find_call] 0x%lx: jalr\n"

#: source.c:162
#, c-format
msgid "%s: could not locate `%s'\n"
msgstr "%s: Konnte `%s' nicht finden\n"

#: source.c:237
#, c-format
msgid "*** File %s:\n"
msgstr "*** Datei %s:\n"

#: utils.c:99
#, c-format
msgid " <cycle %d>"
msgstr " <Zyklus %d>"

#~ msgid "%s: `%s' is incompatible with first gmon file\n"
#~ msgstr "%s: `%s' ist inkompatibel mit erster gmon-Datei\n"
