# Brazilian Portuguese translation for gprof
# Copyright (C) 2020 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
# Alexandre Folle de Menezes <afmenez@terra.com.br>, 2002.
# Rafael Fontenelle <rafaelff@gnome.org>, 2013-2020.
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.33.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2020-01-18 14:04+0000\n"
"PO-Revision-Date: 2020-01-19 22:46-0300\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge.net>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Virtaal 1.0.0-beta1\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"

#: alpha.c:102 mips.c:54
msgid "<indirect child>"
msgstr "<filho indireto>"

#: alpha.c:107 mips.c:59
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr "[find_call] %s: 0x%lx até 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 <filho_indireto>\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:106
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: final de arquivo inesperado\n"

#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: aviso: ignorando os contadores de execução de blocos básicos (use -l ou --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 execuções\n"

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

#: basic_blocks.c:543
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
"     Line      Count\n"
"\n"
msgstr ""
"\n"
"\n"
"%d Linhas Principais:\n"
"\n"
"     Linha     Contador\n"
"\n"

#: basic_blocks.c:567
#, c-format
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
"\n"
"Resumo da execução:\n"
"\n"

#: basic_blocks.c:568
#, c-format
msgid "%9ld   Executable lines in this file\n"
msgstr "%9ld   Linhas executáveis neste arquivo\n"

#: basic_blocks.c:570
#, c-format
msgid "%9ld   Lines executed\n"
msgstr "%9ld   Linhas executadas\n"

#: basic_blocks.c:571
#, c-format
msgid "%9.2f   Percent of the file executed\n"
msgstr "%9.2f   Percentagem executada do arquivo\n"

#: basic_blocks.c:575
#, c-format
msgid ""
"\n"
"%9lu   Total number of line executions\n"
msgstr ""
"\n"
"%9lu   Número total de execuções de linha\n"

#: basic_blocks.c:577
#, c-format
msgid "%9.2f   Average executions per line\n"
msgstr "%9.2f   Média de execuções por linha\n"

#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] arco de %s até %s percorrido %lu vezes\n"

#: cg_print.c:74
#, c-format
msgid ""
"\t\t     Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t     Gráfico de chamadas (explicação adiante)\n"
"\n"

#: cg_print.c:76
#, c-format
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
"\t\t\tGráfico de chamadas\n"
"\n"

#: cg_print.c:79 hist.c:470
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"granularidade: cada elemento de amostra cobre %ld byte(s)"

#: cg_print.c:83
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" para %.2f%% de %.2f segundos\n"
"\n"

#: cg_print.c:87
#, c-format
msgid ""
" no time propagated\n"
"\n"
msgstr ""
" nenhum tempo propagado\n"
"\n"

#: cg_print.c:96 cg_print.c:101 cg_print.c:104
msgid "called"
msgstr "chamado"

#: cg_print.c:96 cg_print.c:104
msgid "total"
msgstr "total"

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

#: cg_print.c:98 cg_print.c:102
msgid "index"
msgstr "índice"

#: cg_print.c:100
#, no-c-format
msgid "%time"
msgstr "%tempo"

#: cg_print.c:101
msgid "self"
msgstr "si mesmo"

#: cg_print.c:101
msgid "descendants"
msgstr "descendentes"

#: cg_print.c:102 hist.c:496
msgid "name"
msgstr "nome"

#: cg_print.c:104
msgid "children"
msgstr "filhos"

#: cg_print.c:109
#, c-format
msgid "index %% time    self  children    called     name\n"
msgstr "índ   %% tempo  si_mesmo filhos    chamado    nome\n"

#: cg_print.c:132
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <ciclo %d como um todo> [%d]\n"

#: cg_print.c:358
#, 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     <espontâneo>\n"

#: cg_print.c:359
#, c-format
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s   <espontâneo>\n"

#: cg_print.c:593
#, c-format
msgid ""
"Index by function name\n"
"\n"
msgstr ""
"Índice por nome de função\n"
"\n"

#: cg_print.c:650 cg_print.c:659
#, c-format
msgid "<cycle %d>"
msgstr "<ciclo %d>"

#: corefile.c:61
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: não foi possível analisar o arquivo de mapeamento %s.\n"

#: corefile.c:89 corefile.c:523
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: não foi possível abrir %s.\n"

#: corefile.c:193
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: não está no formato executável\n"

#: corefile.c:204
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: impossível encontrar a seção .text em %s\n"

#: corefile.c:278
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: terminou o espaço para %lu bytes de espaço de texto\n"

#: corefile.c:292
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: impossível fazer -c\n"

#: corefile.c:331
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c não tem suporte na arquitetura %s\n"

#: corefile.c:532 corefile.c:637
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: o arquivo \"%s\" não tem sí­mbolos\n"

#: corefile.c:537
#, c-format
msgid "%s: file `%s' has too many symbols\n"
msgstr "%s: o arquivo \"%s\" símbolos demais\n"

#: corefile.c:904
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: alguém contou mal: ltab.len=%d em lugar de %ld\n"

#: gmon_io.c:83
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: tamanho do endereço tem valor inesperado de %u\n"

#: gmon_io.c:318 gmon_io.c:414
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: o arquivo é muito pequeno para ser um arquivo gmon\n"

#: gmon_io.c:328 gmon_io.c:457
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: o arquivo \"%s\" tem um magic cookie inválido\n"

#: gmon_io.c:339
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: o arquivo \"%s\" tem a versão sem suporte %d\n"

#: gmon_io.c:369
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: marca %d inválida encontrada (arquivo corrompido?)\n"

#: gmon_io.c:436
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: taxa de análises de perfil incompatível com o primeiro arquivo gmon\n"

#: gmon_io.c:487
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: incompatível com o primeiro arquivo gmon\n"

#: gmon_io.c:517
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: o arquivo \"%s\" não parece estar no formato gmon.out\n"

#: gmon_io.c:530
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: final de arquivo inesperado depois de ler %d/%d binários\n"

#: gmon_io.c:562
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "o tempo está em tiques, não em segundos\n"

#: gmon_io.c:568 gmon_io.c:748
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: não sei como lidar com o arquivo de formato %d\n"

#: gmon_io.c:578
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "O arquivo \"%s\" (versão %d) contém:\n"

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

#: gmon_io.c:582
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d registros de histogramas\n"

#: gmon_io.c:584
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d registro de gráfico de chamadas\n"

#: gmon_io.c:585
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d registros de gráficos de chamadas\n"

#: gmon_io.c:587
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d registro de contagem de blocos básicos\n"

#: gmon_io.c:588
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d registros de contagens de blocos básicos\n"

#: gprof.c:162
#, c-format
msgid ""
"Usage: %s [-[abcDhilLrsTvwxyz]] [-[ACeEfFJnNOpPqQRStZ][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] [--inline-file-names]\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 ""
"Uso: %s [-[abcDhilLrsTvwxyz]] [-[ACeEfFJnNOpPqQRStZ][nome]] [-I dirs]\n"
"\t[-d[num]] [-k de/a] [-m contagem-mín] [-t tamanho-tabela]\n"
"\t[--[no-]annotated-source[=nome]] [--[no-]exec-counts[=nome]]\n"
"\t[--[no-]flat-profile[=nome]] [--[no-]graph[=nome]]\n"
"\t[--[no-]time=nome] [--all-lines] [--brief] [--debug[=nível]]\n"
"\t[--function-ordering] [--file-ordering] [--inline-file-names]\n"
"\t[--directory-path=dirs] [--display-unused-functions]\n"
"\t[--file-format=nome] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=long] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=ESTILO]] [--no-demangle] [--external-symbol-table=nome] [@ARQ]\n"
"\t[arquivo-imagem] [arquivo-perfil...]\n"

#: gprof.c:178
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
"Relate erros para %s\n"
"Relate erros de tradução para <https://translationproject.org/team/pt_BR.html>\n"

#: gprof.c:254
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: não há suporte para depuração; -d ignorado\n"

#: gprof.c:340
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s: formato de arquivo %s desconhecido\n"

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

#: gprof.c:429
#, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "Baseado no BSD gprof, copyright 1983 Regents of the University of California.\n"

#: gprof.c:430
#, c-format
msgid "This program is free software.  This program has absolutely no warranty.\n"
msgstr "Este programa é software livre. Este programa tem absolutamente nenhuma garantia.\n"

#: gprof.c:471
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: estilo de desembaralhamento desconhecido \"%s\"\n"

#: gprof.c:494
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Apenas um de --function-ordering e --file-ordering pode ser especificado.\n"

#: gprof.c:546
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: sinto muito, mas não há suporte ao formato de arquivo \"prof\"\n"

#: gprof.c:600
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: falta o histograma do arquivo gmon.out\n"

#: gprof.c:607
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: faltam os dados do gráfico de chamadas do arquivo gmon.out\n"

#: hist.c:134
#, c-format
msgid ""
"%s: dimension unit changed between histogram records\n"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: unidade de dimensão alterada entre registros de histogramas\n"
"%s: de \"%s\"\n"
"%s: para \"%s\"\n"

#: hist.c:144
#, c-format
msgid ""
"%s: dimension abbreviation changed between histogram records\n"
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: abreviação de dimensão alterada entre registros de histogramas\n"
"%s: de \"%c\"\n"
"%s: para \"%c\"\n"

#: hist.c:158
#, c-format
msgid "%s: different scales in histogram records"
msgstr "%s: escalas diferentes nos registros de histogramas"

#: hist.c:195
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: sobreposição de registros de histogramas\n"

#: hist.c:229
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: final de arquivo inesperado depois de ler %u de %u amostras\n"

#: hist.c:466
#, c-format
msgid "%c%c/call"
msgstr "%c%c/chamada"

#: hist.c:474
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
"\n"
msgstr ""
" para %.2f%% de %.2f %s\n"
"\n"

#: hist.c:480
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Cada amostra conta como %g %s.\n"

#: hist.c:485
#, c-format
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
" não há tempo acumulado\n"
"\n"

#: hist.c:492
msgid "cumulative"
msgstr "cumulativo"

#: hist.c:492
msgid "self  "
msgstr "si mesmo  "

#: hist.c:492
msgid "total "
msgstr "total "

#: hist.c:495
msgid "time"
msgstr "tempo"

#: hist.c:495
msgid "calls"
msgstr "chamadas"

#: hist.c:584
#, c-format
msgid ""
"\n"
"\n"
"\n"
"flat profile:\n"
msgstr ""
"\n"
"\n"
"\n"
"perfil plano:\n"

#: hist.c:590
#, c-format
msgid "Flat profile:\n"
msgstr "Perfil plano:\n"

#: hist.c:711
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: encontrado um sí­mbolo que cobre vários registros de histogramas"

#: 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: não foi possível encontrar \"%s\"\n"

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

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