From 74c0544a8bb32a585f5b2c1f0a8468233b6143e4 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Mon, 30 Jan 2012 20:13:08 -0600 Subject: Part 2 of prior commit --- tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.am | 4 - tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.in | 635 ----- .../docs/tdesdk/kcachegrind/index.cache.bz2 | Bin 16451 -> 0 bytes tde-i18n-pt/docs/tdesdk/kcachegrind/index.docbook | 1036 ------- tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.am | 4 + tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.in | 635 +++++ .../docs/tdesdk/tdecachegrind/index.cache.bz2 | Bin 0 -> 16451 bytes .../docs/tdesdk/tdecachegrind/index.docbook | 1036 +++++++ tde-i18n-pt/messages/tdesdk/kcachegrind.po | 2963 -------------------- tde-i18n-pt/messages/tdesdk/tdecachegrind.po | 2963 ++++++++++++++++++++ 10 files changed, 4638 insertions(+), 4638 deletions(-) delete mode 100644 tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.am delete mode 100644 tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.in delete mode 100644 tde-i18n-pt/docs/tdesdk/kcachegrind/index.cache.bz2 delete mode 100644 tde-i18n-pt/docs/tdesdk/kcachegrind/index.docbook create mode 100644 tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.am create mode 100644 tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.in create mode 100644 tde-i18n-pt/docs/tdesdk/tdecachegrind/index.cache.bz2 create mode 100644 tde-i18n-pt/docs/tdesdk/tdecachegrind/index.docbook delete mode 100644 tde-i18n-pt/messages/tdesdk/kcachegrind.po create mode 100644 tde-i18n-pt/messages/tdesdk/tdecachegrind.po (limited to 'tde-i18n-pt') diff --git a/tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.am b/tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.am deleted file mode 100644 index 6869837a64a..00000000000 --- a/tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -KDE_LANG = pt -SUBDIRS = $(AUTODIRS) -KDE_DOCS = AUTO -KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.in b/tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.in deleted file mode 100644 index 79b30fe93e0..00000000000 --- a/tde-i18n-pt/docs/tdesdk/kcachegrind/Makefile.in +++ /dev/null @@ -1,635 +0,0 @@ -# Makefile.in generated by automake 1.10.1 from Makefile.am. -# KDE tags expanded automatically by am_edit - $Revision: 483858 $ -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -subdir = docs/tdesdk/tdecachegrind -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ - $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -SOURCES = -DIST_SOURCES = -#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ -#>- html-recursive info-recursive install-data-recursive \ -#>- install-dvi-recursive install-exec-recursive \ -#>- install-html-recursive install-info-recursive \ -#>- install-pdf-recursive install-ps-recursive install-recursive \ -#>- installcheck-recursive installdirs-recursive pdf-recursive \ -#>- ps-recursive uninstall-recursive -#>+ 7 -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ - html-recursive info-recursive install-data-recursive \ - install-dvi-recursive install-exec-recursive \ - install-html-recursive install-info-recursive \ - install-pdf-recursive install-ps-recursive install-recursive \ - installcheck-recursive installdirs-recursive pdf-recursive \ - ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive -RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive -ETAGS = etags -CTAGS = ctags -DIST_SUBDIRS = $(SUBDIRS) -#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -#>+ 1 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) -ACLOCAL = @ACLOCAL@ -AMTAR = @AMTAR@ -ARTSCCONFIG = @ARTSCCONFIG@ -AUTOCONF = @AUTOCONF@ -AUTODIRS = @AUTODIRS@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CONF_FILES = @CONF_FILES@ -CYGPATH_W = @CYGPATH_W@ -DCOPIDL = @DCOPIDL@ -DCOPIDL2CPP = @DCOPIDL2CPP@ -DCOPIDLNG = @DCOPIDLNG@ -DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ -DEFS = @DEFS@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -GMSGFMT = @GMSGFMT@ -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ -KCONFIG_COMPILER = @KCONFIG_COMPILER@ -KDECONFIG = @KDECONFIG@ -KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ -KDE_RPATH = @KDE_RPATH@ -KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LN_S = @LN_S@ -LTLIBOBJS = @LTLIBOBJS@ -MAKEINFO = @MAKEINFO@ -MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ -MCOPIDL = @MCOPIDL@ -MEINPROC = @MEINPROC@ -MKDIR_P = @MKDIR_P@ -MSGFMT = @MSGFMT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -TOPSUBDIRS = @TOPSUBDIRS@ -VERSION = @VERSION@ -XGETTEXT = @XGETTEXT@ -XMLLINT = @XMLLINT@ -X_RPATH = @X_RPATH@ -abs_builddir = @abs_builddir@ -abs_srcdir = @abs_srcdir@ -abs_top_builddir = @abs_top_builddir@ -abs_top_srcdir = @abs_top_srcdir@ -am__leading_dot = @am__leading_dot@ -am__tar = @am__tar@ -am__untar = @am__untar@ -#>- bindir = @bindir@ -#>+ 2 -DEPDIR = .deps -bindir = @bindir@ -build_alias = @build_alias@ -builddir = @builddir@ -datadir = @datadir@ -datarootdir = @datarootdir@ -docdir = @docdir@ -dvidir = @dvidir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -htmldir = @htmldir@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -kde_appsdir = @kde_appsdir@ -kde_bindir = @kde_bindir@ -kde_confdir = @kde_confdir@ -kde_datadir = @kde_datadir@ -kde_htmldir = @kde_htmldir@ -kde_icondir = @kde_icondir@ -kde_kcfgdir = @kde_kcfgdir@ -kde_libs_htmldir = @kde_libs_htmldir@ -kde_libs_prefix = @kde_libs_prefix@ -kde_locale = @kde_locale@ -kde_mimedir = @kde_mimedir@ -kde_moduledir = @kde_moduledir@ -kde_servicesdir = @kde_servicesdir@ -kde_servicetypesdir = @kde_servicetypesdir@ -kde_sounddir = @kde_sounddir@ -kde_styledir = @kde_styledir@ -kde_templatesdir = @kde_templatesdir@ -kde_wallpaperdir = @kde_wallpaperdir@ -kde_widgetdir = @kde_widgetdir@ -tdeinitdir = @tdeinitdir@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localedir = @localedir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -pdfdir = @pdfdir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -psdir = @psdir@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -srcdir = @srcdir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -top_builddir = @top_builddir@ -top_srcdir = @top_srcdir@ -xdg_appsdir = @xdg_appsdir@ -xdg_directorydir = @xdg_directorydir@ -xdg_menudir = @xdg_menudir@ -KDE_LANG = pt -#>- SUBDIRS = $(AUTODIRS) -#>+ 1 -SUBDIRS =. -KDE_DOCS = AUTO -KDE_MANS = AUTO -#>- all: all-recursive -#>+ 1 -all: docs-am all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) -#>- @for dep in $?; do \ -#>- case '$(am__configure_deps)' in \ -#>- *$$dep*) \ -#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -#>- && exit 0; \ -#>- exit 1;; \ -#>- esac; \ -#>- done; \ -#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile'; \ -#>- cd $(top_srcdir) && \ -#>- $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile -#>+ 12 - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile - cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdesdk/tdecachegrind/Makefile.in -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -$(top_srcdir)/configure: $(am__configure_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -$(ACLOCAL_M4): $(am__aclocal_m4_deps) - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -$(RECURSIVE_CLEAN_TARGETS): - @failcom='exit 1'; \ - for f in x $$MAKEFLAGS; do \ - case $$f in \ - *=* | --[!k]*);; \ - *k*) failcom='fail=yes';; \ - esac; \ - done; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || eval $$failcom; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done -ctags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ - include_option=--etags-include; \ - empty_fix=.; \ - else \ - include_option=--include; \ - empty_fix=; \ - fi; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test ! -f $$subdir/TAGS || \ - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ - END { if (nonempty) { for (i in files) print i; }; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -#>- distdir: $(DISTFILES) -#>+ 1 -distdir: distdir-nls $(DISTFILES) - @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ - list='$(DISTFILES)'; \ - dist_files=`for file in $$list; do echo $$file; done | \ - sed -e "s|^$$srcdirstrip/||;t" \ - -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ - case $$dist_files in \ - */*) $(MKDIR_P) `echo "$$dist_files" | \ - sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ - sort -u` ;; \ - esac; \ - for file in $$dist_files; do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - if test -d $$d/$$file; then \ - dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - distdir=`$(am__cd) $(distdir) && pwd`; \ - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$$top_distdir" \ - distdir="$$distdir/$$subdir" \ - am__remove_distdir=: \ - am__skip_length_check=: \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile -installdirs: installdirs-recursive -installdirs-am: -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -#>- uninstall: uninstall-recursive -#>+ 1 -uninstall: uninstall-docs uninstall-nls uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." -#>- clean: clean-recursive -#>+ 1 -clean: kde-rpo-clean clean-recursive - -#>- clean-am: clean-generic mostlyclean-am -#>+ 1 -clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f Makefile -distclean-am: clean-am distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -html: html-recursive - -info: info-recursive - -info-am: - -#>- install-data-am: -#>+ 1 -install-data-am: install-docs install-nls - -install-dvi: install-dvi-recursive - -install-exec-am: - -install-html: install-html-recursive - -install-info: install-info-recursive - -install-man: - -install-pdf: install-pdf-recursive - -install-ps: install-ps-recursive - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -pdf: pdf-recursive - -pdf-am: - -ps: ps-recursive - -ps-am: - -uninstall-am: - -.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ - install-strip - -.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ - all all-am check check-am clean clean-generic ctags \ - ctags-recursive distclean distclean-generic distclean-tags \ - distdir dvi dvi-am html html-am info info-am install \ - install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am install-man \ - install-pdf install-pdf-am install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ - tags-recursive uninstall uninstall-am - -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: - -#>+ 2 -KDE_DIST=index.docbook index.cache.bz2 Makefile.in Makefile.am - -#>+ 24 -index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.docbook - @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi - -docs-am: index.cache.bz2 - -install-docs: docs-am install-nls - $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind - @if test -f index.cache.bz2; then \ - echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/; \ - $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/; \ - elif test -f $(srcdir)/index.cache.bz2; then \ - echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/; \ - $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/; \ - fi - -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/common - $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/common - -uninstall-docs: - -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind - -clean-docs: - -rm -f index.cache.bz2 - - -#>+ 13 -install-nls: - $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind - @for base in index.docbook ; do \ - echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/$$base ;\ - $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/$$base ;\ - done - -uninstall-nls: - for base in index.docbook ; do \ - rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/$$base ;\ - done - - -#>+ 5 -distdir-nls: - for file in index.docbook ; do \ - cp $(srcdir)/$$file $(distdir); \ - done - -#>+ 15 -force-reedit: - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile - cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdesdk/tdecachegrind/Makefile.in - - -#>+ 21 -clean-bcheck: - rm -f *.bchecktest.cc *.bchecktest.cc.class a.out - -bcheck: bcheck-recursive - -bcheck-am: - @for i in ; do \ - if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ - echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ - echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ - echo "$$i"; \ - if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ - rm -f $$i.bchecktest.cc; exit 1; \ - fi ; \ - echo "" >> $$i.bchecktest.cc.class; \ - perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ - rm -f a.out; \ - fi ; \ - done - - -#>+ 3 -final: - $(MAKE) all-am - -#>+ 3 -final-install: - $(MAKE) install-am - -#>+ 3 -no-final: - $(MAKE) all-am - -#>+ 3 -no-final-install: - $(MAKE) install-am - -#>+ 3 -kde-rpo-clean: - -rm -f *.rpo - -#>+ 3 -nmcheck: -nmcheck-am: nmcheck diff --git a/tde-i18n-pt/docs/tdesdk/kcachegrind/index.cache.bz2 b/tde-i18n-pt/docs/tdesdk/kcachegrind/index.cache.bz2 deleted file mode 100644 index f1582b02160..00000000000 Binary files a/tde-i18n-pt/docs/tdesdk/kcachegrind/index.cache.bz2 and /dev/null differ diff --git a/tde-i18n-pt/docs/tdesdk/kcachegrind/index.docbook b/tde-i18n-pt/docs/tdesdk/kcachegrind/index.docbook deleted file mode 100644 index b999c1d4261..00000000000 --- a/tde-i18n-pt/docs/tdesdk/kcachegrind/index.docbook +++ /dev/null @@ -1,1036 +0,0 @@ - -KCachegrind'> - Cachegrind"> - Calltree"> - Callgrind"> - Valgrind"> - OProfile"> - - - - -]> - - - - - - -O Manual do &tdecachegrind; - - -Josef Weidendorfer
Josef.Weidendorfer@gmx.de
-
-
- -JoséPires
jncp@netcabo.pt
Tradução
- -
- - -2002-2004 -Josef Weidendorfer - -&FDLNotice; - -2004-07-27 -0.4.6 - - -O &tdecachegrind; é uma ferramenta de visualização de dados de análise ('profiling') criado para o ambiente de trabalho do &kde;. - - - -KDE -tdesdk -Cachegrind -Callgrind -Valgrind -Análise - - -
- - - -Introdução - -O &kappname; é um navegador para os dados produzidos pelas ferramentas de análise ('profiling'). Este capítulo explica para que é que serve a análise, como é que é feita e dá alguns exemplos das ferramentas de análise disponíveis. - - -Análise - -Quando você desenvolve um programa, normalmente uma das últimas tarefas envolve as optimizações de performance. Dado que não faz sentido optimizar funções que são raramente utilizadas, convém você saber em que parte do seu programa a maioria do tempo é dispendido. - -Para o código sequencial, a recolha de dados estatísticos das características de execução dos programas, como os valores dos tempos dispendidos nas funções e linhas de código é normalmente o suficiente. Isto é chamado normalmente de Análise ou 'Profiling'. O programa é executado sob o controlo de uma ferramenta de análise que fornece o resumo de uma execução no fim. Em contraste, para o código paralelo, os problemas de performance são normalmente causados quando um processador fica à espera dos dados do outro. Dado que este tempo de espera normalmente é atribuído de forma simples, aqui será melhor gerar traceamentos dos eventos com tempos marcados. O KCachegrind não consegue visualizar este tipo de dados. - -Depois de analisar os dados produzidos, deverá ser fácil ver os pontos fortes e os críticos em termos de performance do código: por exemplo, podem ser tiradas conclusões sobre a quantidade de chamadas e as regiões de código que poderão ser optimizadas. No fim, o sucesso da optimização deverá ser verificado com uma nova análise. - - - -Métodos de Análise - -Uma medida exacta do tempo que passou ou dos eventos que ocorrem durante a execução de uma determinada região de código (⪚ uma função) necessita da introdução de algum código de medida adicional, antes e depois da região indicada. Este código lê o tempo ou uma contagem de eventos global, calculando as diferenças. Assim, o código original terá de ser alterado antes da execução. Isto é chamado de instrumentação. Esta poderá ser criada pelo próprio programador, pelo compilador ou pelo sistema de execução. Dado que as regiões interessantes estão normalmente encadeadas, a sobrecarga da instrumentação influencia sempre a medida em si. Como tal, a instrumentação deverá ser feita de forma selectiva e os resultados terão de ser interpretados com cuidado. Obviamente, isto torna a análise de performance por medida exacta um processo bastante complexo. - -É possível uma medida exacta devido aos contadores por 'hardware' (que incluem os contadores que incrementam a cada impulso de relógio) que vêm nos processadores modernos, os quais são incrementados sempre que ocorre um evento. Dado que se pretende atribuir os eventos a regiões de código, sem os contadores, teria de se lidar com todos os eventos, incrementando um contador para a região de código em si. Fazer isso por 'software', obviamente, não é possível. Mas, assumindo que a distribuição de eventos pelo código-fonte é semelhante a procurar apenas por cada n-ésimo evento em vez de todos os eventos, foi criado um método de medida que é ajustado de acordo com a sobrecarga. É chamado de Amostragem. A Amostragem ao Longo do Tempo (TBS) usa um temporizador para ver regularmente o contador do programa para criar um histograma sobre o código do mesmo. A Amostragem Baseada em Eventos (EBS) tira partido dos contadores por 'hardware' dos processadores modernos e usa um modo em que é chamada uma rotina de tratamento de interrupções no caso de se atingir o valor mínimo de um contador, gerando um histograma, da distribuição do evento correspondente. Na rotina de tratamento, o contador do evento é sempre reinicializado para o 'n' do método de amostragem. A vantagem da amostragem é que o código não tem de ser alterado, mas é à mesma um compromisso: a hipótese anterior será mais correcta se o 'n' for baixo, mas quanto mais baixo for o 'n', maior será a sobrecarga da rotina de tratamento da interrupção. - -Outro método de medida é a simulação das coisas que ocorrem no sistema do computador enquanto executa um dado código, &ie; uma simulação orientada pela execução. Obviamente, a simulação deriva sempre de um modelo de 'hardware' mais ou menos preciso. Para os modelos muito detalhados que se aproximam da realidade, o tempo de simulação poderá alto, de forma inaceitável para ser posto em prática. A vantagem é que o código de simulação/medida arbitrariamente complexo poderá ser introduzido num dado código sem perturbar os resultados. Se fizer isto directamente antes da execução (chamado de instrumentação durante a execução), usando o binário original, é bastante confortável para o utilizador. O método torna-se inútil quando se simula apenas partes de uma máquina com um modelo simples. Para além disso, os resultados produzidos pelos modelos simples são normalmente muito mais fáceis de compreender: o problema frequente com o 'hardware' real é que os resultados incluem efeitos sobrepostos de diferentes partes do sistema. - - - -Ferramentas de Análise - -A ferramenta de análise mais conhecida é o gprof do GCC: Você precisa de compilar o seu programa com a opção ; se correr o programa, irá gerar um ficheiro gmon.out, o qual poderá ser transformado num formato legível com o gprof. A desvantagem é o passo de compilação necessário para um dado executável, o qual terá de ser compilado estaticamente. O método aqui usado é a instrumentação gerada pelo compilador, que consiste na medida dos arcos de chamadas entre funções, bem como contadores para as chamadas respectivas, em conjunto com o TBS, o qual lhe dá um histograma com a distribuição do tempo pelo código. Usando ambos os dados, é possível calcular de forma heurística o tempo inclusivo das funções, &ie; o tempo dispendido numa função, em conjunto com todas as funções chamadas a partir dela. - -Para uma medida exacta dos eventos que ocorrem, existem algumas bibliotecas com funções capazes de ler os contadores de performance do 'hardware'. As mais conhecidas são a actualização PerfCtr para o Linux, e as bibliotecas independentes da arquitectura PAPI e PCL. De qualquer forma, uma medida exacta necessita de instrumentação no código, como é dito acima. Qualquer uma delas usa as próprias bibliotecas ou usa os sistemas de instrumentação automáticos como o ADAPTOR (para a instrumentação do código em FORTRAN) ou o DynaProf (injecção de código com o DynInst). - -O &oprofile; é uma ferramenta de análise ao nível do sistema para Linux que usa a amostragem. - -Em vários aspectos, uma forma confortável de fazer uma Análise é com o Cachegrind ou o Callgrind, os quais são simuladores que usam a plataforma de instrumentação &valgrind; durante a execução. Dado que não existe necessidade de aceder aos contadores do 'hardware' (o que é normalmente difícil com as instalações de Linux de hoje em dia) e os binários a serem analisados podem ser deixados sem modificações, é uma boa forma alternativa para as outras ferramentas de análise. A desvantagem da lentidão da simulação poderá ser reduzida se fizer a simulação apenas nas partes interessantes do programa e, talvez, só apenas em algumas iterações de um ciclo. Sem a instrumentação de medida/simulação, a utilização do Valgrind só terá um atraso numa gama de 3-5. Para além disso, quando apenas o grafo de chamadas e as contagens de chamadas forem de interesse, o simulador da 'cache' poderá ser desligado. - -A simulação da 'cache' é o primeiro passo na aproximação dos tempos reais; como nos sistemas modernos, a execução é bastante sensível à exploração das 'caches' que são pequenos e rápidos tampões de dados que aceleram os acessos repetidos às mesmas células da memória principal. O &cachegrind; faz a simulação da 'cache', interceptando os acessos a memória. Os dados produzidos incluem o número de acessos à memória para dados e instruções, as falhas da 'cache' de 1º/2º nível e relaciona esses dados com as linhas de código e as funções do programa. Combinando estes valores e usando as latências de falhas típicas, é possível indicar uma estimativa do tempo dispendido. - -O Callgrind é uma extensão do &cachegrind; que constrói o grafo de chamadas de um programa na altura, &ie; como as funções se chamam umas às outras e quantos eventos acontecem enquanto uma função é executada. Para além disso, os dados da análise a serem recolhidos podem ser separados por tarefas ('threads') e por contextos de chamadas. Pode fornecer dados de análise ao nível da instrução para permitir a anotação do código descodificado. - - - -Visualização - -As ferramentas de análise produzem tipicamente uma grande quantidade de dados. A vontade de navegar facilmente para baixo e para cima no grafo de chamadas, em conjunto com uma alteração rápida do modo de ordenação das funções e a apresentação dos diferentes tipos de eventos, serve de motivo para criar uma aplicação gráfica que desempenhe esta tarefa. - -O &kappname; é uma visualização para os dados de análise que preenche estes requisitos. Apesar de ser programada em primeiro lugar a partir da navegação dos dados do &cachegrind; com a &calltree; em mente, existem conversores disponíveis para apresentar os dados de análise produzidos pelas outras ferramentas. No apêndice, é dada uma descrição do formato do ficheiro do Cachegrind/Callgrind. - -Para além de uma lista de funções ordenadas de acordo com as métricas de custo exclusivas ou inclusivas e, opcionalmente, agrupadas por ficheiros de código, bibliotecas partilhadas ou classes de C++, o &kappname; contém diversas vistas para uma dada função, nomeadamente -um grafo de chamadas que mostra uma secção do grafo de chamadas em torno da função seleccionada, - -uma árvore que permite visualizar a relação de chamadas encadeadas, em conjunto com as métricas de custo inclusivas para uma detecção visual rápida das funções problemáticas, - -janelas do código-fonte e de anotação do código convertido para Assembly, permitindo ver os detalhes do custo relacionados com as linhas de código e as instruções de baixo-nível. - - - - - - - - -Usar o &tdecachegrind; - - -Gerar Dados a Visualizar - -Primeiro, uma pessoa deseja gerar os dados de performance, medindo aspectos das características de execução de uma aplicação, usando uma ferramenta de análise. O &tdecachegrind; em si não inclui nenhuma ferramenta de análise, mas é bom a ser usado em conjunto com o &callgrind; e, usando um conversor, também poderá ser usado para visualizar os dados produzidos com o &oprofile;. Apesar de o âmbito deste manual não ser a documentação da análise com estas ferramentas, a secção seguinte fornece vários tutoriais introdutórios para o ajudar a começar. - - -&callgrind; - -O &callgrind; está disponível em http://tdecachegrind.sf.net. Convém referir que se chamava anteriormente &calltree;, mas esse nome era enganador. - -O uso mais comum é anteceder a linha de comandos para iniciar a sua aplicação com o callgrind, como por exemplo
callgrind programa argumentos
Quando o programa terminar, será gerado um ficheiro callgrind.out.pid e que poderá ser carregado no &tdecachegrind;.
- -Uma utilização mais avançada será descarregar os dados de análise, sempre que uma dada função da sua aplicação é chamada. Por exemplo, com o konqueror, para ver os dados de análise de modo a gerar apenas uma página Web, você poderia optar por gerar os dados sempre que carregasse no item Ver/Recarregar. Isto corresponde a uma chamada ao KonqMainWindow::slotReload. Use o
callgrind --dump-before=KonqMainWindow::slotReload konqueror
Isto irá produzir vários ficheiros de dados de análise com um número sequencial no fim do nome do ficheiro. Um ficheiro sem esse número no fim (terminando apenas no PID do processo) será também produzido. Se carregar este ficheiro no &tdecachegrind;, todos os outros serão também carregados e poderão ser vistos na Introdução das Partes e na lista das Partes.
- -
- - -&oprofile; - -O &oprofile; está disponível em http://oprofile.sf.net. Siga as instruções de instalação na página Web. Mas, antes disso, verifique se a sua distribuição não o oferece já como um pacote (como a SuSE). - -A análise ao nível do sistema só é permitida para o utilizador 'root', dado que todas as acções do sistema poderão ser observadas. Como tal, terão de ser feitas as seguintes acções como 'root'. Primeiro, configure o processo de análise, usando a GUI oprof_start ou a ferramenta da linha de comandos or the command line tool opcontrol. A configuração normal seria o modo de temporização (TBS, ver a introdução). Para iniciar a medida, execute o opcontrol -s. Depois execute a aplicação em que está interessado e, a seguir, invoque um opcontrol -d. Isto irá apresentar os resultados das medidas nos ficheiros sob a pasta /var/lib/oprofile/samples/. Para ser capaz de visualizar os dados no &tdecachegrind;, execute numa pasta vazia:
opreport -gdf | op2callgrind
Isto irá produzir uma quantidade de ficheiros, um por cada programa que estava a correr no sistema. Cada um deles poderá ser corrido no &tdecachegrind; por si só.
- -
-
- - -Conceitos Básicos da Interface de Utilizador - -Ao iniciar o &tdecachegrind; com um ficheiro de dados de análise como argumento, ou depois de carregar um com a opção Ficheiro/Abrir, você irá ver uma barra lateral que contém a lista de funções à esquerda e a parte principal à direita, que consiste numa área com visualizações dos dados de uma função seleccionada. Esta área de visualização pode ser configurada de forma arbitrária para mostrar várias visualizações de uma vez. - -Da primeira vez, esta área ficará dividida numa parte inferior e noutra superior, cada uma com visualizações diferentes seleccionadas através de páginas. Para mover as áreas de visualização, use o menu de contexto das páginas e ajuste os separadores entre elas. Para mudar rapidamente de disposições de visualização, use a opção Ver/Disposições/Duplicar, altere a disposição e mude para a próxima com a opção Ver/Disposição/Próxima (ou com atalhos de teclado mais convenientes). - -Uma coisa importante para a visualização é o tipo de evento activo: para o &callgrind;, este é ⪚ os 'Cache Misses' (Falhas na Cache) ou o Cycle Estimation (Estimativa da 'Cache') para o &oprofile;, este é o "Temporizador" no caso mais simples. Você poderá alterar o tipo de evento com uma lista na barra de ferramentas ou na janela do Tipo de Evento. Uma primeira vista de olhos nas características de execução deverá ser apresentada quando você seleccionar a função main na lista da esquerda, e veja a visualização do grafo de chamadas. Aí, poderá ver as chamadas em curso no seu programa. Lembre-se que o grafo de chamadas só mostra as funções com uma grande quantidade de eventos. Se fizer duplo-click numa função do grafo, ela irá mudar para mostrar as funções chamadas pela seleccionada. - -Para explorar mais a interface, para além deste manual, dê uma vista de olhos na secção de documentação na página Web http://tdecachegrind.sf.net. Para além disso, cada elemento gráfico do &tdecachegrind; tem ajudas O Que é Isto?. - - -
- - - -Conceitos Básicos - -Este capítulo explica alguns conceitos do &tdecachegrind; e introduz os termos usados na interface. - - -O Modelo dos Dados de Análise - - -Entidades de Custo - -Os valores de custos dos tipos de eventos (como as Falhas de L2) são atribuídos às entidades de custo, as quais são itens relacionados com o código-fonte ou com as estruturas de dados de um dado programa. As entidades de custo podem ser não só posições no código ou nos dados, mas também tuplos de posição. Por exemplo, uma chamada tem uma origem e um destino, ou um endereço de dados poderá ter um tipo de dados e uma posição no código em que a sua alocação ocorreu. - -As entidades de custo conhecidas pelo KCachegrind estão indicadas a seguir. Posições Simples: Instrução. Uma instrução de Assembly num endereço indicado. Linha de Código de uma Função. Todas as instruções que o compilador (através da informação de depuração) mapeia numa dada linha de código, identificada pelo nome do ficheiro de código e pelo número de linha, e que são executadas sob o contexto de uma dada função. A última é necessária, porque uma linha de código de uma função incorporada ('inline') poderá aparecer no contexto de várias funções. As instruções sem qualquer mapeamento numa linha de código são representadas pela linha 0 do ficheiro "???". Função. Todas as linhas de código de uma dada função compõem a função em si. Uma função é identificada pelo seu nome e pela sua localização no ficheiro-objecto binário, se estiver disponível. A última é necessária porque os objectos binários de um único programa poderão conter funções com o mesmo nome (estas poderão ser acedidas, ⪚, com o 'dlopen'/'dlsym'; o editor de ligações durante a execução resolve as funções numa dada ordem de objectos binários). Se uma ferramenta de análise não conseguir detectar o nome do símbolo de uma função, ⪚ porque a informação de depuração não está disponível, tanto é usado o endereço da primeira instrução executada, ou então o "???". Objecto Binário. Todas as funções cujo código esteja dentro do intervalo de um dado objecto binário, seja ele o executável principal ou uma biblioteca dinâmica. Ficheiro de Código. Todas as funções cuja primeira instrução esteja mapeada numa linha do ficheiro de código indicado. Classe. Os nomes dos símbolos das funções estão tipicamente ordenados de forma hierárquica em espaços de nomes, ⪚ os 'namespaces' de C++, ou as classes das linguagens orientadas por objectos. Como tal, uma classe poderá conter funções da classe ou outras classes embebidas nela. Parte de Análise. Alguma secção no tempo de uma execução da análise, com um dado ID de tarefa, ID de processo e uma linha de comandos executada. Tal como é visto na lista, um conjunto de entidades de custo define normalmente outra entidade de custo. Como tal, existe uma hierarquia de inclusão das entidade de custo que deverá ser óbvia a partir da descrição acima. - -Tuplos de posições: Uma chamada de uma instrução para uma função-alvo. Uma chamada de uma linha de código para uma função-alvo. Uma chamada de uma função de origem para uma função de destino. Um salto (in)condicional de uma instrução de origem para uma de destino. Um salto (in)condicional de uma linha de origem para uma de destino. Os saltos entre funções não são permitidos, dado que isto não faz sentido num grafo de chamadas. Como tal, as sequências como o tratamento de excepções e os 'long jumps' do C terão de ser traduzidos em saltos na pilha de chamadas, de acordo com as necessidades. - - - - - - -Tipos de Evento - -Podem ser indicados vários tipos de eventos arbitrários nos dados de análise, atribuindo-lhes um nome. O seu custo, relacionado com uma entidade de custo, é um inteiro de 64 bits. -Os tipos de eventos cujos tipos são indicados num ficheiro de dados de análise são chamados de eventos reais. Para além disso, uma pessoa poderá indicar fórmulas para os tipos de eventos, calculadas a partir dos eventos reais, chamadas de eventos inerentes. - - - - - -Estado da Visualização - -O estado da visualização de uma janela do KCachegrind inclui: o tipo primário e secundário dos eventos seleccionados para mostrar, o agrupamento de funções (usado na lista da Análise da Função e no colorir da entidade), as partes da análise cujos custos serão incluídos na visualização, uma entidade de custo activa (⪚ uma função seleccionada a partir da barra de análise da função), uma entidade de custo seleccionada. Este estado influencia as visualizações. -As visualizações são sempre apresentadas apenas para a entidade de custo activa de momento. Quando uma dada visualização não é apropriada para uma entidade de custo, fica desactivada (p.ex., ao seleccionar um objecto ELF na lista de grupos através de um duplo-click, a anotação de código para um objecto ELF não faz sentido). -Por exemplo, para uma função activa, a lista de chamados mostra todas as funções chamadas a partir da função activa. Um utilizador poderá seleccionar uma dessas funções sem a tornar activa. Se o grafo de chamadas é mostrado ao lado, irá seleccionar automaticamente a mesma função. - - - - -Partes da Interface - - -Barras Laterais -As barras laterais são janelas laterais que poderão ser colocadas em qualquer extremo de uma janela do KCachegrind. Elas contêm sempre uma lista das entidades de custo, ordenadas de uma determinada forma. -Análise da Função. A Análise da Função é uma lista de funções que mostram o custo inclusivo e o exclusivo, o número de chamadas, o nome e a posição das funções. -Introdução às Partes -Pilha de Chamadas - - - - - -Área de Visualização -A área de visualização, tipicamente do lado direito da janela principal do KCachegrind, é composta por uma (a predefinida) ou mais páginas, quer alinhadas na horizontal quer na vertical. Cada página contém diferentes áreas de visualização com apenas uma entidade de custo de cada vez. O nome desta entidade é indicado no cimo da página. Se existirem várias páginas, só uma é que estará activa. O nome da entidade da página activa é mostrado a negrito e determina a entidade de custo activa da janela do KCachegrind. - - - -Áreas de uma Página -Cada página poderá conter até quatro áreas de visualização, nomeadamente a de Topo, Direita, Esquerda e Fundo. Cada área poderá conter várias vistas empilhadas. A área visível é seleccionada por uma barra de páginas. As barras de páginas na área da direita e de topo estão em cima, enquanto que as barras de páginas da esquerda e de baixo estão no fundo. Você poderá indicar que tipo de visualização deverá ir para determinada área com o menu de contexto das páginas. - - - -Visualização Sincronizada da Entidade Seleccionada numa Página -Para além de uma entidade activa, cada página tem uma entidade seleccionada. Como a maioria dos tipos de visualização mostram várias entidades com a activa centrada, você muda o item seleccionado se navegar dentro de uma visualização (carregando com o rato ou usando o teclado). Tipicamente, os itens seleccionados são mostrados de forma realçada. Se alterar a entidade seleccionada numa das visualizações de uma página, todas as outras visualizações da página irão ficar realçadas de igual forma na nova entidade seleccionada. - - - -Sincronização entre Páginas -Se existirem várias páginas, uma mudança de selecção numa das páginas leva a uma mudança da activação na próxima página (à direita/em baixo). Este tipo de associação ⪚ deverá permitir uma navegação rápida nos grafos de chamadas. - - - -Disposições -A disposição de todas as páginas de uma janela poderá ser gravada (veja o item do menu Ver/Disposição). Depois de duplicar a disposição actual (Ctrl+Mais ou o menu) e alterar alguns tamanhos ou mudar uma área de visualização de posição para outra área de uma página, você poderá mudar rapidamente entre a disposição antiga e a nova com as combinações Ctrl+Esquerda/Direita. O conjunto de disposições será guardado entre sessões do KCachegrind do mesmo comando analisado. Você poderá tornar o conjunto de disposições o predefinido para as novas sessões do KCachegrind ou reponha o conjunto de disposições por omissão. - - - - -Barras Laterais - - -Análise Simples -A análise simples contém uma lista de grupos e outra lista de funções. A lista de grupos contém todos os grupos em que o custo é dispendido, dependendo do tipo de grupo escolhido. A lista de grupos fica escondida quando o agrupamento está desligado. -A lista de funções contém as funções do grupo seleccionado (ou todas as funções se o agrupamento estiver desligado), ordenadas por uma dada coluna, ⪚ os custos da própria ou os custos inclusos dispendidos até então. Existe um número máximo de funções apresentado na lista que é configurável na opção Configuração/Configurar o KCachegrind. - - - -Introdução às Partes -Na execução de uma análise, poderão ser produzidos vários ficheiros de dados de análise que poderão ser carregados em conjunto no KCachegrind. A barra de Introdução das Partes mostra estes ficheiros, ordenados na horizontal de acordo com a hora de criação; os tamanhos dos rectângulo são proporcionais ao custo dispendido nas partes. Você poderá seleccionar uma ou várias partes para restringir os custos apresentados nas outras zonas do KCachegrind apenas para estas partes. -As partes são, por sua vez, sub-divididas: existem um modo de partição e um modo repartido por custo inclusivo: -Partição: O utilizador vê a repartição em grupos para uma parte de dados de análise, de acordo com o tipo de grupo seleccionado. Por exemplos, se forem seleccionados os grupos de objectos ELF, você irá ver rectângulos coloridos para cada objecto ELF usado (biblioteca dinâmica ou executável), dimensionado de acordo com o custo nele dispendido. -Repartição do Custo Inclusivo: É mostrado um rectângulo com o custo inclusivo da função activa de momento na parte. Este, por sua vez, vai sendo repartido para mostrar os custos inclusos das funções chamadas por ela. - - - - - -Pilha de Chamadas -Esta é uma pilha de chamadas 'mais prováveis' puramente fictícia. É criada a partir da função activa de momento e adiciona as funções chamadoras/chamadas com o maior custo no seu topo e no seu fundo. -As colunas 'Custo' e 'Chamadas' mostram o custo usado para todas as chamadas da função na linha acima. - - - - -Visualizações - - -Tipos de Evento -Esta lista mostra os tipos de custos disponíveis e o custo correspondente à própria e o inclusivo para a função activa de momento, para esse tipo de evento. -Se escolher um tipo de evento na lista, você poderá alterar o tipo de custos apresentados em todo o KCachegrind, de modo a ser o tipo seleccionado. - - - -Listas de Chamadas -Estas listas mostram as chamadas de/para a função activa de momento. Entende-se por 'todas' as funções chamadoras/chamadas as que poderão ser acedidas no sentido da chamadora/chamada, mesmo que existam outras funções pelo meio. -A lista de chamadas inclui: -Chamadores Directos -Chamados Directos -Todos os Chamadores -Todos os Chamados - - - - - -Mapas -Uma visualização em árvore do tipo de evento primário, para cima ou para baixo, na hierarquia de chamadas. Cada rectângulo colorido representa uma função; o seu tamanho tenta ser proporcional ao custo dispendido na função activa enquanto está a correr (contudo, existem restrições de desenho). -Para o Mapa dos Chamadores, o gráfico mostra a hierarquia encadeada de todas as funções que chamam a função activa de momento; no caso do Mapa dos Chamados, mostra a hierarquia respectiva, mas para as funções chamadas pela função activa. -As opções de aparência poderão ser acedidas no menu de contexto. Para obter proporções de tamanho exactas, escolha a opção 'Esconder os contornos incorrectos'. Dado que este modo poderá ocupar bastante tempo, o utilizador poderá desejar limitar o nível máximo de encadeamento do desenho antes. O 'Melhor' determina a direcção da repartição dos filhos, a partir das proporções do pai. O 'Sempre o Melhor' decide sobre o espaço restante de cada elemento do mesmo nível. O 'Ignorar as Proporções' ocupa o espaço para o nome da função, antes de desenhar os filhos. Lembre-se que as proporções podem ficar totalmente erradas. -A navegação com o teclado está disponível com as teclas de cursores esquerda/direita para navegar nos elementos do mesmo nível, enquanto que os cursores cima/baixo sobem/descem um nível de encadeamento. O 'Return' activa o item actual. - - - -Grafo de Chamadas -Esta janela mostra o grafo de chamadas em torno da função activa. O custo apresentado é apenas o custo dispendido enquanto a função estava de facto a correr; &ie;, o custo mostrado para o main() - se for visível - deverá ser o mesmo que o custo da função activa, dado que faz parte do custo inclusivo do main() dispendido enquanto a função activa estava em execução. -Para os ciclos, as setas de chamadas a azul indicam que esta é uma chamada artificial adicionada para desenhar correctamente o que, de facto, nunca ocorreu. -Se o grafo for maior que a área de desenho, é mostrada uma vista geral num dos lados. Existem opções de visualização semelhantes às da Árvore de Chamadas; a função seleccionada está realçada. - - - -Anotações -As listas anotadas de código/Assembly mostram as instruções de código (ou descodificadas para Assembly) da função activa de momento, em conjunto com o custo (da própria) dispendido ao executar o código de uma linha de código ou instrução. Se ocorreu uma chamada, as linhas com os detalhes da chamada são introduzidas no código: o custo (inclusivo) dispendido dentro da chamada, o número de chamadas que ocorreu e o destino da chamada. -Seleccione uma linha de informação da chamada para activar o destino da chamada. - - - - - - - -Referência de Comandos - - -A janela principal do &tdecachegrind; - - - -O Menu <guimenu ->Ficheiro</guimenu -> - - - - - &Ctrl;N Ficheiro Novo - Abre uma janela de topo em branco para onde poderá carregar os dados de análise. Esta acção não é realmente necessária, dado que o Ficheiro/Abrir dar-lhe-á uma nova janela de topo, quando a actual já estiver a mostrar alguns dados. - - - - &Ctrl;O Ficheiro Abrir - Abre a Janela de Abertura de Ficheiros para escolher o ficheiro de dados de análise a ser carregado. Se existirem já alguns dados visíveis na janela de topo actual, esta opção irá abrir uma nova janela. Se quiser abrir dados adicionais de análise na janela actual, use o Ficheiro/Adicionar. -O nome dos ficheiros de dados de análise normalmente termina em ..-, onde o .. e o .. são opcionais e usados para vários ficheiros de dados de análise que pertençam uma execução de uma aplicação. Se ler um ficheiro que termine apenas em ., os ficheiros de dados eventualmente existentes para esta execução, mas sem terminações adicionais, são também carregados. -Exemplo: Se existirem os ficheiros de dados de análise 'cachegrind.out.123' e 'cachegrind.out.123.1', ao carregar o primeiro, o segundo será também carregado automaticamente. - - - -Ficheiro Adicionar - Adiciona um ficheiro de dados de análise à janela actual. Com isto, você poderá obrigar vários ficheiros de dados a serem carregados para a mesma janela de topo, mesmo que não sejam da mesma execução, tal como está definido através da convenção de nomes dos ficheiros de dados de análise. Por exemplo, poderá ser usado para uma comparação 'lado-a-lado'. - - - -Ficheiro Recarregar - Volta a carregar os dados de análise. Isto é mais interessante, depois de outro ficheiro de dados de análise ter sido gerado para uma execução de uma aplicação já carregada. - - - - &Ctrl;Q Ficheiro Sair -Sai do &kappname; - - - - - - - -O Menu <guimenu ->Ver</guimenu -> - - - - -Ver Tipo Primário de Evento -(Por fazer) - - - -Ver Tipo Secundário de Evento -(Por fazer) - - - -Ver Grupos -(Por fazer) - - - -Ver Disposição -(Por fazer) - - - -Ver Separar -(Por fazer) - - - - - - - - - - - - -Perguntas e Respostas -&reporting.bugs; &updating.documentation; - - - - -Para que é que serve o &tdecachegrind;? Não faço a mínima ideia. - - -O &tdecachegrind; é útil numa fase posterior do desenvolvimento do 'software' que é a análise ('profiling'). Se você não programar aplicações, não precisa do &tdecachegrind;. - - - - - -Qual é a diferença entre o 'Incl.' e o 'Próprio' ? - - -Estes são atributos de custos para as funções, no que respeita a um dado tipo de evento. Dado que as funções se podem chamar umas às outras, faz sentido distinguir o custo da função em si ('Custo da Própria') e o custo que inclui todas as funções chamadas ('Custo Inclusivo'). O 'Próprio' é referido também como custo 'Exclusivo'. -Por isso, ⪚ para o main(), você irá ter sempre um custo inclusivo de quase 100%, enquanto que o custo da própria função é infinitesimal face ao real trabalho desempenhado nas outras funções. - - - - - -A barra de ferramentas/menu do meu KCachegrind está tão estranha. Isto é normal? - - -Obviamente, o KCachegrind está mal instalado no seu sistema. Recomenda-se que o compile com o prefixo de instalação igual à sua directoria de base do sistema KDE, como por exemplo o comando configure --prefix=/opt/kde3; make install. Se escolher outra directoria, como a $HOME/kde, você deverá apontar a variável de ambiente TDEDIR para esta directoria antes de executar o KCachegrind. - - - - - -Se fizer duplo-click numa função qualquer do Grafo de Chamadas, ela mostra para a função 'main' o mesmo custo que para a função seleccionada. Não é suposto ser constante e igual a 100% ? - - -Você activou uma função sob a main() com um custo menor que o da main(). Para qualquer função, só é apresentada essa parte do custo completo da função, sendo ela dispendida enquanto a função activa está em execução, &ie; o custo mostrado para qualquer função nunca pode ser maior que o custo da função activada. - - - - - - - - -Glossário - -Segue-se uma lista misturada de termos. -Análise ('Profiling'): O processo de reunião de informação estatística sobre as características das execuções dos programas. -Rastreabilidade: O processo de supervisionar a execução de um programa e registar os eventos que ocorrem, ordenados por data e hora, num ficheiro de resultado, o ficheiro de Traceamento. -Traceamento: Uma sequência de eventos ao longo do tempo que ocorreu durante a supervisão da execução de um programa. O seu tamanho é tipicamente linear com o tempo de execução do programa. -Ficheiro de Dados de Análise: Um ficheiro que contém os dados medidos numa experiência de análise (ou parte dela) ou produzidos depois da análise de um traceamento. O seu tamanho é tipicamente linear com o tamanho do código do programa. -Parte de Dados de Análise (referido incorrectamente também como: Parte de Traceamento): A informação propriamente dita de um ficheiro de dados de análise. -Experiência de Análise: Uma execução de um programa supervisionada por uma ferramenta de análise, gerando possivelmente vários ficheiros de dados das partes e/ou tarefas dessa execução. -Projecto de Análise: Uma configuração para as experiências de análise usada para um programa que tenha de ser analisado, talvez para várias versões. As comparações dos dados de análise só fará tipicamente sentido entre dados de análise produzidos num único projecto de análise. -Entidade de Custo: Um item abstracto relacionado com o código-fonte, para o qual poderão ser atribuídas as contagens de eventos. As dimensões das entidades de custo são a localização no código (⪚, linha de código, função), a localização dos dados (⪚ tipo dos dados acedidos, o objecto de dados), a localização da execução (⪚, a tarefa ou processo) e os tuplos das posições acima indicadas (⪚, as chamadas, o acesso aos objectos pela instrução, os dados obtidos a partir da 'cache'). -Tipo de Evento: O tipo de evento do qual os custos poderão ser atribuídos a uma entidade de custo. Existem os tipos de eventos reais e os inerentes. -Tipo de Evento Real: Um tipo de evento que poderá ser medido por uma ferramenta. Necessita da existência de um sensor para o tipo de evento indicado. -Tipo de Evento Inerente: Um tipo de evento virtual que só aparece na visualização e que é definido por uma fórmula calculada a partir dos tipos de eventos reais. -Custos dos Eventos: A soma dos eventos de um determinado tipo que ocorrem enquanto a execução está relacionada com uma dada entidade de custo. O custo em si é atribuído à entidade. - - - - - - - -Créditos e Licença - -&kappname; -Obrigado ao Julian Seward pelo seu excelente &valgrind;, e ao Nicholas Nethercote pela adição do &cachegrind;. Sem estes programas, nem a actualização da árvore de chamadas, nem o &valgrind;, nem mesmo o KCachegrind existiriam. Algumas das ideias para esta interface foram dadas por eles, também. -E muito obrigado a todos os relatórios de erros e sugestões dos vários utilizadores. -&underFDL; - - -Instalação - - -Como obter o &tdecachegrind; - -O &tdecachegrind; faz parte do pacote &package; do &kde;. Para as versões intermédias menos suportadas, o &callgrind; e a documentação futura, veja na página pessoal http://tdecachegrind.sf.net para obter mais instruções de instalação e compilação. - - - -Requisitos - -Para poder usar com sucesso o &tdecachegrind;, você precisa do &kde; 3.x. Para gerar os registos das análises, o &cachegrind; ou o &calltree;/&callgrind; é recomendado. - - - -Compilação e Instalação -&install.compile.documentation; - - -Configuração - -Todas as opções de configuração se encontram na janela de configuração ou nos menu de contexto dos gráficos. - - - - - -&documentation.index; -
- - - - - - - - - - - - - - diff --git a/tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.am b/tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.am new file mode 100644 index 00000000000..6869837a64a --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = pt +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.in b/tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.in new file mode 100644 index 00000000000..79b30fe93e0 --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/tdecachegrind/Makefile.in @@ -0,0 +1,635 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision: 483858 $ +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +subdir = docs/tdesdk/tdecachegrind +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.in +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ +#>- html-recursive info-recursive install-data-recursive \ +#>- install-dvi-recursive install-exec-recursive \ +#>- install-html-recursive install-info-recursive \ +#>- install-pdf-recursive install-ps-recursive install-recursive \ +#>- installcheck-recursive installdirs-recursive pdf-recursive \ +#>- ps-recursive uninstall-recursive +#>+ 7 +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive nmcheck-recursive bcheck-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +ARTSCCONFIG = @ARTSCCONFIG@ +AUTOCONF = @AUTOCONF@ +AUTODIRS = @AUTODIRS@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CONF_FILES = @CONF_FILES@ +CYGPATH_W = @CYGPATH_W@ +DCOPIDL = @DCOPIDL@ +DCOPIDL2CPP = @DCOPIDL2CPP@ +DCOPIDLNG = @DCOPIDLNG@ +DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@ +DEFS = @DEFS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +GMSGFMT = @GMSGFMT@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@ +KCONFIG_COMPILER = @KCONFIG_COMPILER@ +KDECONFIG = @KDECONFIG@ +KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@ +KDE_RPATH = @KDE_RPATH@ +KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MAKEKDEWIDGETS = @MAKEKDEWIDGETS@ +MCOPIDL = @MCOPIDL@ +MEINPROC = @MEINPROC@ +MKDIR_P = @MKDIR_P@ +MSGFMT = @MSGFMT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +TOPSUBDIRS = @TOPSUBDIRS@ +VERSION = @VERSION@ +XGETTEXT = @XGETTEXT@ +XMLLINT = @XMLLINT@ +X_RPATH = @X_RPATH@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +#>- bindir = @bindir@ +#>+ 2 +DEPDIR = .deps +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_appsdir = @kde_appsdir@ +kde_bindir = @kde_bindir@ +kde_confdir = @kde_confdir@ +kde_datadir = @kde_datadir@ +kde_htmldir = @kde_htmldir@ +kde_icondir = @kde_icondir@ +kde_kcfgdir = @kde_kcfgdir@ +kde_libs_htmldir = @kde_libs_htmldir@ +kde_libs_prefix = @kde_libs_prefix@ +kde_locale = @kde_locale@ +kde_mimedir = @kde_mimedir@ +kde_moduledir = @kde_moduledir@ +kde_servicesdir = @kde_servicesdir@ +kde_servicetypesdir = @kde_servicetypesdir@ +kde_sounddir = @kde_sounddir@ +kde_styledir = @kde_styledir@ +kde_templatesdir = @kde_templatesdir@ +kde_wallpaperdir = @kde_wallpaperdir@ +kde_widgetdir = @kde_widgetdir@ +tdeinitdir = @tdeinitdir@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +xdg_appsdir = @xdg_appsdir@ +xdg_directorydir = @xdg_directorydir@ +xdg_menudir = @xdg_menudir@ +KDE_LANG = pt +#>- SUBDIRS = $(AUTODIRS) +#>+ 1 +SUBDIRS =. +KDE_DOCS = AUTO +KDE_MANS = AUTO +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) +#>- @for dep in $?; do \ +#>- case '$(am__configure_deps)' in \ +#>- *$$dep*) \ +#>- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ +#>- && exit 0; \ +#>- exit 1;; \ +#>- esac; \ +#>- done; \ +#>- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile'; \ +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile +#>+ 12 + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdesdk/tdecachegrind/Makefile.in +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +#>- distdir: $(DISTFILES) +#>+ 1 +distdir: distdir-nls $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + distdir=`$(am__cd) $(distdir) && pwd`; \ + top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$top_distdir" \ + distdir="$$distdir/$$subdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +#>- uninstall: uninstall-recursive +#>+ 1 +uninstall: uninstall-docs uninstall-nls uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic mostlyclean-am +#>+ 1 +clean-am: clean-docs clean-bcheck clean-generic mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +info: info-recursive + +info-am: + +#>- install-data-am: +#>+ 1 +install-data-am: install-docs install-nls + +install-dvi: install-dvi-recursive + +install-exec-am: + +install-html: install-html-recursive + +install-info: install-info-recursive + +install-man: + +install-pdf: install-pdf-recursive + +install-ps: install-ps-recursive + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ + install-strip + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic ctags \ + ctags-recursive distclean distclean-generic distclean-tags \ + distdir dvi dvi-am html html-am info info-am install \ + install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ + tags-recursive uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=index.docbook index.cache.bz2 Makefile.in Makefile.am + +#>+ 24 +index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) index.docbook + @if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi + +docs-am: index.cache.bz2 + +install-docs: docs-am install-nls + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind + @if test -f index.cache.bz2; then \ + echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/; \ + $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/; \ + elif test -f $(srcdir)/index.cache.bz2; then \ + echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/; \ + $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/; \ + fi + -rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/common + $(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/common + +uninstall-docs: + -rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind + +clean-docs: + -rm -f index.cache.bz2 + + +#>+ 13 +install-nls: + $(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind + @for base in index.docbook ; do \ + echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/$$base ;\ + $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/$$base ;\ + done + +uninstall-nls: + for base in index.docbook ; do \ + rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/tdecachegrind/$$base ;\ + done + + +#>+ 5 +distdir-nls: + for file in index.docbook ; do \ + cp $(srcdir)/$$file $(distdir); \ + done + +#>+ 15 +force-reedit: + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/tdesdk/tdecachegrind/Makefile + cd $(top_srcdir) && perl ../scripts/admin/am_edit -p../scripts/admin docs/tdesdk/tdecachegrind/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 3 +final: + $(MAKE) all-am + +#>+ 3 +final-install: + $(MAKE) install-am + +#>+ 3 +no-final: + $(MAKE) all-am + +#>+ 3 +no-final-install: + $(MAKE) install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/tde-i18n-pt/docs/tdesdk/tdecachegrind/index.cache.bz2 b/tde-i18n-pt/docs/tdesdk/tdecachegrind/index.cache.bz2 new file mode 100644 index 00000000000..f1582b02160 Binary files /dev/null and b/tde-i18n-pt/docs/tdesdk/tdecachegrind/index.cache.bz2 differ diff --git a/tde-i18n-pt/docs/tdesdk/tdecachegrind/index.docbook b/tde-i18n-pt/docs/tdesdk/tdecachegrind/index.docbook new file mode 100644 index 00000000000..b999c1d4261 --- /dev/null +++ b/tde-i18n-pt/docs/tdesdk/tdecachegrind/index.docbook @@ -0,0 +1,1036 @@ + +KCachegrind'> + Cachegrind"> + Calltree"> + Callgrind"> + Valgrind"> + OProfile"> + + + + +]> + + + + + + +O Manual do &tdecachegrind; + + +Josef Weidendorfer
Josef.Weidendorfer@gmx.de
+
+
+ +JoséPires
jncp@netcabo.pt
Tradução
+ +
+ + +2002-2004 +Josef Weidendorfer + +&FDLNotice; + +2004-07-27 +0.4.6 + + +O &tdecachegrind; é uma ferramenta de visualização de dados de análise ('profiling') criado para o ambiente de trabalho do &kde;. + + + +KDE +tdesdk +Cachegrind +Callgrind +Valgrind +Análise + + +
+ + + +Introdução + +O &kappname; é um navegador para os dados produzidos pelas ferramentas de análise ('profiling'). Este capítulo explica para que é que serve a análise, como é que é feita e dá alguns exemplos das ferramentas de análise disponíveis. + + +Análise + +Quando você desenvolve um programa, normalmente uma das últimas tarefas envolve as optimizações de performance. Dado que não faz sentido optimizar funções que são raramente utilizadas, convém você saber em que parte do seu programa a maioria do tempo é dispendido. + +Para o código sequencial, a recolha de dados estatísticos das características de execução dos programas, como os valores dos tempos dispendidos nas funções e linhas de código é normalmente o suficiente. Isto é chamado normalmente de Análise ou 'Profiling'. O programa é executado sob o controlo de uma ferramenta de análise que fornece o resumo de uma execução no fim. Em contraste, para o código paralelo, os problemas de performance são normalmente causados quando um processador fica à espera dos dados do outro. Dado que este tempo de espera normalmente é atribuído de forma simples, aqui será melhor gerar traceamentos dos eventos com tempos marcados. O KCachegrind não consegue visualizar este tipo de dados. + +Depois de analisar os dados produzidos, deverá ser fácil ver os pontos fortes e os críticos em termos de performance do código: por exemplo, podem ser tiradas conclusões sobre a quantidade de chamadas e as regiões de código que poderão ser optimizadas. No fim, o sucesso da optimização deverá ser verificado com uma nova análise. + + + +Métodos de Análise + +Uma medida exacta do tempo que passou ou dos eventos que ocorrem durante a execução de uma determinada região de código (⪚ uma função) necessita da introdução de algum código de medida adicional, antes e depois da região indicada. Este código lê o tempo ou uma contagem de eventos global, calculando as diferenças. Assim, o código original terá de ser alterado antes da execução. Isto é chamado de instrumentação. Esta poderá ser criada pelo próprio programador, pelo compilador ou pelo sistema de execução. Dado que as regiões interessantes estão normalmente encadeadas, a sobrecarga da instrumentação influencia sempre a medida em si. Como tal, a instrumentação deverá ser feita de forma selectiva e os resultados terão de ser interpretados com cuidado. Obviamente, isto torna a análise de performance por medida exacta um processo bastante complexo. + +É possível uma medida exacta devido aos contadores por 'hardware' (que incluem os contadores que incrementam a cada impulso de relógio) que vêm nos processadores modernos, os quais são incrementados sempre que ocorre um evento. Dado que se pretende atribuir os eventos a regiões de código, sem os contadores, teria de se lidar com todos os eventos, incrementando um contador para a região de código em si. Fazer isso por 'software', obviamente, não é possível. Mas, assumindo que a distribuição de eventos pelo código-fonte é semelhante a procurar apenas por cada n-ésimo evento em vez de todos os eventos, foi criado um método de medida que é ajustado de acordo com a sobrecarga. É chamado de Amostragem. A Amostragem ao Longo do Tempo (TBS) usa um temporizador para ver regularmente o contador do programa para criar um histograma sobre o código do mesmo. A Amostragem Baseada em Eventos (EBS) tira partido dos contadores por 'hardware' dos processadores modernos e usa um modo em que é chamada uma rotina de tratamento de interrupções no caso de se atingir o valor mínimo de um contador, gerando um histograma, da distribuição do evento correspondente. Na rotina de tratamento, o contador do evento é sempre reinicializado para o 'n' do método de amostragem. A vantagem da amostragem é que o código não tem de ser alterado, mas é à mesma um compromisso: a hipótese anterior será mais correcta se o 'n' for baixo, mas quanto mais baixo for o 'n', maior será a sobrecarga da rotina de tratamento da interrupção. + +Outro método de medida é a simulação das coisas que ocorrem no sistema do computador enquanto executa um dado código, &ie; uma simulação orientada pela execução. Obviamente, a simulação deriva sempre de um modelo de 'hardware' mais ou menos preciso. Para os modelos muito detalhados que se aproximam da realidade, o tempo de simulação poderá alto, de forma inaceitável para ser posto em prática. A vantagem é que o código de simulação/medida arbitrariamente complexo poderá ser introduzido num dado código sem perturbar os resultados. Se fizer isto directamente antes da execução (chamado de instrumentação durante a execução), usando o binário original, é bastante confortável para o utilizador. O método torna-se inútil quando se simula apenas partes de uma máquina com um modelo simples. Para além disso, os resultados produzidos pelos modelos simples são normalmente muito mais fáceis de compreender: o problema frequente com o 'hardware' real é que os resultados incluem efeitos sobrepostos de diferentes partes do sistema. + + + +Ferramentas de Análise + +A ferramenta de análise mais conhecida é o gprof do GCC: Você precisa de compilar o seu programa com a opção ; se correr o programa, irá gerar um ficheiro gmon.out, o qual poderá ser transformado num formato legível com o gprof. A desvantagem é o passo de compilação necessário para um dado executável, o qual terá de ser compilado estaticamente. O método aqui usado é a instrumentação gerada pelo compilador, que consiste na medida dos arcos de chamadas entre funções, bem como contadores para as chamadas respectivas, em conjunto com o TBS, o qual lhe dá um histograma com a distribuição do tempo pelo código. Usando ambos os dados, é possível calcular de forma heurística o tempo inclusivo das funções, &ie; o tempo dispendido numa função, em conjunto com todas as funções chamadas a partir dela. + +Para uma medida exacta dos eventos que ocorrem, existem algumas bibliotecas com funções capazes de ler os contadores de performance do 'hardware'. As mais conhecidas são a actualização PerfCtr para o Linux, e as bibliotecas independentes da arquitectura PAPI e PCL. De qualquer forma, uma medida exacta necessita de instrumentação no código, como é dito acima. Qualquer uma delas usa as próprias bibliotecas ou usa os sistemas de instrumentação automáticos como o ADAPTOR (para a instrumentação do código em FORTRAN) ou o DynaProf (injecção de código com o DynInst). + +O &oprofile; é uma ferramenta de análise ao nível do sistema para Linux que usa a amostragem. + +Em vários aspectos, uma forma confortável de fazer uma Análise é com o Cachegrind ou o Callgrind, os quais são simuladores que usam a plataforma de instrumentação &valgrind; durante a execução. Dado que não existe necessidade de aceder aos contadores do 'hardware' (o que é normalmente difícil com as instalações de Linux de hoje em dia) e os binários a serem analisados podem ser deixados sem modificações, é uma boa forma alternativa para as outras ferramentas de análise. A desvantagem da lentidão da simulação poderá ser reduzida se fizer a simulação apenas nas partes interessantes do programa e, talvez, só apenas em algumas iterações de um ciclo. Sem a instrumentação de medida/simulação, a utilização do Valgrind só terá um atraso numa gama de 3-5. Para além disso, quando apenas o grafo de chamadas e as contagens de chamadas forem de interesse, o simulador da 'cache' poderá ser desligado. + +A simulação da 'cache' é o primeiro passo na aproximação dos tempos reais; como nos sistemas modernos, a execução é bastante sensível à exploração das 'caches' que são pequenos e rápidos tampões de dados que aceleram os acessos repetidos às mesmas células da memória principal. O &cachegrind; faz a simulação da 'cache', interceptando os acessos a memória. Os dados produzidos incluem o número de acessos à memória para dados e instruções, as falhas da 'cache' de 1º/2º nível e relaciona esses dados com as linhas de código e as funções do programa. Combinando estes valores e usando as latências de falhas típicas, é possível indicar uma estimativa do tempo dispendido. + +O Callgrind é uma extensão do &cachegrind; que constrói o grafo de chamadas de um programa na altura, &ie; como as funções se chamam umas às outras e quantos eventos acontecem enquanto uma função é executada. Para além disso, os dados da análise a serem recolhidos podem ser separados por tarefas ('threads') e por contextos de chamadas. Pode fornecer dados de análise ao nível da instrução para permitir a anotação do código descodificado. + + + +Visualização + +As ferramentas de análise produzem tipicamente uma grande quantidade de dados. A vontade de navegar facilmente para baixo e para cima no grafo de chamadas, em conjunto com uma alteração rápida do modo de ordenação das funções e a apresentação dos diferentes tipos de eventos, serve de motivo para criar uma aplicação gráfica que desempenhe esta tarefa. + +O &kappname; é uma visualização para os dados de análise que preenche estes requisitos. Apesar de ser programada em primeiro lugar a partir da navegação dos dados do &cachegrind; com a &calltree; em mente, existem conversores disponíveis para apresentar os dados de análise produzidos pelas outras ferramentas. No apêndice, é dada uma descrição do formato do ficheiro do Cachegrind/Callgrind. + +Para além de uma lista de funções ordenadas de acordo com as métricas de custo exclusivas ou inclusivas e, opcionalmente, agrupadas por ficheiros de código, bibliotecas partilhadas ou classes de C++, o &kappname; contém diversas vistas para uma dada função, nomeadamente +um grafo de chamadas que mostra uma secção do grafo de chamadas em torno da função seleccionada, + +uma árvore que permite visualizar a relação de chamadas encadeadas, em conjunto com as métricas de custo inclusivas para uma detecção visual rápida das funções problemáticas, + +janelas do código-fonte e de anotação do código convertido para Assembly, permitindo ver os detalhes do custo relacionados com as linhas de código e as instruções de baixo-nível. + + + + + + + + +Usar o &tdecachegrind; + + +Gerar Dados a Visualizar + +Primeiro, uma pessoa deseja gerar os dados de performance, medindo aspectos das características de execução de uma aplicação, usando uma ferramenta de análise. O &tdecachegrind; em si não inclui nenhuma ferramenta de análise, mas é bom a ser usado em conjunto com o &callgrind; e, usando um conversor, também poderá ser usado para visualizar os dados produzidos com o &oprofile;. Apesar de o âmbito deste manual não ser a documentação da análise com estas ferramentas, a secção seguinte fornece vários tutoriais introdutórios para o ajudar a começar. + + +&callgrind; + +O &callgrind; está disponível em http://tdecachegrind.sf.net. Convém referir que se chamava anteriormente &calltree;, mas esse nome era enganador. + +O uso mais comum é anteceder a linha de comandos para iniciar a sua aplicação com o callgrind, como por exemplo
callgrind programa argumentos
Quando o programa terminar, será gerado um ficheiro callgrind.out.pid e que poderá ser carregado no &tdecachegrind;.
+ +Uma utilização mais avançada será descarregar os dados de análise, sempre que uma dada função da sua aplicação é chamada. Por exemplo, com o konqueror, para ver os dados de análise de modo a gerar apenas uma página Web, você poderia optar por gerar os dados sempre que carregasse no item Ver/Recarregar. Isto corresponde a uma chamada ao KonqMainWindow::slotReload. Use o
callgrind --dump-before=KonqMainWindow::slotReload konqueror
Isto irá produzir vários ficheiros de dados de análise com um número sequencial no fim do nome do ficheiro. Um ficheiro sem esse número no fim (terminando apenas no PID do processo) será também produzido. Se carregar este ficheiro no &tdecachegrind;, todos os outros serão também carregados e poderão ser vistos na Introdução das Partes e na lista das Partes.
+ +
+ + +&oprofile; + +O &oprofile; está disponível em http://oprofile.sf.net. Siga as instruções de instalação na página Web. Mas, antes disso, verifique se a sua distribuição não o oferece já como um pacote (como a SuSE). + +A análise ao nível do sistema só é permitida para o utilizador 'root', dado que todas as acções do sistema poderão ser observadas. Como tal, terão de ser feitas as seguintes acções como 'root'. Primeiro, configure o processo de análise, usando a GUI oprof_start ou a ferramenta da linha de comandos or the command line tool opcontrol. A configuração normal seria o modo de temporização (TBS, ver a introdução). Para iniciar a medida, execute o opcontrol -s. Depois execute a aplicação em que está interessado e, a seguir, invoque um opcontrol -d. Isto irá apresentar os resultados das medidas nos ficheiros sob a pasta /var/lib/oprofile/samples/. Para ser capaz de visualizar os dados no &tdecachegrind;, execute numa pasta vazia:
opreport -gdf | op2callgrind
Isto irá produzir uma quantidade de ficheiros, um por cada programa que estava a correr no sistema. Cada um deles poderá ser corrido no &tdecachegrind; por si só.
+ +
+
+ + +Conceitos Básicos da Interface de Utilizador + +Ao iniciar o &tdecachegrind; com um ficheiro de dados de análise como argumento, ou depois de carregar um com a opção Ficheiro/Abrir, você irá ver uma barra lateral que contém a lista de funções à esquerda e a parte principal à direita, que consiste numa área com visualizações dos dados de uma função seleccionada. Esta área de visualização pode ser configurada de forma arbitrária para mostrar várias visualizações de uma vez. + +Da primeira vez, esta área ficará dividida numa parte inferior e noutra superior, cada uma com visualizações diferentes seleccionadas através de páginas. Para mover as áreas de visualização, use o menu de contexto das páginas e ajuste os separadores entre elas. Para mudar rapidamente de disposições de visualização, use a opção Ver/Disposições/Duplicar, altere a disposição e mude para a próxima com a opção Ver/Disposição/Próxima (ou com atalhos de teclado mais convenientes). + +Uma coisa importante para a visualização é o tipo de evento activo: para o &callgrind;, este é ⪚ os 'Cache Misses' (Falhas na Cache) ou o Cycle Estimation (Estimativa da 'Cache') para o &oprofile;, este é o "Temporizador" no caso mais simples. Você poderá alterar o tipo de evento com uma lista na barra de ferramentas ou na janela do Tipo de Evento. Uma primeira vista de olhos nas características de execução deverá ser apresentada quando você seleccionar a função main na lista da esquerda, e veja a visualização do grafo de chamadas. Aí, poderá ver as chamadas em curso no seu programa. Lembre-se que o grafo de chamadas só mostra as funções com uma grande quantidade de eventos. Se fizer duplo-click numa função do grafo, ela irá mudar para mostrar as funções chamadas pela seleccionada. + +Para explorar mais a interface, para além deste manual, dê uma vista de olhos na secção de documentação na página Web http://tdecachegrind.sf.net. Para além disso, cada elemento gráfico do &tdecachegrind; tem ajudas O Que é Isto?. + + +
+ + + +Conceitos Básicos + +Este capítulo explica alguns conceitos do &tdecachegrind; e introduz os termos usados na interface. + + +O Modelo dos Dados de Análise + + +Entidades de Custo + +Os valores de custos dos tipos de eventos (como as Falhas de L2) são atribuídos às entidades de custo, as quais são itens relacionados com o código-fonte ou com as estruturas de dados de um dado programa. As entidades de custo podem ser não só posições no código ou nos dados, mas também tuplos de posição. Por exemplo, uma chamada tem uma origem e um destino, ou um endereço de dados poderá ter um tipo de dados e uma posição no código em que a sua alocação ocorreu. + +As entidades de custo conhecidas pelo KCachegrind estão indicadas a seguir. Posições Simples: Instrução. Uma instrução de Assembly num endereço indicado. Linha de Código de uma Função. Todas as instruções que o compilador (através da informação de depuração) mapeia numa dada linha de código, identificada pelo nome do ficheiro de código e pelo número de linha, e que são executadas sob o contexto de uma dada função. A última é necessária, porque uma linha de código de uma função incorporada ('inline') poderá aparecer no contexto de várias funções. As instruções sem qualquer mapeamento numa linha de código são representadas pela linha 0 do ficheiro "???". Função. Todas as linhas de código de uma dada função compõem a função em si. Uma função é identificada pelo seu nome e pela sua localização no ficheiro-objecto binário, se estiver disponível. A última é necessária porque os objectos binários de um único programa poderão conter funções com o mesmo nome (estas poderão ser acedidas, ⪚, com o 'dlopen'/'dlsym'; o editor de ligações durante a execução resolve as funções numa dada ordem de objectos binários). Se uma ferramenta de análise não conseguir detectar o nome do símbolo de uma função, ⪚ porque a informação de depuração não está disponível, tanto é usado o endereço da primeira instrução executada, ou então o "???". Objecto Binário. Todas as funções cujo código esteja dentro do intervalo de um dado objecto binário, seja ele o executável principal ou uma biblioteca dinâmica. Ficheiro de Código. Todas as funções cuja primeira instrução esteja mapeada numa linha do ficheiro de código indicado. Classe. Os nomes dos símbolos das funções estão tipicamente ordenados de forma hierárquica em espaços de nomes, ⪚ os 'namespaces' de C++, ou as classes das linguagens orientadas por objectos. Como tal, uma classe poderá conter funções da classe ou outras classes embebidas nela. Parte de Análise. Alguma secção no tempo de uma execução da análise, com um dado ID de tarefa, ID de processo e uma linha de comandos executada. Tal como é visto na lista, um conjunto de entidades de custo define normalmente outra entidade de custo. Como tal, existe uma hierarquia de inclusão das entidade de custo que deverá ser óbvia a partir da descrição acima. + +Tuplos de posições: Uma chamada de uma instrução para uma função-alvo. Uma chamada de uma linha de código para uma função-alvo. Uma chamada de uma função de origem para uma função de destino. Um salto (in)condicional de uma instrução de origem para uma de destino. Um salto (in)condicional de uma linha de origem para uma de destino. Os saltos entre funções não são permitidos, dado que isto não faz sentido num grafo de chamadas. Como tal, as sequências como o tratamento de excepções e os 'long jumps' do C terão de ser traduzidos em saltos na pilha de chamadas, de acordo com as necessidades. + + + + + + +Tipos de Evento + +Podem ser indicados vários tipos de eventos arbitrários nos dados de análise, atribuindo-lhes um nome. O seu custo, relacionado com uma entidade de custo, é um inteiro de 64 bits. +Os tipos de eventos cujos tipos são indicados num ficheiro de dados de análise são chamados de eventos reais. Para além disso, uma pessoa poderá indicar fórmulas para os tipos de eventos, calculadas a partir dos eventos reais, chamadas de eventos inerentes. + + + + + +Estado da Visualização + +O estado da visualização de uma janela do KCachegrind inclui: o tipo primário e secundário dos eventos seleccionados para mostrar, o agrupamento de funções (usado na lista da Análise da Função e no colorir da entidade), as partes da análise cujos custos serão incluídos na visualização, uma entidade de custo activa (⪚ uma função seleccionada a partir da barra de análise da função), uma entidade de custo seleccionada. Este estado influencia as visualizações. +As visualizações são sempre apresentadas apenas para a entidade de custo activa de momento. Quando uma dada visualização não é apropriada para uma entidade de custo, fica desactivada (p.ex., ao seleccionar um objecto ELF na lista de grupos através de um duplo-click, a anotação de código para um objecto ELF não faz sentido). +Por exemplo, para uma função activa, a lista de chamados mostra todas as funções chamadas a partir da função activa. Um utilizador poderá seleccionar uma dessas funções sem a tornar activa. Se o grafo de chamadas é mostrado ao lado, irá seleccionar automaticamente a mesma função. + + + + +Partes da Interface + + +Barras Laterais +As barras laterais são janelas laterais que poderão ser colocadas em qualquer extremo de uma janela do KCachegrind. Elas contêm sempre uma lista das entidades de custo, ordenadas de uma determinada forma. +Análise da Função. A Análise da Função é uma lista de funções que mostram o custo inclusivo e o exclusivo, o número de chamadas, o nome e a posição das funções. +Introdução às Partes +Pilha de Chamadas + + + + + +Área de Visualização +A área de visualização, tipicamente do lado direito da janela principal do KCachegrind, é composta por uma (a predefinida) ou mais páginas, quer alinhadas na horizontal quer na vertical. Cada página contém diferentes áreas de visualização com apenas uma entidade de custo de cada vez. O nome desta entidade é indicado no cimo da página. Se existirem várias páginas, só uma é que estará activa. O nome da entidade da página activa é mostrado a negrito e determina a entidade de custo activa da janela do KCachegrind. + + + +Áreas de uma Página +Cada página poderá conter até quatro áreas de visualização, nomeadamente a de Topo, Direita, Esquerda e Fundo. Cada área poderá conter várias vistas empilhadas. A área visível é seleccionada por uma barra de páginas. As barras de páginas na área da direita e de topo estão em cima, enquanto que as barras de páginas da esquerda e de baixo estão no fundo. Você poderá indicar que tipo de visualização deverá ir para determinada área com o menu de contexto das páginas. + + + +Visualização Sincronizada da Entidade Seleccionada numa Página +Para além de uma entidade activa, cada página tem uma entidade seleccionada. Como a maioria dos tipos de visualização mostram várias entidades com a activa centrada, você muda o item seleccionado se navegar dentro de uma visualização (carregando com o rato ou usando o teclado). Tipicamente, os itens seleccionados são mostrados de forma realçada. Se alterar a entidade seleccionada numa das visualizações de uma página, todas as outras visualizações da página irão ficar realçadas de igual forma na nova entidade seleccionada. + + + +Sincronização entre Páginas +Se existirem várias páginas, uma mudança de selecção numa das páginas leva a uma mudança da activação na próxima página (à direita/em baixo). Este tipo de associação ⪚ deverá permitir uma navegação rápida nos grafos de chamadas. + + + +Disposições +A disposição de todas as páginas de uma janela poderá ser gravada (veja o item do menu Ver/Disposição). Depois de duplicar a disposição actual (Ctrl+Mais ou o menu) e alterar alguns tamanhos ou mudar uma área de visualização de posição para outra área de uma página, você poderá mudar rapidamente entre a disposição antiga e a nova com as combinações Ctrl+Esquerda/Direita. O conjunto de disposições será guardado entre sessões do KCachegrind do mesmo comando analisado. Você poderá tornar o conjunto de disposições o predefinido para as novas sessões do KCachegrind ou reponha o conjunto de disposições por omissão. + + + + +Barras Laterais + + +Análise Simples +A análise simples contém uma lista de grupos e outra lista de funções. A lista de grupos contém todos os grupos em que o custo é dispendido, dependendo do tipo de grupo escolhido. A lista de grupos fica escondida quando o agrupamento está desligado. +A lista de funções contém as funções do grupo seleccionado (ou todas as funções se o agrupamento estiver desligado), ordenadas por uma dada coluna, ⪚ os custos da própria ou os custos inclusos dispendidos até então. Existe um número máximo de funções apresentado na lista que é configurável na opção Configuração/Configurar o KCachegrind. + + + +Introdução às Partes +Na execução de uma análise, poderão ser produzidos vários ficheiros de dados de análise que poderão ser carregados em conjunto no KCachegrind. A barra de Introdução das Partes mostra estes ficheiros, ordenados na horizontal de acordo com a hora de criação; os tamanhos dos rectângulo são proporcionais ao custo dispendido nas partes. Você poderá seleccionar uma ou várias partes para restringir os custos apresentados nas outras zonas do KCachegrind apenas para estas partes. +As partes são, por sua vez, sub-divididas: existem um modo de partição e um modo repartido por custo inclusivo: +Partição: O utilizador vê a repartição em grupos para uma parte de dados de análise, de acordo com o tipo de grupo seleccionado. Por exemplos, se forem seleccionados os grupos de objectos ELF, você irá ver rectângulos coloridos para cada objecto ELF usado (biblioteca dinâmica ou executável), dimensionado de acordo com o custo nele dispendido. +Repartição do Custo Inclusivo: É mostrado um rectângulo com o custo inclusivo da função activa de momento na parte. Este, por sua vez, vai sendo repartido para mostrar os custos inclusos das funções chamadas por ela. + + + + + +Pilha de Chamadas +Esta é uma pilha de chamadas 'mais prováveis' puramente fictícia. É criada a partir da função activa de momento e adiciona as funções chamadoras/chamadas com o maior custo no seu topo e no seu fundo. +As colunas 'Custo' e 'Chamadas' mostram o custo usado para todas as chamadas da função na linha acima. + + + + +Visualizações + + +Tipos de Evento +Esta lista mostra os tipos de custos disponíveis e o custo correspondente à própria e o inclusivo para a função activa de momento, para esse tipo de evento. +Se escolher um tipo de evento na lista, você poderá alterar o tipo de custos apresentados em todo o KCachegrind, de modo a ser o tipo seleccionado. + + + +Listas de Chamadas +Estas listas mostram as chamadas de/para a função activa de momento. Entende-se por 'todas' as funções chamadoras/chamadas as que poderão ser acedidas no sentido da chamadora/chamada, mesmo que existam outras funções pelo meio. +A lista de chamadas inclui: +Chamadores Directos +Chamados Directos +Todos os Chamadores +Todos os Chamados + + + + + +Mapas +Uma visualização em árvore do tipo de evento primário, para cima ou para baixo, na hierarquia de chamadas. Cada rectângulo colorido representa uma função; o seu tamanho tenta ser proporcional ao custo dispendido na função activa enquanto está a correr (contudo, existem restrições de desenho). +Para o Mapa dos Chamadores, o gráfico mostra a hierarquia encadeada de todas as funções que chamam a função activa de momento; no caso do Mapa dos Chamados, mostra a hierarquia respectiva, mas para as funções chamadas pela função activa. +As opções de aparência poderão ser acedidas no menu de contexto. Para obter proporções de tamanho exactas, escolha a opção 'Esconder os contornos incorrectos'. Dado que este modo poderá ocupar bastante tempo, o utilizador poderá desejar limitar o nível máximo de encadeamento do desenho antes. O 'Melhor' determina a direcção da repartição dos filhos, a partir das proporções do pai. O 'Sempre o Melhor' decide sobre o espaço restante de cada elemento do mesmo nível. O 'Ignorar as Proporções' ocupa o espaço para o nome da função, antes de desenhar os filhos. Lembre-se que as proporções podem ficar totalmente erradas. +A navegação com o teclado está disponível com as teclas de cursores esquerda/direita para navegar nos elementos do mesmo nível, enquanto que os cursores cima/baixo sobem/descem um nível de encadeamento. O 'Return' activa o item actual. + + + +Grafo de Chamadas +Esta janela mostra o grafo de chamadas em torno da função activa. O custo apresentado é apenas o custo dispendido enquanto a função estava de facto a correr; &ie;, o custo mostrado para o main() - se for visível - deverá ser o mesmo que o custo da função activa, dado que faz parte do custo inclusivo do main() dispendido enquanto a função activa estava em execução. +Para os ciclos, as setas de chamadas a azul indicam que esta é uma chamada artificial adicionada para desenhar correctamente o que, de facto, nunca ocorreu. +Se o grafo for maior que a área de desenho, é mostrada uma vista geral num dos lados. Existem opções de visualização semelhantes às da Árvore de Chamadas; a função seleccionada está realçada. + + + +Anotações +As listas anotadas de código/Assembly mostram as instruções de código (ou descodificadas para Assembly) da função activa de momento, em conjunto com o custo (da própria) dispendido ao executar o código de uma linha de código ou instrução. Se ocorreu uma chamada, as linhas com os detalhes da chamada são introduzidas no código: o custo (inclusivo) dispendido dentro da chamada, o número de chamadas que ocorreu e o destino da chamada. +Seleccione uma linha de informação da chamada para activar o destino da chamada. + + + + + + + +Referência de Comandos + + +A janela principal do &tdecachegrind; + + + +O Menu <guimenu +>Ficheiro</guimenu +> + + + + + &Ctrl;N Ficheiro Novo + Abre uma janela de topo em branco para onde poderá carregar os dados de análise. Esta acção não é realmente necessária, dado que o Ficheiro/Abrir dar-lhe-á uma nova janela de topo, quando a actual já estiver a mostrar alguns dados. + + + + &Ctrl;O Ficheiro Abrir + Abre a Janela de Abertura de Ficheiros para escolher o ficheiro de dados de análise a ser carregado. Se existirem já alguns dados visíveis na janela de topo actual, esta opção irá abrir uma nova janela. Se quiser abrir dados adicionais de análise na janela actual, use o Ficheiro/Adicionar. +O nome dos ficheiros de dados de análise normalmente termina em ..-, onde o .. e o .. são opcionais e usados para vários ficheiros de dados de análise que pertençam uma execução de uma aplicação. Se ler um ficheiro que termine apenas em ., os ficheiros de dados eventualmente existentes para esta execução, mas sem terminações adicionais, são também carregados. +Exemplo: Se existirem os ficheiros de dados de análise 'cachegrind.out.123' e 'cachegrind.out.123.1', ao carregar o primeiro, o segundo será também carregado automaticamente. + + + +Ficheiro Adicionar + Adiciona um ficheiro de dados de análise à janela actual. Com isto, você poderá obrigar vários ficheiros de dados a serem carregados para a mesma janela de topo, mesmo que não sejam da mesma execução, tal como está definido através da convenção de nomes dos ficheiros de dados de análise. Por exemplo, poderá ser usado para uma comparação 'lado-a-lado'. + + + +Ficheiro Recarregar + Volta a carregar os dados de análise. Isto é mais interessante, depois de outro ficheiro de dados de análise ter sido gerado para uma execução de uma aplicação já carregada. + + + + &Ctrl;Q Ficheiro Sair +Sai do &kappname; + + + + + + + +O Menu <guimenu +>Ver</guimenu +> + + + + +Ver Tipo Primário de Evento +(Por fazer) + + + +Ver Tipo Secundário de Evento +(Por fazer) + + + +Ver Grupos +(Por fazer) + + + +Ver Disposição +(Por fazer) + + + +Ver Separar +(Por fazer) + + + + + + + + + + + + +Perguntas e Respostas +&reporting.bugs; &updating.documentation; + + + + +Para que é que serve o &tdecachegrind;? Não faço a mínima ideia. + + +O &tdecachegrind; é útil numa fase posterior do desenvolvimento do 'software' que é a análise ('profiling'). Se você não programar aplicações, não precisa do &tdecachegrind;. + + + + + +Qual é a diferença entre o 'Incl.' e o 'Próprio' ? + + +Estes são atributos de custos para as funções, no que respeita a um dado tipo de evento. Dado que as funções se podem chamar umas às outras, faz sentido distinguir o custo da função em si ('Custo da Própria') e o custo que inclui todas as funções chamadas ('Custo Inclusivo'). O 'Próprio' é referido também como custo 'Exclusivo'. +Por isso, ⪚ para o main(), você irá ter sempre um custo inclusivo de quase 100%, enquanto que o custo da própria função é infinitesimal face ao real trabalho desempenhado nas outras funções. + + + + + +A barra de ferramentas/menu do meu KCachegrind está tão estranha. Isto é normal? + + +Obviamente, o KCachegrind está mal instalado no seu sistema. Recomenda-se que o compile com o prefixo de instalação igual à sua directoria de base do sistema KDE, como por exemplo o comando configure --prefix=/opt/kde3; make install. Se escolher outra directoria, como a $HOME/kde, você deverá apontar a variável de ambiente TDEDIR para esta directoria antes de executar o KCachegrind. + + + + + +Se fizer duplo-click numa função qualquer do Grafo de Chamadas, ela mostra para a função 'main' o mesmo custo que para a função seleccionada. Não é suposto ser constante e igual a 100% ? + + +Você activou uma função sob a main() com um custo menor que o da main(). Para qualquer função, só é apresentada essa parte do custo completo da função, sendo ela dispendida enquanto a função activa está em execução, &ie; o custo mostrado para qualquer função nunca pode ser maior que o custo da função activada. + + + + + + + + +Glossário + +Segue-se uma lista misturada de termos. +Análise ('Profiling'): O processo de reunião de informação estatística sobre as características das execuções dos programas. +Rastreabilidade: O processo de supervisionar a execução de um programa e registar os eventos que ocorrem, ordenados por data e hora, num ficheiro de resultado, o ficheiro de Traceamento. +Traceamento: Uma sequência de eventos ao longo do tempo que ocorreu durante a supervisão da execução de um programa. O seu tamanho é tipicamente linear com o tempo de execução do programa. +Ficheiro de Dados de Análise: Um ficheiro que contém os dados medidos numa experiência de análise (ou parte dela) ou produzidos depois da análise de um traceamento. O seu tamanho é tipicamente linear com o tamanho do código do programa. +Parte de Dados de Análise (referido incorrectamente também como: Parte de Traceamento): A informação propriamente dita de um ficheiro de dados de análise. +Experiência de Análise: Uma execução de um programa supervisionada por uma ferramenta de análise, gerando possivelmente vários ficheiros de dados das partes e/ou tarefas dessa execução. +Projecto de Análise: Uma configuração para as experiências de análise usada para um programa que tenha de ser analisado, talvez para várias versões. As comparações dos dados de análise só fará tipicamente sentido entre dados de análise produzidos num único projecto de análise. +Entidade de Custo: Um item abstracto relacionado com o código-fonte, para o qual poderão ser atribuídas as contagens de eventos. As dimensões das entidades de custo são a localização no código (⪚, linha de código, função), a localização dos dados (⪚ tipo dos dados acedidos, o objecto de dados), a localização da execução (⪚, a tarefa ou processo) e os tuplos das posições acima indicadas (⪚, as chamadas, o acesso aos objectos pela instrução, os dados obtidos a partir da 'cache'). +Tipo de Evento: O tipo de evento do qual os custos poderão ser atribuídos a uma entidade de custo. Existem os tipos de eventos reais e os inerentes. +Tipo de Evento Real: Um tipo de evento que poderá ser medido por uma ferramenta. Necessita da existência de um sensor para o tipo de evento indicado. +Tipo de Evento Inerente: Um tipo de evento virtual que só aparece na visualização e que é definido por uma fórmula calculada a partir dos tipos de eventos reais. +Custos dos Eventos: A soma dos eventos de um determinado tipo que ocorrem enquanto a execução está relacionada com uma dada entidade de custo. O custo em si é atribuído à entidade. + + + + + + + +Créditos e Licença + +&kappname; +Obrigado ao Julian Seward pelo seu excelente &valgrind;, e ao Nicholas Nethercote pela adição do &cachegrind;. Sem estes programas, nem a actualização da árvore de chamadas, nem o &valgrind;, nem mesmo o KCachegrind existiriam. Algumas das ideias para esta interface foram dadas por eles, também. +E muito obrigado a todos os relatórios de erros e sugestões dos vários utilizadores. +&underFDL; + + +Instalação + + +Como obter o &tdecachegrind; + +O &tdecachegrind; faz parte do pacote &package; do &kde;. Para as versões intermédias menos suportadas, o &callgrind; e a documentação futura, veja na página pessoal http://tdecachegrind.sf.net para obter mais instruções de instalação e compilação. + + + +Requisitos + +Para poder usar com sucesso o &tdecachegrind;, você precisa do &kde; 3.x. Para gerar os registos das análises, o &cachegrind; ou o &calltree;/&callgrind; é recomendado. + + + +Compilação e Instalação +&install.compile.documentation; + + +Configuração + +Todas as opções de configuração se encontram na janela de configuração ou nos menu de contexto dos gráficos. + + + + + +&documentation.index; +
+ + + + + + + + + + + + + + diff --git a/tde-i18n-pt/messages/tdesdk/kcachegrind.po b/tde-i18n-pt/messages/tdesdk/kcachegrind.po deleted file mode 100644 index ac1c8d1a487..00000000000 --- a/tde-i18n-pt/messages/tdesdk/kcachegrind.po +++ /dev/null @@ -1,2963 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tdecachegrind\n" -"POT-Creation-Date: 2008-07-08 01:21+0200\n" -"PO-Revision-Date: 2006-07-25 18:14+0100\n" -"Last-Translator: Pedro Morais \n" -"Language-Team: pt \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-POFile-IgnoreConsistency: Short\n" -"X-POFile-IgnoreConsistency: Update\n" -"X-POFile-IgnoreConsistency: Threads\n" -"X-POFile-SpellExtra: dump instr GraphViz yes Incl KCachegrind Assembly\n" -"X-POFile-SpellExtra: Cachegrind Callgrind cachedumps main xxxx cachegrind\n" -"X-POFile-SpellExtra: xxx ELF dot RETURN Thread CTRL SHIFT Return máx\n" -"X-POFile-IgnoreConsistency: Source File\n" -"X-POFile-IgnoreConsistency: Comment\n" -"X-POFile-SpellExtra: assembler infinitum ad objdump cmd Hex Recorrências\n" -"X-POFile-SpellExtra: Update jump callgrind Threads PLT Group BBs Sinc\n" -"X-POFile-SpellExtra: binutils out\n" - -#: instritem.cpp:106 sourceitem.cpp:86 -msgid "Active call to '%1'" -msgstr "Chamada activa a '%1'" - -#: instritem.cpp:108 sourceitem.cpp:88 -msgid "" -"_n: %n call to '%1'\n" -"%n calls to '%1'" -msgstr "" -"%n chamada a '%1'\n" -"%n chamadas a '%1'" - -#: instritem.cpp:137 -msgid "Jump %1 of %2 times to 0x%3" -msgstr "Salta %1 de %2 vezes para 0x%3" - -#: instritem.cpp:142 -msgid "Jump %1 times to 0x%2" -msgstr "Salta %1 vezes para 0x%2" - -#: instritem.cpp:185 sourceitem.cpp:169 -msgid "(cycle)" -msgstr "(ciclo)" - -#: tracedata.cpp:157 -msgid "Abstract Item" -msgstr "Item Abstracto" - -#: tracedata.cpp:158 -msgid "Cost Item" -msgstr "Item de Custo" - -#: tracedata.cpp:159 -msgid "Part Source Line" -msgstr "Linha de Código da Parte" - -#: tracedata.cpp:160 -msgid "Source Line" -msgstr "Linha de Código" - -#: tracedata.cpp:161 -msgid "Part Line Call" -msgstr "Linha da Chamada da Parte" - -#: tracedata.cpp:162 -msgid "Line Call" -msgstr "Linha da Chamada" - -#: tracedata.cpp:163 -msgid "Part Jump" -msgstr "Salto para a Parte" - -#: tracedata.cpp:164 -msgid "Jump" -msgstr "Salto" - -#: tracedata.cpp:165 -msgid "Part Instruction" -msgstr "Instrução da Parte" - -#: tracedata.cpp:166 -msgid "Instruction" -msgstr "Instrução" - -#: tracedata.cpp:167 -msgid "Part Instruction Jump" -msgstr "Salto da Instrução da Parte" - -#: tracedata.cpp:168 -msgid "Instruction Jump" -msgstr "Salto da Instrução" - -#: tracedata.cpp:169 -msgid "Part Instruction Call" -msgstr "Chamada da Instrução da Parte" - -#: tracedata.cpp:170 -msgid "Instruction Call" -msgstr "Chamada de Instrução" - -#: tracedata.cpp:171 -msgid "Part Call" -msgstr "Chamada da Parte" - -#: tracedata.cpp:172 -msgid "Call" -msgstr "Chamada" - -#: tracedata.cpp:173 -msgid "Part Function" -msgstr "Função da Parte" - -#: tracedata.cpp:174 -msgid "Function Source File" -msgstr "Ficheiro de Código da Função" - -#. i18n: file dumpselectionbase.ui line 300 -#: rc.cpp:144 rc.cpp:273 rc.cpp:318 rc.cpp:342 tracedata.cpp:175 -#, no-c-format -msgid "Function" -msgstr "Função" - -#: tracedata.cpp:176 -msgid "Function Cycle" -msgstr "Ciclo de Função" - -#: tracedata.cpp:177 -msgid "Part Class" -msgstr "Classe da Parte" - -#: tracedata.cpp:178 -msgid "Class" -msgstr "Classe" - -#: tracedata.cpp:179 -msgid "Part Source File" -msgstr "Ficheiro de Código da Parte" - -#: tracedata.cpp:180 -msgid "Source File" -msgstr "Ficheiro de Código" - -#: tracedata.cpp:181 -msgid "Part ELF Object" -msgstr "Objecto ELF da Parte" - -#: tracedata.cpp:182 -msgid "ELF Object" -msgstr "Objecto ELF" - -#: partview.cpp:46 tracedata.cpp:183 -msgid "Profile Part" -msgstr "Parte de Análise" - -#: tracedata.cpp:184 -msgid "Program Trace" -msgstr "Traceamento do Programa" - -#: tracedata.cpp:245 -msgid "%1 from %2" -msgstr "%1 de %2" - -#: partgraph.cpp:423 tracedata.cpp:253 tracedata.cpp:258 tracedata.cpp:2828 -#: tracedata.cpp:3245 tracedata.cpp:3331 tracedata.cpp:4169 tracedata.cpp:4177 -#: tracedata.cpp:4242 -msgid "(unknown)" -msgstr "(desconhecido)" - -#: tracedata.cpp:2587 -msgid "(no caller)" -msgstr "(sem chamador)" - -#: tracedata.cpp:2594 tracedata.cpp:2613 -msgid "%1 via %2" -msgstr "%1 através de %2" - -#: tracedata.cpp:2603 -msgid "(no callee)" -msgstr "(sem chamado)" - -#: tracedata.cpp:4471 -msgid "(not found)" -msgstr "(não encontrado)" - -#: tracedata.cpp:5021 -msgid "Recalculating Function Cycles..." -msgstr "A Recalcular os Ciclos de Funções..." - -#. i18n: file dumpselectionbase.ui line 550 -#: callmapview.cpp:59 partselection.cpp:58 rc.cpp:192 -#, no-c-format -msgid "Name" -msgstr "Nome" - -#. i18n: file stackselectionbase.ui line 31 -#: callmapview.cpp:60 callview.cpp:44 instrview.cpp:126 partselection.cpp:59 -#: rc.cpp:333 sourceview.cpp:51 -#, no-c-format -msgid "Cost" -msgstr "Custo" - -#: partselection.cpp:151 -msgid "Profile Part Overview: Current is '%1'" -msgstr "Vista Geral da Parte da Análise: A actual é a '%1'" - -#: partselection.cpp:287 -msgid "Deselect" -msgstr "Deseleccionar" - -#: partselection.cpp:287 partselection.cpp:311 -msgid "Select" -msgstr "Seleccionar" - -#: partselection.cpp:292 -msgid "Select All Parts" -msgstr "Seleccionar Todas as Partes" - -#: partselection.cpp:294 -msgid "Visible Parts" -msgstr "Partes Visíveis" - -#: partselection.cpp:296 -msgid "Hide Selected Parts" -msgstr "Esconder a Parte Seleccionada" - -#: partselection.cpp:297 -msgid "Unhide Hidden Parts" -msgstr "Mostrar as Partes Escondidas" - -#: partselection.cpp:302 toplevel.cpp:1692 -msgid "Go Back" -msgstr "Recuar" - -#: callgraphview.cpp:2571 partselection.cpp:320 -msgid "Visualization" -msgstr "Visualização" - -#: partselection.cpp:322 -msgid "Partitioning Mode" -msgstr "Modo de Partição" - -#: partselection.cpp:323 -msgid "Diagram Mode" -msgstr "Modo de Diagrama" - -#: partselection.cpp:324 -msgid "Zoom Function" -msgstr "Ampliar para a Função" - -#: partselection.cpp:325 -msgid "Show Direct Calls" -msgstr "Mostrar as Chamadas Directas" - -#: partselection.cpp:326 -msgid "Increment Shown Call Levels" -msgstr "Incrementar os Níveis de Chamada Mostrados" - -#: partselection.cpp:340 -msgid "Draw Names" -msgstr "Desenhar Nomes" - -#: partselection.cpp:341 -msgid "Draw Costs" -msgstr "Desenhar Custos" - -#: callmapview.cpp:303 partselection.cpp:342 -msgid "Ignore Proportions" -msgstr "Ignorar as Proporções" - -#: partselection.cpp:343 -msgid "Draw Frames" -msgstr "Desenhar Molduras" - -#: callmapview.cpp:304 partselection.cpp:344 treemap.cpp:2887 -msgid "Allow Rotation" -msgstr "Permitir a Rotação" - -#: partselection.cpp:359 -msgid "Hide Info" -msgstr "Esconder Informações" - -#: partselection.cpp:361 -msgid "Show Info" -msgstr "Mostrar as Informações" - -#: partselection.cpp:541 -msgid "(no trace loaded)" -msgstr "(nenhum traceamento carregado)" - -#: costtypeview.cpp:42 -msgid "Event Type" -msgstr "Tipo de Evento" - -#. i18n: file dumpselectionbase.ui line 917 -#: costtypeview.cpp:43 coverageview.cpp:46 partview.cpp:47 rc.cpp:267 -#: rc.cpp:309 -#, no-c-format -msgid "Incl." -msgstr "Incl." - -#. i18n: file functionselectionbase.ui line 62 -#: costtypeview.cpp:44 coverageview.cpp:53 partview.cpp:48 rc.cpp:303 -#: rc.cpp:312 -#, no-c-format -msgid "Self" -msgstr "Próprio" - -#: costtypeview.cpp:45 -msgid "Short" -msgstr "Abreviado" - -#: costtypeview.cpp:47 -msgid "Formula" -msgstr "Fórmula" - -#: costtypeview.cpp:81 -msgid "" -"Cost Types List" -"

This list shows all cost types available and what the self/inclusive cost of " -"the current selected function is for that cost type.

" -"

By choosing a cost type from the list, you change the cost type of costs " -"shown all over KCachegrind to be the selected one.

" -msgstr "" -"Lista dos Tipos de Custo" -"

Esta lista mostra todos os tipos de custo disponíveis e qual é o custo " -"próprio/acumulado da função seleccionada no momento para esse tipo de custo.

" -"

Se seleccionar um tipo de custo na lista, você pode mudar o tipo dos custos " -"mostrados em todo o KCachegrind como sendo o seleccionado.

" - -#: costtypeview.cpp:98 -msgid "Set Secondary Event Type" -msgstr "Escolher o Tipo Secundário de Eventos" - -#: costtypeview.cpp:100 -msgid "Remove Secondary Event Type" -msgstr "Remover o Tipo Secundário de Eventos" - -#: costtypeview.cpp:105 -msgid "Edit Long Name" -msgstr "Editar o Nome Longo" - -#: costtypeview.cpp:106 -msgid "Edit Short Name" -msgstr "Editar o Nome Curto" - -#: costtypeview.cpp:107 -msgid "Edit Formula" -msgstr "Editar a Formula" - -#: costtypeview.cpp:115 -msgid "New Cost Type ..." -msgstr "Novo Tipo de Custo..." - -#: costtypeview.cpp:149 costtypeview.cpp:154 -#, c-format -msgid "New%1" -msgstr "Novo%1" - -#: costtypeview.cpp:155 -#, c-format -msgid "New Cost Type %1" -msgstr "Novo Tipo de Custo %1" - -#: sourceitem.cpp:125 -msgid "Jump %1 of %2 times to %3" -msgstr "Salta %1 de %2 vezes para %3" - -#: sourceitem.cpp:130 -msgid "Jump %1 times to %2" -msgstr "Salta %1 vezes para %2" - -#: costlistitem.cpp:60 -#, c-format -msgid "" -"_n: (%n item skipped)\n" -"(%n items skipped)" -msgstr "" -"(%n item ignorado)\n" -"(%n itens ignorados)" - -#: traceitemview.cpp:53 -msgid "No description available" -msgstr "A descrição não está disponível" - -#. i18n: file partselectionbase.ui line 16 -#: rc.cpp:324 toplevel.cpp:281 toplevel.cpp:581 -#, no-c-format -msgid "Parts Overview" -msgstr "Vista Geral das Partes" - -#: toplevel.cpp:288 -msgid "" -"The Parts Overview" -"

A trace consists of multiple trace parts when there are several profile data " -"files from one profile run. The Trace Part Overview dockable shows these, " -"horizontally ordered in execution time; the rectangle sizes are proportional to " -"the total cost spent in the parts. You can select one or several parts to " -"constrain all costs shown to these parts only.

" -"

The parts are further subdivided: there is a partitioning and an callee " -"split mode: " -"

    " -"
  • Partitioning: You see the partitioning into groups for a trace part, " -"according to the group type selected. E.g. if ELF object groups are selected, " -"you see colored rectangles for each used ELF object (shared library or " -"executable), sized according to the cost spent therein.
  • " -"
  • Callee: A rectangle showing the inclusive cost of the current selected " -"function in the trace part is shown. This is split up into smaller rectangles " -"to show the costs of its callees.

" -msgstr "" -"Vista Geral da Parte do Análise" -"

Uma análise consiste em várias partes ou componentes, quando existem vários " -"ficheiros de análise resultantes da execução de uma análise. A área de Vista " -"Geral da Parte da Análise mostra-as, ordenadas na horizontal pelo tempo de " -"execução; os tamanhos dos rectângulo são proporcionais ao custo total gasto nas " -"partes. Você poderá seleccionar uma ou várias partes para restringir todos os " -"custos mostrados apenas a essas parte.

" -"

As partes são, por sua vez, sub-divididas: existe um modo de divisão por " -"partição e por chamada: " -"

    " -"
  • Partição: Você vê a partição em grupos para uma parte de análise, de acordo " -"com o tipo de grupo seleccionado. P.ex., se forem seleccionados os grupos de " -"objectos ELF, você vê rectângulos coloridos por cada objecto do ELF usado (uma " -"biblioteca dinâmica ou um executável), dimensionados de acordo com o custo " -"dispendido nestes
  • " -"
  • Chamada: É mostrado um rectângulo que apresenta o custo acumulado da função " -"seleccionada no momento. Por sua vez, é dividido para mostrar os custos " -"acumulados das funções que esta chama.

" - -#: toplevel.cpp:318 -msgid "Top Cost Call Stack" -msgstr "Topo de Custo da Pilha de Chamadas" - -#: toplevel.cpp:320 -msgid "" -"The Top Cost Call Stack" -"

This is a purely fictional 'most probable' call stack. It is built up by " -"starting with the current selected function and adds the callers/callees with " -"highest cost at the top and to bottom.

" -"

The Cost and Calls columns show the cost used for all calls " -"from the function in the line above.

" -msgstr "" -"Topo de Custo da Pilha de Chamadas" -"

Esta é uma pilha de chamadas fictícia e 'mais provável'. Ela é construída " -"começando na função seleccionada no momento e adicionando as funções " -"chamadoras/chamadas com maior custo por cima e por baixo.

" -"

As colunas Custo e Chamadas mostram o custo usada para todas " -"as chamadas da função na linha acima.

" - -#: toplevel.cpp:333 -msgid "Flat Profile" -msgstr "Análise Simples" - -#: toplevel.cpp:343 -msgid "" -"The Flat Profile" -"

The flat profile contains a group and a function selection list. The group " -"list contains all groups where costs are spent in, depending on the chosen " -"group type. The group list is hidden when group type 'Function' is selected." -"

" -"

The function list contains the functions of the selected group (or all for " -"'Function' group type), ordered by the costs spent therein. Functions with " -"costs less than 1% are hidden on default.

" -msgstr "" -"A Análise Simples" -"

A análise simples contém um grupo e uma lista de selecção de funções. A " -"lista de grupos contém todos os grupos onde os custos são dispendidos, " -"dependendo do tipo de grupo escolhido. A lista de grupos é escondida quando o " -"tipo de grupo 'Função' é seleccionado." -"

" -"

A lista de funções contém as funções do grupo seleccionado (ou todas para o " -"tipo de grupo 'Função'), ordenadas pelos custos dispendidos até então. As " -"funções com custo menor que 1% são escondidas por omissão.

" - -#. i18n: file dumpselectionbase.ui line 16 -#: rc.cpp:84 toplevel.cpp:357 toplevel.cpp:609 -#, no-c-format -msgid "Profile Dumps" -msgstr "Resultados da Análise" - -#: toplevel.cpp:367 -msgid "" -"Profile Dumps" -"

This dockable shows in the top part the list of loadable profile dumps in " -"all subdirectories of: " -"

    " -"
  • current working directory of KCachegrind, i.e. where it was started from, " -"and " -"
  • the default profile dump directory given in the configuration.
" -"The list is sorted according the the target command profiled in the " -"corresponding dump.

" -"

On selecting a profile dump, information for it is shown in the bottom area " -"of the dockable: " -"

    " -"
  • Options allows you to view the profiled command and profile options " -"of this dump. By changing any item, a new (yet unexisting) profile template is " -"created. Press Run Profile to start aprofile run with these options in " -"the background. " -"
  • Info gives detailed info on the selected dump like event cost " -"summary and properties of the simulated cache. " -"
  • State is only available for current happening profiles runs. Press " -"Update to see different counters of the run, and a stack trace of the " -"current position in the program profiled. Check the Every " -"option to let KCachegrind regularly poll these data. Check the Sync " -"option to let the dockable activate the top function in the current loaded " -"dump.

" -msgstr "" -"Resultados da análise" -"

Esta área mostra na parte superior a lista de resultados das análises em " -"todas as subpastas de: " -"

    " -"
  • a directoria de trabalho actual do KCachegrind, i.e., onde este foi " -"iniciado, e " -"
  • a directoria dos resultados das análises dada na configuração.
" -"A lista é ordenada de acordo com o comando-alvo analisado no resultado " -"correspondente.

" -"

Ao seleccionar um resultado, são mostradas as informações sobre este na " -"parte inferior: " -"

    " -"
  • Opções permite-lhe ver o comando analisado e as opções de análise " -"deste resultado. Carregue em Executar a Análise " -"para iniciar o processo de análise, com estas opções, em segundo plano. " -"
  • Informações fornece dados detalhados sobre o resultado seleccionado, " -"como um resumo do custo dos eventos e as propriedades da 'cache' simulada. " -"
  • Estado só está disponível para as execuções das análises em curso de " -"momento. Carregue em Actualizar para ver os diferentes contadores da " -"execução, assim como um traceamento da pilha da posição actual do programa a sr " -"analisado. Assinale a opção Tudo para deixar o KCachegrind extrair " -"regularmente estes dados. Assinale a opção Sincronizar " -"para que a área active a função de topo no resultado carregado no momento.
" -"

" - -#: toplevel.cpp:455 -msgid "&Duplicate" -msgstr "&Duplicar" - -#: toplevel.cpp:459 -msgid "" -"Duplicate Current Layout" -"

Make a copy of the current layout.

" -msgstr "" -"Duplicar a Disposição Actual" -"

Cria uma cópia da disposição actual.

" - -#: toplevel.cpp:466 -msgid "" -"Remove Current Layout" -"

Delete current layout and make the previous active.

" -msgstr "" -"Remover a Disposição Actual" -"

Remove a disposição actual e torna a anterior a disposição activa.

" - -#: toplevel.cpp:470 -msgid "&Go to Next" -msgstr "Ir para a &Próxima" - -#: toplevel.cpp:474 -msgid "Go to Next Layout" -msgstr "Ir para a Próxima Disposição" - -#: toplevel.cpp:477 -msgid "&Go to Previous" -msgstr "&Ir para a Anterior" - -#: toplevel.cpp:481 -msgid "Go to Previous Layout" -msgstr "Ir para a Disposição Anterior" - -#: toplevel.cpp:484 -msgid "&Restore to Default" -msgstr "&Repor a Predefinida" - -#: toplevel.cpp:487 -msgid "Restore Layouts to Default" -msgstr "Repor a Disposição por Omissão" - -#: toplevel.cpp:490 -msgid "&Save as Default" -msgstr "&Gravar como Predefinição" - -#: toplevel.cpp:493 -msgid "Save Layouts as Default" -msgstr "Gravar Disposições como por Omissão" - -#: toplevel.cpp:504 -msgid "New

Open new empty KCachegrind window.

" -msgstr "Novo

Mostra uma nova janela do KCachegrind vazia.

" - -#: toplevel.cpp:507 -msgid "&Add..." -msgstr "&Adicionar..." - -#: toplevel.cpp:510 -msgid "" -"Add Profile Data" -"

This opens an additional profile data file in the current window.

" -msgstr "" -"Adicionar Dados de Análise" -"

Isto abre um ficheiro de dados de análise adicional na janela actual.

" - -#: toplevel.cpp:522 -msgid "Reload Profile Data

This loads any new created parts, too.

" -msgstr "" -"Reler os Dados de Análise" -"

Isto carrega também as partes criadas como novas, também.

" - -#: toplevel.cpp:526 -msgid "&Export Graph" -msgstr "&Exportar Grafo" - -#: toplevel.cpp:530 -msgid "" -"Export Call Graph" -"

Generates a file with extension .dot for the tools of the GraphViz " -"package.

" -msgstr "" -"Exportar o Grafo" -"

Gera um ficheiro com a extensão .dot para as ferramentas do pacote " -"GraphViz.

" - -#: toplevel.cpp:536 -msgid "&Force Dump" -msgstr "&Forçar o Resultado" - -#: toplevel.cpp:545 -msgid "" -"Force Dump" -"

This forces a dump for a Callgrind profile run in the current directory. " -"This action is checked while KCachegrind looks for the dump. If the dump is " -"finished, it automatically reloads the current trace. If this is the one from " -"the running Callgrind, the new created trace part will be loaded, too.

" -"

Force dump creates a file 'callgrind.cmd', and checks every second for its " -"existence. A running Callgrind will detect this file, dump a trace part, and " -"delete 'callgrind.cmd'. The deletion is detected by KCachegrind, and it does a " -"Reload. If there's no Callgrind running, press 'Force Dump' again to " -"cancel the dump request. This deletes 'callgrind.cmd' itself and stops polling " -"for a new dump.

" -"

Note: A Callgrind run only detects existence of 'callgrind.cmd' " -"when actively running a few milliseconds, i.e. not " -"sleeping. Tip: For a profiled GUI program, you can awake Callgrind e.g. by " -"resizing a window of the program.

" -msgstr "" -"Forçar o Resultado" -"

Isto obriga à exposição do resultado para uma análise do Cachegrind na " -"directoria actual. Esta acção é verificada enquanto o KCachegrind espera o " -"resultado. Se o resultado estiver pronto, este carrega de novo o traceamento " -"actual. Se, por outro lado, for o resultado do Cachegrind em execução, o novo " -"traceamento criado será carregado da mesma forma.

" -"

O resultado forçado cria um ficheiro 'cachegrind.cmd', e verifica a cada " -"segundo a sua existência. Um Cachegrind em execução irá detectar este ficheiro, " -"gerar um traceamento, e remover o 'cachegrind.cmd'. A remoção é detectada pelo " -"KCachegrind, pelo que fará uma nova leitura. Se não " -"existir nenhum Cachegrind a correr, carregue em 'Forçar o Resultado' de novo " -"para cancelar o pedido do resultado. Isto irá remover o próprio " -"'cachegrind.cmd' e pára a pesquisa de um novo resultado.

" -"

Nota: Uma execução do Cachegrind apenas detecta a existência do " -"'cachegrind.cmd' quando está em execução activa durante alguns milisegundos, " -"i.e., quando não está parado. Sugestão: Para um programa gráfico em " -"análise, você pode acordar o Cachegrind, p.ex, se redimensionar uma janela do " -"programa.Open Profile Data" -"

This opens a profile data file, with possible multiple parts

" -msgstr "" -"Abrir os Dados de Análise" -"

Isto abre um traceamento com várias partes, possivelmente

" - -#: toplevel.cpp:586 -msgid "Show/Hide the Parts Overview Dockable" -msgstr "Mostrar/Esconder a Componente de Traceamento" - -#: toplevel.cpp:590 -msgid "Call Stack" -msgstr "Pilha de Chamadas" - -#: toplevel.cpp:595 -msgid "Show/Hide the Call Stack Dockable" -msgstr "Mostrar/Esconder a Componente da Pilha de Chamadas" - -#. i18n: file functionselectionbase.ui line 16 -#: rc.cpp:297 toplevel.cpp:599 -#, no-c-format -msgid "Function Profile" -msgstr "Análise da Função" - -#: toplevel.cpp:604 -msgid "Show/Hide the Function Profile Dockable" -msgstr "Mostrar/Esconder a Análise de Funções" - -#: toplevel.cpp:614 -msgid "Show/Hide the Profile Dumps Dockable" -msgstr "Acoplar/desacoplar os Resultados da Análise" - -#: toplevel.cpp:619 -msgid "Show Relative Costs" -msgstr "Mostrar Custos Relativos" - -#: toplevel.cpp:626 -msgid "Show Absolute Costs" -msgstr "Mostrar Custos Absolutos" - -#: toplevel.cpp:629 -msgid "Show relative instead of absolute costs" -msgstr "Mostrar os custos relativos em vez dos absolutos" - -#: toplevel.cpp:633 -msgid "Percentage Relative to Parent" -msgstr "Percentagem Relativa ao Pai" - -#: toplevel.cpp:639 -msgid "Show percentage costs relative to parent" -msgstr "Mostrar os custos percentuais face ao 'pai'" - -#: toplevel.cpp:643 -msgid "" -"Show percentage costs relative to parent" -"

If this is switched off, percentage costs are always shown relative to the " -"total cost of the profile part(s) that are currently browsed. By turning on " -"this option, percentage cost of shown cost items will be relative to the parent " -"cost item." -"

    " -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"
    Cost TypeParent Cost
    Function CumulativeTotal
    Function SelfFunction Group (*) / Total
    CallFunction Cumulative
    Source LineFunction Cumulative
    " -"

    (*) Only if function grouping is switched on (e.g. ELF object grouping)." -msgstr "" -"Mostrar os custos percentuais face ao 'pai'" -"

    Se esta opção estiver desligada, os custos percentuais são sempre mostrados " -"em relação ao custo total da parte da análise que você está a navegar neste " -"momento. Se ligar esta opção, o custo percentual dos itens de custo mostrados " -"serão relativos ao 'item-pai' do custo." -"

      " -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"
      Tipo de CustoCusto do Pai
      Acumulação da FunçãoTotal
      Própria FunçãoGroup da Função / Total
      ChamadaAcumulação da Função
      Linha de CódigoAcumulação da Função
      " -"

      (*) Só se o agrupamento de funções estiver activado (p.ex., agrupamento de " -"objectos ELF)." - -#: toplevel.cpp:658 -msgid "Do Cycle Detection" -msgstr "Detectar Ciclos" - -#: toplevel.cpp:664 -msgid "Skip Cycle Detection" -msgstr "Não Detectar Ciclos" - -#: toplevel.cpp:667 -msgid "" -"Detect recursive cycles" -"

      If this is switched off, the treemap drawing will show black areas when a " -"recursive call is made instead of drawing the recursion ad infinitum. Note that " -"the size of black areas often will be wrong, as inside recursive cycles the " -"cost of calls cannot be determined; the error is small, however, for false " -"cycles (see documentation)." -"

      The correct handling for cycles is to detect them and collapse all functions " -"of a cycle into a virtual function, which is done when this option is selected. " -"Unfortunately, with GUI applications, this often will lead to huge false " -"cycles, making the analysis impossible; therefore, there is the option to " -"switch this off." -msgstr "" -"Detectar os ciclos recursivos" -"

      Se isto estiver desligado, o desenho da árvore irá mostrar áreas a preto " -"quando é feita uma chamada recursiva em vez de desenhar a recursividade 'ad " -"infinitum'. Tenha em atenção que o tamanho das áreas a preto poderá ser muitas " -"vezes errado, dado que dentro de ciclos recursivos, você não consegue " -"determinar o custo das chamadas. Contudo, o erro é pequeno para os ciclos " -"falsos (ver a documentação)." -"

      O tratamento correcto dos ciclos é detectá-los e fechar todas as funções de " -"um ciclo numa função virtual. Isto é feito quando esta opção é seleccionada. " -"Infelizmente, com as aplicações gráficos, isto irá conduzir a ciclos falsos " -"enormes, tornando a análise impossível. Daí a possibilidade de desligar esta " -"opção." - -#: toplevel.cpp:689 toplevel.cpp:729 -msgid "Go back in function selection history" -msgstr "Voltar atrás no histórico da selecção das funções" - -#: toplevel.cpp:695 toplevel.cpp:741 -msgid "Go forward in function selection history" -msgstr "Avançar no histórico da selecção das funções" - -#: toplevel.cpp:701 toplevel.cpp:715 -msgid "" -"Go Up" -"

      Go to last selected caller of current function. If no caller was visited, " -"use that with highest cost.

      " -msgstr "" -"Subir" -"

      Ir para o último responsável seleccionado da chamada da função actual. Se " -"nenhum destes responsáveis foi visitado, é usado o com custo maior.

      " - -#: toplevel.cpp:707 -msgid "&Up" -msgstr "S&ubir" - -#: toplevel.cpp:746 toplevel.cpp:1651 -msgid "Primary Event Type" -msgstr "Tipo Primário de Evento" - -#: toplevel.cpp:748 -msgid "Select primary event type of costs" -msgstr "Seleccione o tipo primário de evento dos custos" - -#: toplevel.cpp:758 toplevel.cpp:1654 -msgid "Secondary Event Type" -msgstr "Tipo Secundário de Evento" - -#: toplevel.cpp:760 -msgid "Select secondary event type for cost e.g. shown in annotations" -msgstr "" -"Seleccionar o tipo secundário de eventos para o custo, mostrados em anotações" - -#: functionselection.cpp:243 toplevel.cpp:768 -msgid "Grouping" -msgstr "Grupos" - -#: toplevel.cpp:771 -msgid "Select how functions are grouped into higher level cost items" -msgstr "" -"Seleccionar como é que as funções são agrupadas nos itens de custo superiores" - -#: functionselection.cpp:52 toplevel.cpp:777 -msgid "(No Grouping)" -msgstr "(Sem Grupos)" - -#: toplevel.cpp:787 -msgid "Split" -msgstr "Dividir" - -#: toplevel.cpp:791 -msgid "Show two information panels" -msgstr "Mostrar dois painéis de informação" - -#: toplevel.cpp:795 -msgid "Split Horizontal" -msgstr "Dividir Horizontalmente" - -#: toplevel.cpp:800 -msgid "Change Split Orientation when main window is split." -msgstr "" -"Mudar a Orientação da Repartição quando a janela principal está repartida." - -#: toplevel.cpp:808 -msgid "Tip of the &Day..." -msgstr "Dica do &Dia..." - -#: toplevel.cpp:809 -msgid "Show \"Tip of the Day\"" -msgstr "Mostrar a \"Dica do Dia\"" - -#: toplevel.cpp:1012 toplevel.cpp:1061 -msgid "" -"cachegrind.out* callgrind.out*|Callgrind Profile Data\n" -"*|All Files" -msgstr "" -"cachegrind.out* callgrind.out*|Dados de Análise do Cachegrind\n" -"*|Todos os Ficheiros" - -#: toplevel.cpp:1014 -msgid "Select Callgrind Profile Data" -msgstr "Seleccionar os Dados de Perfil do Cachegrind" - -#: toplevel.cpp:1063 -msgid "Add Callgrind Profile Data" -msgstr "Adicionar Dados de Perfil do Callgrind" - -#: toplevel.cpp:1221 toplevel.cpp:1574 -msgid "(Hidden)" -msgstr "(Escondido)" - -#: toplevel.cpp:1626 -msgid "Hide" -msgstr "Esconder" - -#: toplevel.cpp:1659 -msgid "Show Absolute Cost" -msgstr "Mostrar Custo Absoluto" - -#: toplevel.cpp:1662 -msgid "Show Relative Cost" -msgstr "Mostrar Custo Relativo" - -#: toplevel.cpp:1693 -msgid "Go Forward" -msgstr "Avançar" - -#: toplevel.cpp:1694 -msgid "Go Up" -msgstr "Subir" - -#: toplevel.cpp:1926 -#, c-format -msgid "Layout Count: %1" -msgstr "Contagem de Disposição: %1" - -#: toplevel.cpp:1933 -msgid "No profile data file loaded." -msgstr "Não está nenhum ficheiro de dados de perfil carregado." - -#: toplevel.cpp:1942 -msgid "Total %1 Cost: %2" -msgstr "Total %1 Custo: %2" - -#: toplevel.cpp:1954 -msgid "No event type selected" -msgstr "Sem tipo de evento seleccionado" - -#: toplevel.cpp:2199 toplevel.cpp:2235 toplevel.cpp:2271 -msgid "(No Stack)" -msgstr "(Sem Pilha)" - -#: toplevel.cpp:2205 -msgid "(No next function)" -msgstr "(Não há próxima função)" - -#: toplevel.cpp:2241 -msgid "(No previous function)" -msgstr "(Não há função anterior)" - -#: toplevel.cpp:2276 -msgid "(No Function Up)" -msgstr "(Não há função acima)" - -#. i18n: file dumpselectionbase.ui line 906 -#: instrview.cpp:125 rc.cpp:264 sourceview.cpp:50 -#, no-c-format -msgid "#" -msgstr "#" - -#: callview.cpp:45 instrview.cpp:127 sourceview.cpp:52 -msgid "Cost 2" -msgstr "Custo 2" - -#: instrview.cpp:129 -msgid "Hex" -msgstr "Hex" - -#: instrview.cpp:131 tabview.cpp:313 -msgid "Assembler" -msgstr "'Assembler'" - -#: instrview.cpp:132 -msgid "Source Position" -msgstr "Posição no Código" - -#: instrview.cpp:163 -msgid "" -"Annotated Assembler" -"

      The annotated assembler list shows the machine code instructions of the " -"current selected function together with (self) cost spent while executing an " -"instruction. If this is a call instruction, lines with details on the call " -"happening are inserted into the source: the cost spent inside of the call, the " -"number of calls happening, and the call destination.

      " -"

      The disassembler output shown is generated with the 'objdump' utility from " -"the 'binutils' package.

      " -"

      Select a line with call information to make the destination function of this " -"call current.

      " -msgstr "" -"'Assembler' Anotado" -"

      A lista do 'assembler' anotado mostra as instruções do código-máquina da " -"função seleccionada de momento, em conjunto com o custo (próprio) dispendido ao " -"executar uma instrução. Se esta é uma instrução de chamada, as linhas com os " -"detalhes da chamada em curso são inseridas no código: Estes são os custos " -"(acumulados) dispendidos dentro da chamada, o número de chamadas ocorridas e o " -"destino da chamada.

      " -"

      O resultado da descodificação apresentado é gerado com o utilitário " -"'objdump' do pacote 'binutils'.

      " -"

      Seleccione uma linha com informações da chamada para fazer com que a função " -"de destino desta chamada passe a ser actual.

      " - -#: callgraphview.cpp:2397 callgraphview.cpp:2401 callgraphview.cpp:2419 -#: callview.cpp:123 callview.cpp:128 coverageview.cpp:166 instrview.cpp:191 -#: sourceview.cpp:116 -msgid "Go to '%1'" -msgstr "Ir para '%1'" - -#: instrview.cpp:195 -#, c-format -msgid "Go to Address %1" -msgstr "Ir para o Endereço %1" - -#: instrview.cpp:207 -msgid "Hex Code" -msgstr "Código Hex" - -#: instrview.cpp:426 -msgid "There is no instruction info in the profile data file." -msgstr "Não existe nenhuma informação das instruções no ficheiro de análise." - -#: instrview.cpp:428 -msgid "For the Valgrind Calltree Skin, rerun with option" -msgstr "Para a Árvore de Chamadas do Valgrind, correr de novo com a opção" - -#: instrview.cpp:429 -msgid " --dump-instr=yes" -msgstr " --dump-instr=yes" - -#: instrview.cpp:430 -msgid "To see (conditional) jumps, additionally specify" -msgstr "Para ver os saltos (condicionais), indique adicionalmente" - -#: instrview.cpp:431 -msgid " --trace-jump=yes" -msgstr " --trace-jump=yes" - -#: instrview.cpp:629 -msgid "There is an error trying to execute the command" -msgstr "Ocorreu um erro ao tentar executar o comando" - -#: instrview.cpp:634 instrview.cpp:900 -msgid "Check that you have installed 'objdump'." -msgstr "Verifique se instalou o utilitário 'objdump'." - -#: instrview.cpp:636 instrview.cpp:902 -msgid "This utility can be found in the 'binutils' package." -msgstr "Este utilitário pode ser encontrado no pacote 'binutils'." - -#: instrview.cpp:739 -msgid "(No Assembler)" -msgstr "(Sem 'Assembler')" - -#: instrview.cpp:875 -#, c-format -msgid "" -"_n: There is %n cost line without assembler code.\n" -"There are %n cost lines without assembler code." -msgstr "" -"Existe uma linha de custo sem código do 'assembler'.\n" -"Existem %n linhas de custo sem código do 'assembler'." - -#: instrview.cpp:877 -msgid "This happens because the code of" -msgstr "Isto acontece porque o código do" - -#: instrview.cpp:880 -msgid "does not seem to match the profile data file." -msgstr "não parece corresponder ao ficheiro de dados." - -#: instrview.cpp:883 -msgid "Are you using an old profile data file or is the above mentioned" -msgstr "Você está a usar um ficheiro de análise antigo ou o objecto ELF" - -#: instrview.cpp:885 -msgid "ELF object from an updated installation/another machine?" -msgstr "acima indicado é de uma instalação actualizada ou de outra máquina?" - -#: instrview.cpp:893 -msgid "There seems to be an error trying to execute the command" -msgstr "Parece ocorrer um erro ao tentar executar o comando" - -#: instrview.cpp:898 -msgid "Check that the ELF object used in the command exists." -msgstr "Verifique se o objecto ELF usado no comando existe." - -#: callgraphview.cpp:306 -#, c-format -msgid "Call(s) from %1" -msgstr "Chamada(s) de %1" - -#: callgraphview.cpp:307 -#, c-format -msgid "Call(s) to %1" -msgstr "Chamada(s) a %1" - -#: callgraphview.cpp:308 -msgid "(unknown call)" -msgstr "(chamada desconhecida)" - -#: callgraphview.cpp:1425 -msgid "" -"Call Graph around active Function" -"

      Depending on configuration, this view shows the call graph environment of " -"the active function. Note: the shown cost is only " -"the cost which is spent while the active function was actually running; i.e. " -"the cost shown for main() - if it's visible - should be the same as the cost of " -"the active function, as that's the part of inclusive cost of main() spent while " -"the active function was running.

      " -"

      For cycles, blue call arrows indicate that this is an artificial call added " -"for correct drawing which actually never happened.

      " -"

      If the graph is larger than the widget area, an overview panner is shown in " -"one edge. There are similar visualization options to the Call Treemap; the " -"selected function is highlighted." -"

      " -msgstr "" -"Gráfico de Chamadas da Função Activa" -"

      Dependendo da configuração, esta janela mostra o ambiente gráfico das " -"chamadas da função activa. Nota: o custo apresentado é apenas " -"o custo dispendido enquanto a função activa estava ela própria em execução; " -"i.e., o custo apresentado para o main() - se estiver visível - deverá ser o " -"mesmo que o custo da função activa, atendendo a que essa é a parte incluída no " -"custo do main() gasta enquanto a função activa estava a ser executada.

      " -"

      Para os ciclos, as setas de chamadas azuis indicam que esta é uma chamada " -"artificial que é adicionada para um desenho mais correcto, chamada esta que " -"nunca ocorre de facto.

      " -"

      Se o gráfico for maior que a área de desenho, é mostrado um rectângulo de " -"deslocamento de um dos lados. Existem opções de visualização semelhantes na " -"Árvore de Chamadas; a função seleccionada está realçada." -"

      " - -#: callgraphview.cpp:1789 -msgid "" -"Warning: a long lasting graph layouting is in progress.\n" -"Reduce node/edge limits for speedup.\n" -msgstr "" -"Aviso: está a decorrer uma operação de disposição de grafos que vai demorar " -"bastante tempo.\n" -"Reduza os limites de nós/arcos para aumentar a velocidade.\n" - -#: callgraphview.cpp:1792 -msgid "" -"Layouting stopped.\n" -msgstr "" -"Disposição parou.\n" - -#: callgraphview.cpp:1794 -msgid "" -"The call graph has %1 nodes and %2 edges.\n" -msgstr "" -"O grafo de chamadas tem %1 nós e %2 arcos.\n" - -#: callgraphview.cpp:1827 -msgid "No item activated for which to draw the call graph." -msgstr "Não está nenhum item activado para poder desenhar o grafo de chamadas." - -#: callgraphview.cpp:1838 -msgid "No call graph can be drawn for the active item." -msgstr "Não é possível desenhar o grafo de chamadas do item activo." - -#: callgraphview.cpp:1867 -msgid "" -"No call graph is available because the following\n" -"command cannot be run:\n" -"'%1'\n" -msgstr "" -"O grafo de chamadas não está disponível porque o\n" -"não foi possível correr o seguinte comando:\n" -"'%1'\n" - -#: callgraphview.cpp:1870 callgraphview.cpp:2200 -msgid "Please check that 'dot' is installed (package GraphViz)." -msgstr "Por favor verifique se o 'dot' está instalado (com o pacote GraphViz)." - -#: callgraphview.cpp:2199 -msgid "" -"Error running the graph layouting tool.\n" -msgstr "" -"Erro ao correr a ferramenta de disposição de grafos.\n" - -#: callgraphview.cpp:2207 -msgid "" -"There is no call graph available for function\n" -"\t'%1'\n" -"because it has no cost of the selected event type." -msgstr "" -"Não existe nenhum grafo de chamadas disponível para a função\n" -"\t'%1'\n" -"porque não tem nenhum custo para o tipo de evento seleccionado." - -#: callgraphview.cpp:2428 -msgid "Stop Layouting" -msgstr "Parar a Disposição" - -#: callgraphview.cpp:2436 -msgid "As PostScript" -msgstr "Como PostScript" - -#: callgraphview.cpp:2437 -msgid "As Image ..." -msgstr "Como Imagem ..." - -#: callgraphview.cpp:2439 -msgid "Export Graph" -msgstr "Exportar Grafo" - -#: callgraphview.cpp:2444 callgraphview.cpp:2467 -msgid "Unlimited" -msgstr "Sem Limite" - -#: callgraphview.cpp:2447 callgraphview.cpp:2470 -msgid "None" -msgstr "Nenhum" - -#: callgraphview.cpp:2448 callgraphview.cpp:2471 -msgid "max. 2" -msgstr "máx. 2" - -#: callgraphview.cpp:2449 callgraphview.cpp:2472 -msgid "max. 5" -msgstr "máx. 5" - -#: callgraphview.cpp:2450 callgraphview.cpp:2473 -msgid "max. 10" -msgstr "máx. 10" - -#: callgraphview.cpp:2451 callgraphview.cpp:2474 -msgid "max. 15" -msgstr "máx. 15" - -#: callgraphview.cpp:2461 callgraphview.cpp:2484 -#, c-format -msgid "< %1" -msgstr "< %1" - -#: callgraphview.cpp:2490 -msgid "No Minimum" -msgstr "Sem Mínimo" - -#: callgraphview.cpp:2494 -#, c-format -msgid "50 %" -msgstr "50 %" - -#: callgraphview.cpp:2495 -#, c-format -msgid "20 %" -msgstr "20 %" - -#: callgraphview.cpp:2496 -#, c-format -msgid "10 %" -msgstr "10 %" - -#: callgraphview.cpp:2497 -#, c-format -msgid "5 %" -msgstr "5 %" - -#: callgraphview.cpp:2498 -#, c-format -msgid "3 %" -msgstr "3 %" - -#: callgraphview.cpp:2499 -#, c-format -msgid "2 %" -msgstr "2 %" - -#: callgraphview.cpp:2500 -#, c-format -msgid "1.5 %" -msgstr "1.5 %" - -#: callgraphview.cpp:2501 -#, c-format -msgid "1 %" -msgstr "1 %" - -#: callgraphview.cpp:2517 -msgid "Same as Node" -msgstr "Mesmo do que o Nó" - -#: callgraphview.cpp:2518 -#, c-format -msgid "50 % of Node" -msgstr "50 % do Nó" - -#: callgraphview.cpp:2519 -#, c-format -msgid "20 % of Node" -msgstr "20 % do Nó" - -#: callgraphview.cpp:2520 -#, c-format -msgid "10 % of Node" -msgstr "10 % do Nó" - -#: callgraphview.cpp:2530 -msgid "Caller Depth" -msgstr "Profundidade do Chamador" - -#: callgraphview.cpp:2531 -msgid "Callee Depth" -msgstr "Profundidade do Chamado" - -#: callgraphview.cpp:2532 -msgid "Min. Node Cost" -msgstr "Custo Mínimo do Nó" - -#: callgraphview.cpp:2533 -msgid "Min. Call Cost" -msgstr "Custo Mínimo da Chamada" - -#: callgraphview.cpp:2535 -msgid "Arrows for Skipped Calls" -msgstr "Setas para as Chamadas Ignoradas" - -#: callgraphview.cpp:2537 -msgid "Inner-cycle Calls" -msgstr "Chamadas de Ciclos Internos" - -#: callgraphview.cpp:2539 -msgid "Cluster Groups" -msgstr "Grupos de 'Cluster'" - -#: callgraphview.cpp:2544 -msgid "Compact" -msgstr "Compacto" - -#: callgraphview.cpp:2545 -msgid "Normal" -msgstr "Normal" - -#: callgraphview.cpp:2546 -msgid "Tall" -msgstr "Alto" - -#: callgraphview.cpp:2551 -msgid "Top to Down" -msgstr "Topo para Fundo" - -#: callgraphview.cpp:2552 -msgid "Left to Right" -msgstr "Esquerda para Direita" - -#: callgraphview.cpp:2553 -msgid "Circular" -msgstr "Circular" - -#: callgraphview.cpp:2559 -msgid "TopLeft" -msgstr "TopoEsquerdo" - -#: callgraphview.cpp:2560 -msgid "TopRight" -msgstr "TopoDireito" - -#: callgraphview.cpp:2561 -msgid "BottomLeft" -msgstr "FundoEsquerdo" - -#: callgraphview.cpp:2562 -msgid "BottomRight" -msgstr "FundoDireito" - -#. i18n: file configdlgbase.ui line 246 -#: callgraphview.cpp:2563 rc.cpp:42 rc.cpp:51 rc.cpp:54 -#, no-c-format -msgid "Automatic" -msgstr "Automático" - -#: callgraphview.cpp:2570 -msgid "Graph" -msgstr "Gráfico" - -#: callgraphview.cpp:2572 -msgid "Birds-eye View" -msgstr "Vista Geral" - -#: _translatorinfo.cpp:1 -msgid "" -"_: NAME OF TRANSLATORS\n" -"Your names" -msgstr "José Nuno Pires,Pedro Morais" - -#: _translatorinfo.cpp:3 -msgid "" -"_: EMAIL OF TRANSLATORS\n" -"Your emails" -msgstr "jncp@netcabo.pt,morais@kde.org" - -#: coverageitem.cpp:65 coverageitem.cpp:205 functionitem.cpp:72 -#, c-format -msgid "" -"_n: (%n function skipped)\n" -"(%n functions skipped)" -msgstr "" -"(%n função ignorada)\n" -"(%n funções ignoradas)" - -#: main.cpp:38 -msgid "Run under cachegrind" -msgstr "Executar o com o cachegrind" - -#: main.cpp:39 -msgid "Show information of this trace" -msgstr "Mostrar a informação deste traceamento" - -#: main.cpp:46 -msgid "KCachegrind" -msgstr "KCachegrind" - -#: main.cpp:48 -msgid "KDE Frontend for Cachegrind" -msgstr "Interface KDE para o Cachegrind" - -#: main.cpp:50 -msgid "(C) 2002, 2003, 2004" -msgstr "(C) 2002, 2003, 2004" - -#: main.cpp:53 -msgid "Author/Maintainer" -msgstr "Autor/Manutenção" - -#: tabview.cpp:64 -msgid "Move to Top" -msgstr "Mover para o Topo" - -#: tabview.cpp:68 -msgid "Move to Right" -msgstr "Mover para a Direita" - -#: tabview.cpp:72 -msgid "Move to Bottom" -msgstr "Mover para a Esquerda" - -#: tabview.cpp:76 -msgid "Move to Bottom Left" -msgstr "Mover para o Rodapé Esquerdo" - -#: tabview.cpp:77 tabview.cpp:94 treemap.cpp:2908 -msgid "Bottom Left" -msgstr "Fundo Esquerda" - -#: tabview.cpp:79 -msgid "Move Area To" -msgstr "Mover Área Para" - -#: tabview.cpp:81 -msgid "Hide This Tab" -msgstr "Esconder Esta Página" - -#: tabview.cpp:82 -msgid "Hide Area" -msgstr "Esconder a Área" - -#: tabview.cpp:95 -msgid "Show Hidden On" -msgstr "Mostrar Escondido Em" - -#: tabview.cpp:242 -msgid "(No profile data file loaded)" -msgstr "(Não está nenhum ficheiro de dados de análise carregado)" - -#: tabview.cpp:281 -msgid "Types" -msgstr "Tipos" - -#: tabview.cpp:284 -msgid "Callers" -msgstr "Chamadores" - -#: tabview.cpp:287 -msgid "All Callers" -msgstr "Todos os Chamadores" - -#: tabview.cpp:290 -msgid "Caller Map" -msgstr "Mapa de Chamadores" - -#: tabview.cpp:293 -msgid "Source" -msgstr "Código" - -#: tabview.cpp:297 -msgid "Parts" -msgstr "Partes" - -#: tabview.cpp:300 -msgid "Call Graph" -msgstr "Grafo de Chamadas" - -#: tabview.cpp:303 -msgid "Callees" -msgstr "Chamados" - -#: tabview.cpp:306 -msgid "All Callees" -msgstr "Todos os Chamados" - -#: tabview.cpp:310 -msgid "Callee Map" -msgstr "Mapa de Chamados" - -#: tabview.cpp:553 -msgid "" -"Information Tabs" -"

      This widget shows information for the current selected function in different " -"tabs: " -"

        " -"
      • The Costs tab shows a list of available event types and the inclusive and " -"self costs regarding to these types.
      • " -"
      • The Parts tab shows a list of trace parts if the trace consists of more " -"than one part (otherwise, this tab is hided). The cost of the selected function " -"spent in the different parts together with the calls happening is shown.
      • " -"
      • The Call Lists tab shows direct callers and callees of the function in more " -"detail.
      • " -"
      • The Coverage tab shows the same is the Call Lists tab, but not only direct " -"callers and callees but also indirect ones.
      • " -"
      • The Call Graph tab shows a graphical visualization of the calls done by " -"this function.
      • " -"
      • The Source tab presents annotated source code if debugging information and " -"the source file is available.
      • " -"
      • The Assembler tab presents annotated assembler code if trace information on " -"instruction level is available.
      For more information, see the " -"What's This? help of the corresponding tab widget

      " -msgstr "" -"Páginas de Informação" -"

      Estes itens mostram a informação para a função seleccionada de momento em " -"várias páginas diferentes: " -"

        " -"
      • A página de Custos mostra uma lista com os tipos de custos disponíveis, bem " -"como os custos próprios e acumulados, de acordo com os tipos.
      • " -"
      • A página de Partes mostra uma lista com as partes do traceamento, se este " -"consistir em mais do que uma parte (caso contrário, esta página fica " -"escondida). O custo da função seleccionada dispendido nas diferentes partes, em " -"conjunto com as chamadas decorrentes, também é apresentado.
      • " -"
      • A página das Listas de Chamadas mostra as funções chamadoras e chamadas da " -"função actual com maior detalhes.
      • " -"
      • A página de Cobertura mostra o mesmo que a página das Listas de Chamadas, " -"só que mostra os chamadores e chamados indirectos, para além dos directos.
      • " -"
      • O Gráfico de Chamadas mostra uma visualização gráfica das chamadas feitas " -"por esta função.
      • " -"
      • A página de Código apresenta o código-fonte anotado, se estiver disponível " -"a informação de depuração, bem como o ficheiro de código.
      • " -"
      • A página do 'Assembler' mostra o código em Assembly anotado se a informação " -"do traceamento estiver disponível ao nível das instruções.
      " -"Para mais informações, veja a ajuda O que é isto " -"da página correspondente

      " - -#: tabview.cpp:630 -msgid "(No Data loaded)" -msgstr "(Sem dados carregados)" - -#: tabview.cpp:631 -msgid "(No function selected)" -msgstr "(Nenhuma função seleccionada)" - -#: sourceview.cpp:54 sourceview.cpp:554 -msgid "Source (unknown)" -msgstr "Fonte (desconhecido)" - -#: sourceview.cpp:89 -msgid "" -"Annotated Source" -"

      The annotated source list shows the source lines of the current selected " -"function together with (self) cost spent while executing the code of this " -"source line. If there was a call in a source line, lines with details on the " -"call happening are inserted into the source: the cost spent inside of the call, " -"the number of calls happening, and the call destination.

      " -"

      Select a inserted call information line to make the destination function " -"current.

      " -msgstr "" -"Código Anotado" -"

      A lista do código anotado mostra as linhas de código da função seleccionada " -"de momento, em conjunto com o custo (próprio) dispendido ao executar o código " -"desta linha. Se existir uma chamada numa linha de código, as linhas com os " -"detalhes da chamada em curso são inseridas no código: Estes são os custos " -"(acumulados) dispendidos dentro da chamada, o número de chamadas ocorridas e o " -"destino da chamada.

      " -"

      Seleccione uma linha com informações da chamada para fazer com que a função " -"de destino desta chamada passe a ser actual.

      " - -#: sourceview.cpp:120 -#, c-format -msgid "Go to Line %1" -msgstr "Ir para a Linha %1" - -#: sourceview.cpp:293 -msgid "(No Source)" -msgstr "(Sem Fonte)" - -#: sourceview.cpp:512 -msgid "There is no cost of current selected type associated" -msgstr "Não existe nenhum custo associado ao tipo seleccionado de momento" - -#: sourceview.cpp:514 -msgid "with any source line of this function in file" -msgstr "com qualquer linha de código desta função no ficheiro" - -#: sourceview.cpp:518 -msgid "Thus, no annotated source can be shown." -msgstr "Como tal, não poderá ser mostrado nenhum código anotado." - -#: sourceview.cpp:553 -msgid "Source ('%1')" -msgstr "Código ('%1')" - -#: sourceview.cpp:559 -msgid "--- Inlined from '%1' ---" -msgstr "--- Incluído de '%1' ---" - -#: sourceview.cpp:560 -msgid "--- Inlined from unknown source ---" -msgstr "--- Incluído de código desconhecido ---" - -#: sourceview.cpp:565 -msgid "There is no source available for the following function:" -msgstr "Não existe nenhum código disponível para a função:" - -#: sourceview.cpp:570 -msgid "This is because no debug information is present." -msgstr "Isto ocorreu porque não existe nenhuma informação de depuração." - -#: sourceview.cpp:572 -msgid "Recompile source and redo the profile run." -msgstr "Recompile o código e corra de novo a análise." - -#: sourceview.cpp:575 -msgid "The function is located in this ELF object:" -msgstr "A função está localizada neste objecto ELF:" - -#: sourceview.cpp:583 -msgid "This is because its source file cannot be found:" -msgstr "" -"Isto ocorre porque não foi possível encontrar o seu ficheiro de código:" - -#: sourceview.cpp:587 -msgid "Add the folder of this file to the source folder list." -msgstr "Adicionar a pasta deste ficheiro à lista de ficheiros de código." - -#: sourceview.cpp:589 -msgid "The list can be found in the configuration dialog." -msgstr "A lista pode ser encontrada na janela de configuração." - -#: partlistitem.cpp:49 -msgid " (Thread %1)" -msgstr " ('Thread' %1)" - -#: partlistitem.cpp:56 -msgid "(none)" -msgstr "(nenhum)" - -#: callitem.cpp:82 partlistitem.cpp:152 -msgid "(active)" -msgstr "(activo)" - -#: functionselection.cpp:176 -#, c-format -msgid "Go to %1" -msgstr "Ir para %1" - -#: functionselection.cpp:203 -msgid "Show All Items" -msgstr "Mostrar Todos os Itens" - -#: functionselection.cpp:226 -msgid "No Grouping" -msgstr "Sem Agrupamento" - -#: coverageview.cpp:48 coverageview.cpp:54 -msgid "Distance" -msgstr "Distância" - -#. i18n: file dumpselectionbase.ui line 928 -#: coverageview.cpp:49 partview.cpp:49 rc.cpp:270 rc.cpp:315 -#, no-c-format -msgid "Called" -msgstr "Chamado" - -#: callview.cpp:48 coverageview.cpp:50 -msgid "Caller" -msgstr "Chamador" - -#: coverageview.cpp:55 -msgid "Calling" -msgstr "A Chamar" - -#: callview.cpp:52 coverageview.cpp:56 -msgid "Callee" -msgstr "Chamador" - -#: coverageview.cpp:90 -msgid "" -"List of all Callers" -"

      This list shows all functions calling the current selected one, either " -"directly or with several functions in-between on the stack; the number of " -"functions in-between plus one is called the Distance " -"(e.g. for function A,B,C there exists a call from A to C when A calls B and B " -"calls C, i.e. A => B => C. The distance here is 2).

      " -"

      Absolute cost shown is the cost spent in the selected function while a " -"listed function is active; relative cost is the percentage of all cost spent in " -"the selected function while the listed one is active. The cost graphic shows " -"logarithmic percentage with a different color for each distance.

      " -"

      As there can be many calls from the same function, the distance column " -"sometimes shows the range of distances for all calls happening; then, in " -"parentheses, there is the medium distance, i.e. the distance where most of the " -"call costs happened.

      " -"

      Selecting a function makes it the current selected one of this information " -"panel. If there are two panels (Split mode), the function of the other panel is " -"changed instead.

      " -msgstr "" -"Lista de Todos os Chamadores" -"

      Esta lista mostra todas as funções que chamam a seleccionada no momento, " -"quer directa quer indirectamente, com várias funções no meio da pilha; o número " -"de funções entre as funções, acrescentado de 1, é chamada a Distância " -"(p.ex. para as funções A,B,C, existe uma chamada de A para C quando a A chama a " -"B, e por sua vez a B chama a C, i.e., A => B => C. A distância aqui é 2).

      " -"

      O custo absoluto apresentado é o custo dispendido na função seleccionada, " -"enquanto está activa uma função da lista; o custo relativo é a percentagem do " -"custo total dispendido na função seleccionada enquanto a função da lista está " -"activa. O gráfico do custo mostra a percentagem logarítmica com uma cor " -"diferente para cada distância.

      " -"

      Dado que podem existir várias chamadas a partir da mesma função, a coluna de " -"distância mostra algumas vezes o intervalo de distâncias para todas as chamadas " -"que ocorrem; nesse caso, existe uma distância média entre parêntesis, i.e., a " -"distância onde a maior parte dos custos das chamadas ocorreram.

      " -"

      Se seleccionar uma função, esta fica a activa no momento, neste painel de " -"informação. Se existirem dois painéis (modo dividido), é alterada a função do " -"outro painel.

      " - -#: coverageview.cpp:120 -msgid "" -"List of all Callees" -"

      This list shows all functions called by the current selected one, either " -"directly or with several function in-between on the stack; the number of " -"function in-between plus one is called the Distance " -"(e.g. for function A,B,C there exists a call from A to C when A calls B and B " -"calls C, i.e. A => B => C. The distance here is 2).

      " -"

      Absolute cost shown is the cost spent in the listed function while the " -"selected is active; relative cost is the percentage of all cost spent in the " -"listed function while the selected one is active. The cost graphic always shows " -"logarithmic percentage with a different color for each distance.

      " -"

      As there can be many calls to the same function, the distance column " -"sometimes shows the range of distances for all calls happening; then, in " -"parentheses, there is the medium distance, i.e. the distance where most of the " -"call costs happened.

      " -"

      Selecting a function makes it the current selected one of this information " -"panel. If there are two panels (Split mode), the function of the other panel is " -"changed instead.

      " -msgstr "" -"Lista de Todos os Chamados" -"

      Esta lista mostra todas as funções que são chamadas pela função seleccionada " -"no momento, quer directa quer indirectamente, com várias funções no meio da " -"pilha; o número de funções entre as funções, acrescentado de 1, é chamada a " -"Distância (p.ex. para as funções A,B,C, existe uma chamada de A para C " -"quando a A chama a B, e por sua vez a B chama a C, i.e., A => B => " -"C. A distância aqui é 2).

      " -"

      O custo absoluto apresentado é o custo dispendido na função seleccionada, " -"enquanto está activa uma função da lista; o custo relativo é a percentagem do " -"custo total dispendido na função seleccionada enquanto a função da lista está " -"activa. O gráfico do custo mostra a percentagem logarítmica com uma cor " -"diferente para cada distância.

      " -"

      Dado que podem existir várias chamadas a partir da mesma função, a coluna de " -"distância mostra algumas vezes o intervalo de distâncias para todas as chamadas " -"que ocorrem; nesse caso, existe uma distância média entre parêntesis, i.e., a " -"distância onde a maior parte dos custos das chamadas ocorreram.

      " -"

      Se seleccionar uma função, esta fica a activa no momento, neste painel de " -"informação. Se existirem dois painéis (modo dividido), é alterada a função do " -"outro painel.

      " - -#: configuration.cpp:63 -msgid "Instruction Fetch" -msgstr "Leitura de Instrução" - -#: configuration.cpp:64 -msgid "Data Read Access" -msgstr "Acesso de Leitura de Dados" - -#: configuration.cpp:65 -msgid "Data Write Access" -msgstr "Acesso de Escrita de Dados" - -#: configuration.cpp:66 -msgid "L1 Instr. Fetch Miss" -msgstr "Falha N1 de Leitura de Instrução" - -#: configuration.cpp:67 -msgid "L1 Data Read Miss" -msgstr "Falha N1 de Leitura de Dados" - -#: configuration.cpp:68 -msgid "L1 Data Write Miss" -msgstr "Falha N1 de Escrita de Dados" - -#: configuration.cpp:69 -msgid "L2 Instr. Fetch Miss" -msgstr "Falha N2 de Leitura de Instrução" - -#: configuration.cpp:70 -msgid "L2 Data Read Miss" -msgstr "Falha N2 de Leitura de Dados" - -#: configuration.cpp:71 -msgid "L2 Data Write Miss" -msgstr "Falha N2 de Escrita de Dados" - -#: configuration.cpp:72 -msgid "Samples" -msgstr "Amostras" - -#: configuration.cpp:73 -msgid "System Time" -msgstr "Hora do Sistema" - -#: configuration.cpp:74 -msgid "User Time" -msgstr "Tempo de Utilizador" - -#: configuration.cpp:75 -msgid "L1 Miss Sum" -msgstr "Soma de Falhas N1" - -#: configuration.cpp:76 -msgid "L2 Miss Sum" -msgstr "Soma de Falhas N2" - -#: configuration.cpp:77 -msgid "Cycle Estimation" -msgstr "Estimativa de Ciclos" - -#. i18n: file tdecachegrindui.rc line 15 -#: rc.cpp:9 -#, no-c-format -msgid "&Layout" -msgstr "&Disposição" - -#. i18n: file tdecachegrindui.rc line 32 -#: rc.cpp:12 -#, no-c-format -msgid "Sidebars" -msgstr "Barras Laterais" - -#. i18n: file tdecachegrindui.rc line 54 -#: rc.cpp:18 -#, no-c-format -msgid "State Toolbar" -msgstr "Barra de Ferramentas de Estado" - -#. i18n: file configdlgbase.ui line 37 -#: rc.cpp:24 -#, no-c-format -msgid "General" -msgstr "Geral" - -#. i18n: file configdlgbase.ui line 69 -#: rc.cpp:27 -#, no-c-format -msgid "Truncated when more/longer than:" -msgstr "Cortados quando forem mais/maiores do que:" - -#. i18n: file configdlgbase.ui line 77 -#: rc.cpp:30 -#, no-c-format -msgid "Precision of percentage values:" -msgstr "Precisão dos valores percentuais:" - -#. i18n: file configdlgbase.ui line 85 -#: rc.cpp:33 -#, no-c-format -msgid "Symbols in tooltips and context menus" -msgstr "Símbolos nas dicas e nos menus de contexto" - -#. i18n: file configdlgbase.ui line 141 -#: rc.cpp:36 -#, no-c-format -msgid "Maximum number of items in lists:" -msgstr "Número máximo de itens nas listas:" - -#. i18n: file configdlgbase.ui line 162 -#: rc.cpp:39 -#, no-c-format -msgid "Cost Item Colors" -msgstr "Cores dos Itens de Custo" - -#. i18n: file configdlgbase.ui line 254 -#: rc.cpp:45 -#, no-c-format -msgid "Object:" -msgstr "Objecto:" - -#. i18n: file configdlgbase.ui line 262 -#: rc.cpp:48 -#, no-c-format -msgid "Class:" -msgstr "Classe:" - -#. i18n: file configdlgbase.ui line 310 -#: rc.cpp:57 -#, no-c-format -msgid "File:" -msgstr "Ficheiro:" - -#. i18n: file configdlgbase.ui line 376 -#: rc.cpp:60 -#, no-c-format -msgid "Annotations" -msgstr "Anotações" - -#. i18n: file configdlgbase.ui line 395 -#: rc.cpp:63 -#, no-c-format -msgid "Context lines in annotations:" -msgstr "Linhas de contexto nas anotações:" - -#. i18n: file configdlgbase.ui line 423 -#: rc.cpp:66 -#, no-c-format -msgid "Source Folders" -msgstr "Pastas de Código" - -#. i18n: file configdlgbase.ui line 454 -#: rc.cpp:69 -#, no-c-format -msgid "Object / Related Source Base" -msgstr "Base do Código Relacionado / do Objecto" - -#. i18n: file configdlgbase.ui line 483 -#: rc.cpp:72 -#, no-c-format -msgid "Add..." -msgstr "Adicionar..." - -#. i18n: file dumpselectionbase.ui line 32 -#: rc.cpp:87 -#, no-c-format -msgid "Target" -msgstr "Alvo" - -#. i18n: file dumpselectionbase.ui line 54 -#: rc.cpp:90 -#, no-c-format -msgid "Time" -msgstr "Tempo" - -#. i18n: file dumpselectionbase.ui line 65 -#: rc.cpp:93 -#, no-c-format -msgid "Path" -msgstr "Localização" - -#. i18n: file dumpselectionbase.ui line 106 -#: rc.cpp:99 -#, no-c-format -msgid "Target command:" -msgstr "Comando alvo:" - -#. i18n: file dumpselectionbase.ui line 119 -#: rc.cpp:102 -#, no-c-format -msgid "Profiler options:" -msgstr "Opções do analisador:" - -#. i18n: file dumpselectionbase.ui line 125 -#: rc.cpp:105 -#, no-c-format -msgid "Option" -msgstr "Opção" - -#. i18n: file dumpselectionbase.ui line 136 -#: rc.cpp:108 rc.cpp:219 -#, no-c-format -msgid "Value" -msgstr "Valor" - -#. i18n: file dumpselectionbase.ui line 147 -#: rc.cpp:111 -#, no-c-format -msgid "Trace" -msgstr "Traceamento" - -#. i18n: file dumpselectionbase.ui line 160 -#: rc.cpp:114 rc.cpp:237 -#, no-c-format -msgid "Jumps" -msgstr "Saltos" - -#. i18n: file dumpselectionbase.ui line 174 -#: rc.cpp:117 -#, no-c-format -msgid "Instructions" -msgstr "Instruções" - -#. i18n: file dumpselectionbase.ui line 189 -#: rc.cpp:120 rc.cpp:240 -#, no-c-format -msgid "Events" -msgstr "Eventos" - -#. i18n: file dumpselectionbase.ui line 202 -#: rc.cpp:123 -#, no-c-format -msgid "Full Cache" -msgstr "Cache Completo" - -#. i18n: file dumpselectionbase.ui line 216 -#: rc.cpp:126 -#, no-c-format -msgid "Custom" -msgstr "Personalizada" - -#. i18n: file dumpselectionbase.ui line 231 -#: rc.cpp:129 -#, no-c-format -msgid "Collect" -msgstr "Recolher" - -#. i18n: file dumpselectionbase.ui line 244 -#: rc.cpp:132 -#, no-c-format -msgid "At Startup" -msgstr "No Início" - -#. i18n: file dumpselectionbase.ui line 258 -#: rc.cpp:135 -#, no-c-format -msgid "While In" -msgstr "Enquanto Em" - -#. i18n: file dumpselectionbase.ui line 273 -#: rc.cpp:138 -#, no-c-format -msgid "Skip" -msgstr "Ignorar" - -#. i18n: file dumpselectionbase.ui line 286 -#: rc.cpp:141 -#, no-c-format -msgid "PLT" -msgstr "PLT" - -#. i18n: file dumpselectionbase.ui line 315 -#: rc.cpp:147 -#, no-c-format -msgid "Dump Profile" -msgstr "Resultado da Análise" - -#. i18n: file dumpselectionbase.ui line 328 -#: rc.cpp:150 -#, no-c-format -msgid "Every BBs" -msgstr "A cada BBs" - -#. i18n: file dumpselectionbase.ui line 342 -#: rc.cpp:153 rc.cpp:162 -#, no-c-format -msgid "On Entering" -msgstr "Ao Entrar" - -#. i18n: file dumpselectionbase.ui line 356 -#: rc.cpp:156 -#, no-c-format -msgid "On Leaving" -msgstr "Ao Sair" - -#. i18n: file dumpselectionbase.ui line 371 -#: rc.cpp:159 -#, no-c-format -msgid "Zero Events" -msgstr "Zero Eventos" - -#. i18n: file dumpselectionbase.ui line 399 -#: rc.cpp:165 -#, no-c-format -msgid "Separate" -msgstr "Separado" - -#. i18n: file dumpselectionbase.ui line 412 -#: rc.cpp:168 -#, no-c-format -msgid "Threads" -msgstr "Threads" - -#. i18n: file dumpselectionbase.ui line 426 -#: rc.cpp:171 -#, no-c-format -msgid "Recursions" -msgstr "Recorrências" - -#. i18n: file dumpselectionbase.ui line 440 -#: rc.cpp:174 -#, no-c-format -msgid "Call Chain" -msgstr "Sequência de Chamadas" - -#. i18n: file dumpselectionbase.ui line 470 -#: rc.cpp:177 -#, no-c-format -msgid "Custom profiler options:" -msgstr "Opções do analisador:" - -#. i18n: file dumpselectionbase.ui line 508 -#: rc.cpp:180 -#, no-c-format -msgid "Run New Profile" -msgstr "Correr uma Nova Análise" - -#. i18n: file dumpselectionbase.ui line 520 -#: rc.cpp:183 -#, no-c-format -msgid "Info" -msgstr "Informação" - -#. i18n: file dumpselectionbase.ui line 531 -#: rc.cpp:186 -#, no-c-format -msgid "Dump reason:" -msgstr "Razão do resultado:" - -#. i18n: file dumpselectionbase.ui line 544 -#: rc.cpp:189 -#, no-c-format -msgid "Event summary:" -msgstr "Sumário do evento:" - -#. i18n: file dumpselectionbase.ui line 561 -#: rc.cpp:195 -#, no-c-format -msgid "Sum" -msgstr "Soma" - -#. i18n: file dumpselectionbase.ui line 579 -#: rc.cpp:198 -#, no-c-format -msgid "Miscellaneous:" -msgstr "Vários:" - -#. i18n: file dumpselectionbase.ui line 617 -#: rc.cpp:201 -#, no-c-format -msgid "Show" -msgstr "Mostrar" - -#. i18n: file dumpselectionbase.ui line 625 -#: rc.cpp:204 -#, no-c-format -msgid "Compare" -msgstr "Comparar" - -#. i18n: file dumpselectionbase.ui line 637 -#: rc.cpp:207 -#, no-c-format -msgid "State" -msgstr "Estado" - -#. i18n: file dumpselectionbase.ui line 656 -#: rc.cpp:210 -#, no-c-format -msgid "Update" -msgstr "'Update'" - -#. i18n: file dumpselectionbase.ui line 664 -#: rc.cpp:213 -#, no-c-format -msgid "Every [s]:" -msgstr "A cada [s]:" - -#. i18n: file dumpselectionbase.ui line 677 -#: rc.cpp:216 -#, no-c-format -msgid "Counter" -msgstr "Contador" - -#. i18n: file dumpselectionbase.ui line 699 -#: rc.cpp:222 -#, no-c-format -msgid "Dumps Done" -msgstr "Resultado Terminado" - -#. i18n: file dumpselectionbase.ui line 713 -#: rc.cpp:225 -#, no-c-format -msgid "Is Collecting" -msgstr "Está a Coligir" - -#. i18n: file dumpselectionbase.ui line 727 -#: rc.cpp:228 -#, no-c-format -msgid "Executed" -msgstr "Executado" - -#. i18n: file dumpselectionbase.ui line 740 -#: rc.cpp:231 -#, no-c-format -msgid "Basic Blocks" -msgstr "Blocos Básicos" - -#. i18n: file dumpselectionbase.ui line 754 -#: callmapview.cpp:63 rc.cpp:234 rc.cpp:339 -#, no-c-format -msgid "Calls" -msgstr "Chamadas" - -#. i18n: file dumpselectionbase.ui line 796 -#: rc.cpp:243 -#, no-c-format -msgid "Ir" -msgstr "Ir" - -#. i18n: file dumpselectionbase.ui line 811 -#: rc.cpp:246 -#, no-c-format -msgid "Distinct" -msgstr "Distinto" - -#. i18n: file dumpselectionbase.ui line 824 -#: configdlg.cpp:58 rc.cpp:249 -#, no-c-format -msgid "ELF Objects" -msgstr "Objectos ELF" - -#. i18n: file dumpselectionbase.ui line 838 -#: rc.cpp:252 -#, no-c-format -msgid "Functions" -msgstr "Funções" - -#. i18n: file dumpselectionbase.ui line 852 -#: rc.cpp:255 -#, no-c-format -msgid "Contexts" -msgstr "Contextos" - -#. i18n: file dumpselectionbase.ui line 890 -#: rc.cpp:258 -#, no-c-format -msgid "Stack trace:" -msgstr "Pilha:" - -#. i18n: file dumpselectionbase.ui line 898 -#: rc.cpp:261 -#, no-c-format -msgid "Sync." -msgstr "Sinc." - -#. i18n: file dumpselectionbase.ui line 950 -#: callmapview.cpp:61 rc.cpp:276 rc.cpp:321 -#, no-c-format -msgid "Location" -msgstr "Localização" - -#. i18n: file dumpselectionbase.ui line 976 -#: rc.cpp:279 -#, no-c-format -msgid "Start" -msgstr "Início" - -#. i18n: file dumpselectionbase.ui line 1001 -#: rc.cpp:282 -#, no-c-format -msgid "Zero" -msgstr "Zero" - -#. i18n: file dumpselectionbase.ui line 1009 -#: rc.cpp:285 -#, no-c-format -msgid "Dump" -msgstr "Resultado" - -#. i18n: file dumpselectionbase.ui line 1021 -#: rc.cpp:288 -#, no-c-format -msgid "Messages" -msgstr "Mensagens" - -#. i18n: file dumpselectionbase.ui line 1045 -#: rc.cpp:291 -#, no-c-format -msgid "Kill Run" -msgstr "Terminar a Execução" - -#. i18n: file functionselectionbase.ui line 41 -#: rc.cpp:300 -#, no-c-format -msgid "&Search:" -msgstr "&Procurar:" - -#. i18n: file functionselectionbase.ui line 73 -#: rc.cpp:306 -#, no-c-format -msgid "Group" -msgstr "Grupo" - -#. i18n: file partselectionbase.ui line 60 -#: rc.cpp:327 -#, no-c-format -msgid "(no trace parts)" -msgstr "(sem partes do traceamento)" - -#. i18n: file stackselectionbase.ui line 16 -#: rc.cpp:330 -#, no-c-format -msgid "Stack Selection" -msgstr "Selecção da Pilha" - -#. i18n: file stackselectionbase.ui line 42 -#: rc.cpp:336 -#, no-c-format -msgid "Cost2" -msgstr "Custo2" - -#: treemap.cpp:1281 -#, c-format -msgid "Text %1" -msgstr "Texto %1" - -#: treemap.cpp:2809 -msgid "Recursive Bisection" -msgstr "Bissecção Recursiva" - -#: treemap.cpp:2810 -msgid "Columns" -msgstr "Colunas" - -#: treemap.cpp:2811 -msgid "Rows" -msgstr "Linhas" - -#: treemap.cpp:2812 -msgid "Always Best" -msgstr "Sempre o Melhor" - -#: treemap.cpp:2813 -msgid "Best" -msgstr "Melhor" - -#: treemap.cpp:2814 -msgid "Alternate (V)" -msgstr "Alternar (V)" - -#: treemap.cpp:2815 -msgid "Alternate (H)" -msgstr "Alternativo (H)" - -#: treemap.cpp:2872 -msgid "Nesting" -msgstr "Aninhamento" - -#: treemap.cpp:2875 -msgid "Correct Borders Only" -msgstr "Apenas Corrigir os Contornos" - -#: treemap.cpp:2877 treemap.cpp:2878 treemap.cpp:2879 treemap.cpp:2880 -#, c-format -msgid "Width %1" -msgstr "Largura %1" - -#: callmapview.cpp:321 treemap.cpp:2889 -msgid "Shading" -msgstr "Sombreado" - -#: treemap.cpp:2902 -msgid "Visible" -msgstr "Visível" - -#: treemap.cpp:2903 -msgid "Take Space From Children" -msgstr "Tirar Espaço aos Filhos" - -#: treemap.cpp:2905 -msgid "Top Left" -msgstr "Topo Esquerda" - -#: treemap.cpp:2906 -msgid "Top Center" -msgstr "Topo Centro" - -#: treemap.cpp:2907 -msgid "Top Right" -msgstr "Topo Direita" - -#: treemap.cpp:2909 -msgid "Bottom Center" -msgstr "Fundo Centro" - -#: treemap.cpp:2910 -msgid "Bottom Right" -msgstr "Fundo Direita" - -#: treemap.cpp:2987 -msgid "No %1 Limit" -msgstr "Sem Limite de %1" - -#: callmapview.cpp:243 treemap.cpp:3039 -msgid "No Area Limit" -msgstr "Sem Limite de Área" - -#: callmapview.cpp:258 treemap.cpp:3045 -msgid "Area of '%1' (%2)" -msgstr "Área de '%1' (%2)" - -#: treemap.cpp:3056 treemap.cpp:3067 -#, c-format -msgid "" -"_n: 1 Pixel\n" -"%n Pixels" -msgstr "" -"%n Ponto\n" -"%n Pontos" - -#: callmapview.cpp:264 treemap.cpp:3071 -msgid "Double Area Limit (to %1)" -msgstr "Limite Duplo da Área (para %1)" - -#: treemap.cpp:3073 -msgid "Halve Area Limit (to %1)" -msgstr "Metade do Limite da Área (para %1)" - -#: callmapview.cpp:187 treemap.cpp:3101 -msgid "No Depth Limit" -msgstr "Sem Limite de Profundidade" - -#: callmapview.cpp:198 treemap.cpp:3107 -msgid "Depth of '%1' (%2)" -msgstr "Profundidade de '%1' (%2)" - -#: treemap.cpp:3118 -#, c-format -msgid "Depth %1" -msgstr "Profundidade %1" - -#: treemap.cpp:3122 -msgid "Decrement (to %1)" -msgstr "Decrementar (para %1)" - -#: treemap.cpp:3124 -msgid "Increment (to %1)" -msgstr "Incrementar (para %1)" - -#: callmapview.cpp:98 -msgid "" -"Caller Map" -"

      This graph shows the nested hierarchy of all callers of the current " -"activated function. Each colored rectangle represents a function; its size " -"tries to be proportional to the cost spent therein while the active function is " -"running (however, there are drawing constrains).

      " -msgstr "" -"Mapa dos Chamadores" -"

      Este gráfico mostra a hierarquia aninhada de todas as funções que chamam a " -"função activada no momento. Cada rectângulo colorido representa uma função; o " -"seu tamanho tenta ser proporcional ao custo dispendido enquanto a função actual " -"está a correr (todavia, existem restrições no desenho).

      " - -#: callmapview.cpp:105 -msgid "" -"Call Map" -"

      This graph shows the nested hierarchy of all callees of the current " -"activated function. Each colored rectangle represents a function; its size " -"tries to be proportional to the cost spent therein while the active function is " -"running (however, there are drawing constrains).

      " -msgstr "" -"Mapa dos Chamados" -"

      Este gráfico mostra a hierarquia aninhada de todas as funções que a função " -"activada no momento chama. Cada rectângulo colorido representa uma função; o " -"seu tamanho tenta ser proporcional ao custo dispendido enquanto a função actual " -"está a correr (todavia, existem restrições no desenho).

      " - -#: callmapview.cpp:113 -msgid "" -"

      Appearance options can be found in the in the context menu. To get exact " -"size proportions, choose 'Hide incorrect borders'. As this mode can be " -"very time consuming, you may want to limit the maximum drawn nesting level " -"before. 'Best' determinates the split direction for children from the aspect " -"ratio of the parent. 'Always Best' decides on remaining space for each sibling. " -"'Ignore Proportions' takes space for function name drawing before " -"drawing children. Note that size proportions can get heavily wrong.

      " -"

      This is a TreeMap widget. Keyboard navigation is available with the " -"left/right arrow keys for traversing siblings, and up/down arrow keys to go a " -"nesting level up/down. Return activates the current item.

      " -msgstr "" -"

      As opções da aparência poderão ser encontradas no menu de contexto. Para " -"obter as proporções exactas de tamanhos, escolha o 'Esconder os contornos " -"incorrectos'. Dado que este modo pode consumir bastante " -"tempo, você poderá querer limita o nível de aninhamento máximo antes. O " -"'Melhor' determina a direcção da divisão para os filhos com base nas proporções " -"do pai. O 'Sempre o Melhor' decide com base no espaço restante para cada item " -"ao mesmo nível. O 'Ignorar as Proporções' ocupa espaço para o nome das funções " -"antes de desenhar os filhos. Lembre-se que as proporções de tamanho " -"podem ficar muito erradas.

      " -"

      Este é um item em Árvore. A navegação com o teclado está disponível " -"com as teclas de cursores esquerda/direita para percorrer os itens do mesmo " -"nível, enquanto que os cursores para cima/baixa sobem ou descem, " -"respectivamente, um nível de aninhamento. O Return " -"activa o item actual.

      " - -#: callmapview.cpp:167 -msgid "Go To" -msgstr "Ir Para" - -#: callmapview.cpp:184 -msgid "Stop at Depth" -msgstr "Parar na Profundidade" - -#: callmapview.cpp:190 -msgid "Depth 10" -msgstr "Profundidade 10" - -#: callmapview.cpp:192 -msgid "Depth 15" -msgstr "Profundidade 15" - -#: callmapview.cpp:194 -msgid "Depth 20" -msgstr "Profundidade 20" - -#: callmapview.cpp:204 -msgid "Decrement Depth (to %1)" -msgstr "Decrementar a Profundidade (para %1)" - -#: callmapview.cpp:205 -msgid "Increment Depth (to %1)" -msgstr "Incrementar a Profundidade (para %1)" - -#: callmapview.cpp:209 -msgid "Stop at Function" -msgstr "Parar na Função" - -#: callmapview.cpp:210 -msgid "No Function Limit" -msgstr "Sem Limite de Função" - -#: callmapview.cpp:240 -msgid "Stop at Area" -msgstr "Parar na Área" - -#: callmapview.cpp:246 -msgid "50 Pixels" -msgstr "50 Pontos" - -#: callmapview.cpp:248 -msgid "100 Pixels" -msgstr "100 Pontos" - -#: callmapview.cpp:250 -msgid "200 Pixels" -msgstr "200 Pontos" - -#: callmapview.cpp:252 -msgid "500 Pixels" -msgstr "500 Pontos" - -#: callmapview.cpp:266 -msgid "Half Area Limit (to %1)" -msgstr "Dividir ao Meio o Limite da Área (para %1)" - -#: callmapview.cpp:273 -msgid "Visualisation" -msgstr "Visualização" - -#: callmapview.cpp:277 -msgid "Split Direction" -msgstr "Direcção de Divisão" - -#: callmapview.cpp:279 -msgid "Skip Incorrect Borders" -msgstr "Ignorar as Margens Incorrectas" - -#: callmapview.cpp:284 -msgid "Border Width" -msgstr "Espessura do Contorno" - -#: callmapview.cpp:285 -msgid "Border 0" -msgstr "Margem 0" - -#: callmapview.cpp:288 -msgid "Border 1" -msgstr "Margem 1" - -#: callmapview.cpp:290 -msgid "Border 2" -msgstr "Margem 2" - -#: callmapview.cpp:292 -msgid "Border 3" -msgstr "Margem 3" - -#: callmapview.cpp:297 -msgid "Draw Symbol Names" -msgstr "Desenhar os Nomes dos Símbolos" - -#: callmapview.cpp:298 -msgid "Draw Cost" -msgstr "Desenhar o Custo" - -#: callmapview.cpp:299 -msgid "Draw Location" -msgstr "Desenhar a Localização" - -#: callmapview.cpp:300 -msgid "Draw Calls" -msgstr "Desenhar as Chamadas" - -#: callmapview.cpp:431 -msgid "Call Map: Current is '%1'" -msgstr "Mapa de Chamadas: O actual é o '%1'" - -#: callmapview.cpp:599 -msgid "(no function)" -msgstr "(sem função)" - -#: callmapview.cpp:741 callmapview.cpp:858 -msgid "(no call)" -msgstr "(sem chamada)" - -#: cachegrindloader.cpp:141 -msgid "Import filter for Cachegrind/Callgrind generated profile data files" -msgstr "" -"Filtro de importação para os ficheiros de análise gerados pelo " -"Cachegrind/Callgrind" - -#: cachegrindloader.cpp:738 -#, c-format -msgid "Loading %1" -msgstr "A carregar o %1" - -#: callview.cpp:47 callview.cpp:51 -msgid "Count" -msgstr "Quantidade" - -#: callview.cpp:85 -msgid "" -"List of direct Callers" -"

      This list shows all functions calling the current selected one directly, " -"together with a call count and the cost spent in the current selected function " -"while being called from the function from the list.

      " -"

      An icon instead of an inclusive cost specifies that this is a call inside of " -"a recursive cycle. An inclusive cost makes no sense here.

      " -"

      Selecting a function makes it the current selected one of this information " -"panel. If there are two panels (Split mode), the function of the other panel is " -"changed instead.

      " -msgstr "" -"Lista dos Chamadores Directos" -"

      Esta lista mostra todas as funções que invocam directamente a função " -"seleccionada no momento, em conjunto com um número de chamadas e o custo " -"(acumulado) dispendido na função seleccionada enquanto é chamada pela função da " -"lista.

      " -"

      Se aparecer um ícone em vez do custo acumulado, significa que esta é uma " -"chamada dentro de um ciclo recursivo. Neste caso, não faz sentido um custo " -"acumulado.

      " -"

      Se seleccionar uma função, torna-a a actual neste painel de informações. Se " -"existirem dois painéis (modo dividido), é alterada a função do outro painel.

      " - -#: callview.cpp:98 -msgid "" -"List of direct Callees" -"

      This list shows all functions called by the current selected one directly, " -"together with a call count and the cost spent in this function while being " -"called from the selected function.

      " -"

      Selecting a function makes it the current selected one of this information " -"panel. If there are two panels (Split mode), the function of the other panel is " -"changed instead.

      " -msgstr "" -"Lista dos Chamados Directos" -"

      Esta lista mostra todas as funções chamadas pela função seleccionada no " -"momento, em conjunto com um número de chamadas e o custo (acumulado) dispendido " -"nesta função enquanto é chamada pela função seleccionada.

      " -"

      Se seleccionar uma função, torna-a a actual neste painel de informações. Se " -"existirem dois painéis (modo dividido), é alterada a função do outro painel.

      " - -#: costtypeitem.cpp:56 -msgid "Unknown Type" -msgstr "Tipo Desconhecido" - -#: tips.cpp:3 -msgid "" -"

      ...that the What's This? help for every GUI widget\n" -"in KCachegrind contains detailed usage information for this widget?\n" -"It is highly recommended to read at least these help texts on first\n" -"use. Request What's This? help by pressing\n" -"Shift+F1 and clicking on the widget.

      \n" -msgstr "" -"

      ...a ajuda O Que É Isto? para cada item da interface do\n" -"KCachegrind contém dados de utilização detalhados sobre este item?\n" -"Recomenda-se que leia, pelo menos, estes textos na primeira utilização.\n" -"Peça a ajuda O Que É Isto? se carregar em Shift-F1 e depois no\n" -"elemento gráfico.

      \n" - -#: tips.cpp:12 -msgid "" -"

      ...that you can get profile information at instruction level\n" -"with Calltree when you provide the option --dump-instr=yes?\n" -"Use the Assembler View for the instruction annotations.\n" -"

      \n" -msgstr "" -"

      ...pode obter informações de análise ao nível da instrução com a\n" -"Árvore de Chamadas quando passa a opção --dump-instr=yes?\n" -"Utilize a Janela do 'Assembler' para as anotações das instruções.\n" -"

      \n" - -#: tips.cpp:20 -msgid "" -"

      ...that you can use Alt-Left/Right keys of your keyboard to go\n" -"back/forward in the active object history ?

      \n" -msgstr "" -"

      ...pode usar as teclas Alt-Esquerda/Direita do seu teclado para \n" -"recuar/avançar no histórico do objecto activo ?

      \n" - -#: tips.cpp:26 -msgid "" -"

      ...that you can navigate in the Callee/Caller Map View using\n" -"arrow keys? Use Left/Right to change to siblings of the current\n" -"item; use Up/Down to go one nesting level up/down. To select\n" -"the current item, press Space, and to activate it, press Return.\n" -"

      \n" -msgstr "" -"

      ...pode navegar no Mapa de Chamadores/Chamados usando as teclas\n" -"dos cursores? Use a Esquerda/Direita para mudar para os itens no mesmo\n" -"nível do actual; use o Cima/Baixo para subir/descer um nível de aninhamento.\n" -"Para seleccionar o item actual, carregue em Espaço, ou em Return para\n" -"o activar.\n" -"

      \n" - -#: tips.cpp:35 -msgid "" -"

      ...that you can navigate in the Call Graph View using\n" -"arrow keys? Use Up/Down to go one calling level up/down, alternating\n" -"between calls and functions. Use Left/Right to change to siblings of a current\n" -"selected call. To activate the current item, press Return.\n" -"

      \n" -msgstr "" -"

      ...pode navegar no Grafo de Chamadas usando as teclas\n" -"dos cursores? Use a Esquerda/Direita para mudar para as chamadas/funções\n" -"no mesmo nível da chamada actual; use o Cima/Baixo para subir/descer\n" -"um nível de chamada. Para seleccionar o item actual, carregue em Espaço,\n" -"ou em Return para o activar.\n" -"

      \n" - -#: tips.cpp:44 -msgid "" -"

      ...that you can rapidly locate a function by entering part of its\n" -"name (case-insensitive) into the edit line of the toolbar\n" -"and hit return?

      \n" -msgstr "" -"

      ...pode localizar rapidamente uma função se indicar parte do seu nome\n" -"(sem distinção de maiúsculas ou minúsculas) no campo de edição da barra\n" -"de ferramentas e carregar em RETURN?

      \n" - -#: tips.cpp:51 -msgid "" -"

      ...that you can assign custom colors to \n" -"ELF objects/C++ Classes/Source Files for graph coloring\n" -"in Settings->Configure KCachegrind...?

      \n" -msgstr "" -"

      ...pode atribuir cores personalizadas aos\n" -"objectos ELF/Classes de C++/Ficheiros de Código para a coloração do gráfico\n" -"na opção Configuração->Configurar o KCachegrind...?

      \n" - -#: tips.cpp:58 -msgid "" -"

      ...that you can see if debug info is available for a selected \n" -"function by looking at the location label in the Info tab or\n" -"the source listing header in the source tab?

      \n" -"

      There must be the name of the source file (with extension).\n" -"If KCachegrind still doesn't show the source, make sure that you\n" -"have added the directory of the source file to the\n" -"Source Directories list in the configuration.\n" -msgstr "" -"

      ...pode ver se a informação de depuração está disponível para\n" -"uma dada função se ver o texto da localização na página Informação\n" -"ou no cabeçalho da listagem de código na página do código?

      \n" -"

      Esta deverá ser o nome do ficheiro de código (com a extensão).\n" -"Se o KCachegrind mesmo assim não mostrar o código, certifique-se que\n" -"adicionou a directoria do ficheiro de código à lista das \n" -"Directorias de Código na configuração.\n" - -#: tips.cpp:69 -msgid "" -"

      ...that you can configure whether KCachgrind should\n" -"show absolute event counts or relative ones (percentage display)?

      \n" -msgstr "" -"

      ...pode configurar se o KCachegrind deve mostrar as quantidades\n" -"absolutas dos eventos ou as relativas (versão percentual)?

      \n" - -#: tips.cpp:75 -msgid "" -"

      ...that you can configure the maximum number of items\n" -"for all function lists in KCachegrind? Limiting the number\n" -"of items is done to get a fast reacting GUI. The last item in\n" -"the list will show you the number of skipped functions, together\n" -"with a cost condition for these skipped functions.

      \n" -"

      To activate a function with small costs, search for it and select\n" -"it in the flat profile. Selecting functions with small cost will\n" -"temporarily add them to the flat profile list.

      \n" -msgstr "" -"

      ...pode configurar o número máximo de itens para todas as listas\n" -"de funções do KCachegrind? A limitação do número de itens é feita para\n" -"ficar com a interface mais rápida. O último item da lista mostrar-lhe-á\n" -"o número de funções ignoradas, em conjunto com uma condição de custo para\n" -"essas funções ignoradas.

      \n" -"

      Para activar uma função com custos baixos, procure por ela e seleccione-a\n" -"na análise simples. Se seleccionar as funções com custo baixo adicioná-las-á\n" -"à lista das análises simples temporariamente.

      \n" - -#: tips.cpp:87 -msgid "" -"

      ...that the Coverage tab - in contrast to the Call Lists tab -\n" -"shows all functions that are calling the selected function\n" -"(upper part) / are called by the selected function (bottom part),\n" -"no matter how many function are between them on the stack?

      \n" -"

      Examples:

      \n" -"

      An entry in the upper list for function foo1() with a value of 50%\n" -"with function bar() selected means that 50% of all the cost of function\n" -"bar() happened while called from function foo1().

      \n" -"

      An entry in the bottom list for function foo2() with a value of 50%\n" -"with function bar() selected means that 50% of all the cost of function\n" -"bar() happened while calling foo2() from bar().

      \n" -msgstr "" -"

      ...a página de Cobertura - em contraste com a página de Listas de \n" -"Chamadas - mostra todas as funções que estão a chamar a função\n" -"seleccionada (parte superior) ou que são chamadas pela mesma função\n" -"(parte inferior), independentemente de quantas funções existem entre\n" -"elas na pilha?

      \n" -"

      Exemplos:

      \n" -"

      Um item na lista superior para a função teste1() com um valor de 50%\n" -"com a função testada() seleccionada, significa que 50% do custo total da\n" -"função testada() ocorreu enquanto foi chamada pela função teste1().

      \n" -"

      Um item na lista inferior para a função teste2() com um valor de 50%\n" -"com a função testada() seleccionada, significa que 50% do custo total da\n" -"função testada() ocorreu enquanto chamou a teste2() a partir de si.

      \n" - -#: tips.cpp:102 -msgid "" -"

      ...that waiting for the tool tip inside of a tree map\n" -"shows the list of names of the nested rectangles the mouse\n" -"pointer is over?

      \n" -"

      Items from this list can be selected by pressing the right\n" -"mouse button.

      \n" -msgstr "" -"

      ...se esperar pela dica, dentro de um mapa da árvore mostra\n" -"a lista dos nomes nos rectângulos aninhados em que o cursor do\n" -"rato se encontra?

      \n" -"

      Os itens desta lista podem ser seleccionados se carregar com\n" -"o botão direito do rato.

      \n" - -#: tips.cpp:111 -msgid "" -"

      ...that you can constrain the cost counts shown to only a\n" -"few parts of the whole trace by selecting these parts in the\n" -"\"Trace Selection\" Dockable?

      \n" -"

      To generate multiple parts in a profiling run with\n" -"cachegrind, use e.g. option --cachedumps=xxx for parts\n" -"of a length of xxx basic blocks (A basic block is a run\n" -"of not-branching assembler statements inside of your program\n" -"code).

      \n" -msgstr "" -"

      ...você pode restringir as quantidades de custos mostradas apenas\n" -"a algumas partes do traceamento completo ao seleccionar essas partes\n" -"na área de \"Selecção do Traceamento\"?

      \n" -"

      Para gerar várias partes na execução de uma análise com o \n" -"'cachegrind', use p.ex. a opção --cachedumps=xxx para as partes\n" -"com um número de xxxx blocos básicos (Um bloco básico é a execução \n" -"de um conjunto de instruções de Assembly sem saltos, dentro do código\n" -"do seu programa).

      \n" - -#: configdlg.cpp:60 -msgid "Source Files" -msgstr "Ficheiros de Código" - -#: configdlg.cpp:61 -msgid "C++ Classes" -msgstr "Classes C++" - -#: configdlg.cpp:62 -msgid "Function (no Grouping)" -msgstr "Função (sem agrupamento)" - -#: configdlg.cpp:157 configdlg.cpp:350 configdlg.cpp:371 -msgid "(always)" -msgstr "(sempre)" - -#: configdlg.cpp:210 -msgid "KCachegrind Configuration" -msgstr "Configuração da KCachegrind" - -#: configdlg.cpp:211 -msgid "" -"The Maximum Number of List Items should be below 500.The previous set value " -"(%1) will still be used." -msgstr "" -"O Número Máximo de Itens da Lista deverá ser menor que 500. O valor anterior " -"(%1) continuará a ser usado." - -#: configdlg.cpp:384 -msgid "Choose Source Folder" -msgstr "Escolha a Pasta com Código" - -#: partgraph.cpp:167 -#, c-format -msgid "Profile Part %1" -msgstr "Parte da Análise %1" - -#: partgraph.cpp:226 -msgid "(no trace)" -msgstr "(sem traceamento)" - -#: partgraph.cpp:229 -msgid "(no part)" -msgstr "(sem parte)" - -#: partview.cpp:51 -msgid "Comment" -msgstr "Comentário" - -#: partview.cpp:73 -msgid "" -"Trace Part List" -"

      This list shows all trace parts of the loaded trace. For each part, the " -"self/inclusive cost of the current selected function, spent in the part, is " -"shown; percentage costs are always relative to the total cost " -"of the part (not to the whole trace as in the Trace Part Overview). Also " -"shown are the calls happening to/from the current function inside of the trace " -"part.

      " -"

      By choosing one or more trace parts from the list, the costs shown all over " -"KCachegrind will only be the ones spent in the selected part(s). If no list " -"selection is shown, in fact all trace parts are selected implicitly.

      " -"

      This is a multi-selection list. You can select ranges by dragging the mouse " -"or use SHIFT/CTRL modifiers. Selection/Deselection of trace parts can also be " -"done by using the Trace Part Overview Dockable. This one also supports multiple " -"selection.

      " -"

      Note that the list is hidden if only one trace part is loaded.

      " -msgstr "" -"Lista das Partes do Traceamento" -"

      Esta lista mostra todas as partes do traceamento carregado. Para cada parte " -"é mostrado o custo próprio/acumulado da função seleccionada no momento " -"dispendido na parte; os custos percentuais são sempre relativos ao custo total " -"da parte (não é em relação ao traceamento completo na Vista Geral da " -"Parte do Traceamento). Também são apresentadas as chamadas que acontecem " -"de/para a função actual, dentro da parte do traceamento.

      " -"

      Ao seleccionar uma ou mais partes do traceamento na lista, os custos " -"mostrados no KCachegrind serão apenas os dispendidos nas partes seleccionadas. " -"Se não for mostrada nenhuma selecção da lista, ficam seleccionadas " -"implicitamente todas as partes do traceamento.

      " -"

      Esta lista de selecção multiplica. Você poderá seleccionar intervalos se " -"arrastar o rato ou usar os modificadores SHIFT/CTRL. A selecção/desactivação " -"das partes do traceamento também poderá ser feita ao usar a área da Vista Geral " -"das Partes do Traceamento. Esta também suporta selecções múltiplas.

      " -"

      Lembre-se que a lista fica escondida se só for carregada uma parte do " -"traceamento.

      " - -#: partview.cpp:106 -msgid "Select '%1'" -msgstr "Seleccionar '%1'" - -#: partview.cpp:107 -msgid "Hide '%1'" -msgstr "Esconder '%1'" - -#: partview.cpp:111 -msgid "Hide Selected" -msgstr "Esconder os Seleccionados" - -#: partview.cpp:112 -msgid "Show All" -msgstr "Mostrar Tudo" diff --git a/tde-i18n-pt/messages/tdesdk/tdecachegrind.po b/tde-i18n-pt/messages/tdesdk/tdecachegrind.po new file mode 100644 index 00000000000..ac1c8d1a487 --- /dev/null +++ b/tde-i18n-pt/messages/tdesdk/tdecachegrind.po @@ -0,0 +1,2963 @@ +msgid "" +msgstr "" +"Project-Id-Version: tdecachegrind\n" +"POT-Creation-Date: 2008-07-08 01:21+0200\n" +"PO-Revision-Date: 2006-07-25 18:14+0100\n" +"Last-Translator: Pedro Morais \n" +"Language-Team: pt \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POFile-IgnoreConsistency: Short\n" +"X-POFile-IgnoreConsistency: Update\n" +"X-POFile-IgnoreConsistency: Threads\n" +"X-POFile-SpellExtra: dump instr GraphViz yes Incl KCachegrind Assembly\n" +"X-POFile-SpellExtra: Cachegrind Callgrind cachedumps main xxxx cachegrind\n" +"X-POFile-SpellExtra: xxx ELF dot RETURN Thread CTRL SHIFT Return máx\n" +"X-POFile-IgnoreConsistency: Source File\n" +"X-POFile-IgnoreConsistency: Comment\n" +"X-POFile-SpellExtra: assembler infinitum ad objdump cmd Hex Recorrências\n" +"X-POFile-SpellExtra: Update jump callgrind Threads PLT Group BBs Sinc\n" +"X-POFile-SpellExtra: binutils out\n" + +#: instritem.cpp:106 sourceitem.cpp:86 +msgid "Active call to '%1'" +msgstr "Chamada activa a '%1'" + +#: instritem.cpp:108 sourceitem.cpp:88 +msgid "" +"_n: %n call to '%1'\n" +"%n calls to '%1'" +msgstr "" +"%n chamada a '%1'\n" +"%n chamadas a '%1'" + +#: instritem.cpp:137 +msgid "Jump %1 of %2 times to 0x%3" +msgstr "Salta %1 de %2 vezes para 0x%3" + +#: instritem.cpp:142 +msgid "Jump %1 times to 0x%2" +msgstr "Salta %1 vezes para 0x%2" + +#: instritem.cpp:185 sourceitem.cpp:169 +msgid "(cycle)" +msgstr "(ciclo)" + +#: tracedata.cpp:157 +msgid "Abstract Item" +msgstr "Item Abstracto" + +#: tracedata.cpp:158 +msgid "Cost Item" +msgstr "Item de Custo" + +#: tracedata.cpp:159 +msgid "Part Source Line" +msgstr "Linha de Código da Parte" + +#: tracedata.cpp:160 +msgid "Source Line" +msgstr "Linha de Código" + +#: tracedata.cpp:161 +msgid "Part Line Call" +msgstr "Linha da Chamada da Parte" + +#: tracedata.cpp:162 +msgid "Line Call" +msgstr "Linha da Chamada" + +#: tracedata.cpp:163 +msgid "Part Jump" +msgstr "Salto para a Parte" + +#: tracedata.cpp:164 +msgid "Jump" +msgstr "Salto" + +#: tracedata.cpp:165 +msgid "Part Instruction" +msgstr "Instrução da Parte" + +#: tracedata.cpp:166 +msgid "Instruction" +msgstr "Instrução" + +#: tracedata.cpp:167 +msgid "Part Instruction Jump" +msgstr "Salto da Instrução da Parte" + +#: tracedata.cpp:168 +msgid "Instruction Jump" +msgstr "Salto da Instrução" + +#: tracedata.cpp:169 +msgid "Part Instruction Call" +msgstr "Chamada da Instrução da Parte" + +#: tracedata.cpp:170 +msgid "Instruction Call" +msgstr "Chamada de Instrução" + +#: tracedata.cpp:171 +msgid "Part Call" +msgstr "Chamada da Parte" + +#: tracedata.cpp:172 +msgid "Call" +msgstr "Chamada" + +#: tracedata.cpp:173 +msgid "Part Function" +msgstr "Função da Parte" + +#: tracedata.cpp:174 +msgid "Function Source File" +msgstr "Ficheiro de Código da Função" + +#. i18n: file dumpselectionbase.ui line 300 +#: rc.cpp:144 rc.cpp:273 rc.cpp:318 rc.cpp:342 tracedata.cpp:175 +#, no-c-format +msgid "Function" +msgstr "Função" + +#: tracedata.cpp:176 +msgid "Function Cycle" +msgstr "Ciclo de Função" + +#: tracedata.cpp:177 +msgid "Part Class" +msgstr "Classe da Parte" + +#: tracedata.cpp:178 +msgid "Class" +msgstr "Classe" + +#: tracedata.cpp:179 +msgid "Part Source File" +msgstr "Ficheiro de Código da Parte" + +#: tracedata.cpp:180 +msgid "Source File" +msgstr "Ficheiro de Código" + +#: tracedata.cpp:181 +msgid "Part ELF Object" +msgstr "Objecto ELF da Parte" + +#: tracedata.cpp:182 +msgid "ELF Object" +msgstr "Objecto ELF" + +#: partview.cpp:46 tracedata.cpp:183 +msgid "Profile Part" +msgstr "Parte de Análise" + +#: tracedata.cpp:184 +msgid "Program Trace" +msgstr "Traceamento do Programa" + +#: tracedata.cpp:245 +msgid "%1 from %2" +msgstr "%1 de %2" + +#: partgraph.cpp:423 tracedata.cpp:253 tracedata.cpp:258 tracedata.cpp:2828 +#: tracedata.cpp:3245 tracedata.cpp:3331 tracedata.cpp:4169 tracedata.cpp:4177 +#: tracedata.cpp:4242 +msgid "(unknown)" +msgstr "(desconhecido)" + +#: tracedata.cpp:2587 +msgid "(no caller)" +msgstr "(sem chamador)" + +#: tracedata.cpp:2594 tracedata.cpp:2613 +msgid "%1 via %2" +msgstr "%1 através de %2" + +#: tracedata.cpp:2603 +msgid "(no callee)" +msgstr "(sem chamado)" + +#: tracedata.cpp:4471 +msgid "(not found)" +msgstr "(não encontrado)" + +#: tracedata.cpp:5021 +msgid "Recalculating Function Cycles..." +msgstr "A Recalcular os Ciclos de Funções..." + +#. i18n: file dumpselectionbase.ui line 550 +#: callmapview.cpp:59 partselection.cpp:58 rc.cpp:192 +#, no-c-format +msgid "Name" +msgstr "Nome" + +#. i18n: file stackselectionbase.ui line 31 +#: callmapview.cpp:60 callview.cpp:44 instrview.cpp:126 partselection.cpp:59 +#: rc.cpp:333 sourceview.cpp:51 +#, no-c-format +msgid "Cost" +msgstr "Custo" + +#: partselection.cpp:151 +msgid "Profile Part Overview: Current is '%1'" +msgstr "Vista Geral da Parte da Análise: A actual é a '%1'" + +#: partselection.cpp:287 +msgid "Deselect" +msgstr "Deseleccionar" + +#: partselection.cpp:287 partselection.cpp:311 +msgid "Select" +msgstr "Seleccionar" + +#: partselection.cpp:292 +msgid "Select All Parts" +msgstr "Seleccionar Todas as Partes" + +#: partselection.cpp:294 +msgid "Visible Parts" +msgstr "Partes Visíveis" + +#: partselection.cpp:296 +msgid "Hide Selected Parts" +msgstr "Esconder a Parte Seleccionada" + +#: partselection.cpp:297 +msgid "Unhide Hidden Parts" +msgstr "Mostrar as Partes Escondidas" + +#: partselection.cpp:302 toplevel.cpp:1692 +msgid "Go Back" +msgstr "Recuar" + +#: callgraphview.cpp:2571 partselection.cpp:320 +msgid "Visualization" +msgstr "Visualização" + +#: partselection.cpp:322 +msgid "Partitioning Mode" +msgstr "Modo de Partição" + +#: partselection.cpp:323 +msgid "Diagram Mode" +msgstr "Modo de Diagrama" + +#: partselection.cpp:324 +msgid "Zoom Function" +msgstr "Ampliar para a Função" + +#: partselection.cpp:325 +msgid "Show Direct Calls" +msgstr "Mostrar as Chamadas Directas" + +#: partselection.cpp:326 +msgid "Increment Shown Call Levels" +msgstr "Incrementar os Níveis de Chamada Mostrados" + +#: partselection.cpp:340 +msgid "Draw Names" +msgstr "Desenhar Nomes" + +#: partselection.cpp:341 +msgid "Draw Costs" +msgstr "Desenhar Custos" + +#: callmapview.cpp:303 partselection.cpp:342 +msgid "Ignore Proportions" +msgstr "Ignorar as Proporções" + +#: partselection.cpp:343 +msgid "Draw Frames" +msgstr "Desenhar Molduras" + +#: callmapview.cpp:304 partselection.cpp:344 treemap.cpp:2887 +msgid "Allow Rotation" +msgstr "Permitir a Rotação" + +#: partselection.cpp:359 +msgid "Hide Info" +msgstr "Esconder Informações" + +#: partselection.cpp:361 +msgid "Show Info" +msgstr "Mostrar as Informações" + +#: partselection.cpp:541 +msgid "(no trace loaded)" +msgstr "(nenhum traceamento carregado)" + +#: costtypeview.cpp:42 +msgid "Event Type" +msgstr "Tipo de Evento" + +#. i18n: file dumpselectionbase.ui line 917 +#: costtypeview.cpp:43 coverageview.cpp:46 partview.cpp:47 rc.cpp:267 +#: rc.cpp:309 +#, no-c-format +msgid "Incl." +msgstr "Incl." + +#. i18n: file functionselectionbase.ui line 62 +#: costtypeview.cpp:44 coverageview.cpp:53 partview.cpp:48 rc.cpp:303 +#: rc.cpp:312 +#, no-c-format +msgid "Self" +msgstr "Próprio" + +#: costtypeview.cpp:45 +msgid "Short" +msgstr "Abreviado" + +#: costtypeview.cpp:47 +msgid "Formula" +msgstr "Fórmula" + +#: costtypeview.cpp:81 +msgid "" +"Cost Types List" +"

      This list shows all cost types available and what the self/inclusive cost of " +"the current selected function is for that cost type.

      " +"

      By choosing a cost type from the list, you change the cost type of costs " +"shown all over KCachegrind to be the selected one.

      " +msgstr "" +"Lista dos Tipos de Custo" +"

      Esta lista mostra todos os tipos de custo disponíveis e qual é o custo " +"próprio/acumulado da função seleccionada no momento para esse tipo de custo.

      " +"

      Se seleccionar um tipo de custo na lista, você pode mudar o tipo dos custos " +"mostrados em todo o KCachegrind como sendo o seleccionado.

      " + +#: costtypeview.cpp:98 +msgid "Set Secondary Event Type" +msgstr "Escolher o Tipo Secundário de Eventos" + +#: costtypeview.cpp:100 +msgid "Remove Secondary Event Type" +msgstr "Remover o Tipo Secundário de Eventos" + +#: costtypeview.cpp:105 +msgid "Edit Long Name" +msgstr "Editar o Nome Longo" + +#: costtypeview.cpp:106 +msgid "Edit Short Name" +msgstr "Editar o Nome Curto" + +#: costtypeview.cpp:107 +msgid "Edit Formula" +msgstr "Editar a Formula" + +#: costtypeview.cpp:115 +msgid "New Cost Type ..." +msgstr "Novo Tipo de Custo..." + +#: costtypeview.cpp:149 costtypeview.cpp:154 +#, c-format +msgid "New%1" +msgstr "Novo%1" + +#: costtypeview.cpp:155 +#, c-format +msgid "New Cost Type %1" +msgstr "Novo Tipo de Custo %1" + +#: sourceitem.cpp:125 +msgid "Jump %1 of %2 times to %3" +msgstr "Salta %1 de %2 vezes para %3" + +#: sourceitem.cpp:130 +msgid "Jump %1 times to %2" +msgstr "Salta %1 vezes para %2" + +#: costlistitem.cpp:60 +#, c-format +msgid "" +"_n: (%n item skipped)\n" +"(%n items skipped)" +msgstr "" +"(%n item ignorado)\n" +"(%n itens ignorados)" + +#: traceitemview.cpp:53 +msgid "No description available" +msgstr "A descrição não está disponível" + +#. i18n: file partselectionbase.ui line 16 +#: rc.cpp:324 toplevel.cpp:281 toplevel.cpp:581 +#, no-c-format +msgid "Parts Overview" +msgstr "Vista Geral das Partes" + +#: toplevel.cpp:288 +msgid "" +"The Parts Overview" +"

      A trace consists of multiple trace parts when there are several profile data " +"files from one profile run. The Trace Part Overview dockable shows these, " +"horizontally ordered in execution time; the rectangle sizes are proportional to " +"the total cost spent in the parts. You can select one or several parts to " +"constrain all costs shown to these parts only.

      " +"

      The parts are further subdivided: there is a partitioning and an callee " +"split mode: " +"

        " +"
      • Partitioning: You see the partitioning into groups for a trace part, " +"according to the group type selected. E.g. if ELF object groups are selected, " +"you see colored rectangles for each used ELF object (shared library or " +"executable), sized according to the cost spent therein.
      • " +"
      • Callee: A rectangle showing the inclusive cost of the current selected " +"function in the trace part is shown. This is split up into smaller rectangles " +"to show the costs of its callees.

      " +msgstr "" +"Vista Geral da Parte do Análise" +"

      Uma análise consiste em várias partes ou componentes, quando existem vários " +"ficheiros de análise resultantes da execução de uma análise. A área de Vista " +"Geral da Parte da Análise mostra-as, ordenadas na horizontal pelo tempo de " +"execução; os tamanhos dos rectângulo são proporcionais ao custo total gasto nas " +"partes. Você poderá seleccionar uma ou várias partes para restringir todos os " +"custos mostrados apenas a essas parte.

      " +"

      As partes são, por sua vez, sub-divididas: existe um modo de divisão por " +"partição e por chamada: " +"

        " +"
      • Partição: Você vê a partição em grupos para uma parte de análise, de acordo " +"com o tipo de grupo seleccionado. P.ex., se forem seleccionados os grupos de " +"objectos ELF, você vê rectângulos coloridos por cada objecto do ELF usado (uma " +"biblioteca dinâmica ou um executável), dimensionados de acordo com o custo " +"dispendido nestes
      • " +"
      • Chamada: É mostrado um rectângulo que apresenta o custo acumulado da função " +"seleccionada no momento. Por sua vez, é dividido para mostrar os custos " +"acumulados das funções que esta chama.

      " + +#: toplevel.cpp:318 +msgid "Top Cost Call Stack" +msgstr "Topo de Custo da Pilha de Chamadas" + +#: toplevel.cpp:320 +msgid "" +"The Top Cost Call Stack" +"

      This is a purely fictional 'most probable' call stack. It is built up by " +"starting with the current selected function and adds the callers/callees with " +"highest cost at the top and to bottom.

      " +"

      The Cost and Calls columns show the cost used for all calls " +"from the function in the line above.

      " +msgstr "" +"Topo de Custo da Pilha de Chamadas" +"

      Esta é uma pilha de chamadas fictícia e 'mais provável'. Ela é construída " +"começando na função seleccionada no momento e adicionando as funções " +"chamadoras/chamadas com maior custo por cima e por baixo.

      " +"

      As colunas Custo e Chamadas mostram o custo usada para todas " +"as chamadas da função na linha acima.

      " + +#: toplevel.cpp:333 +msgid "Flat Profile" +msgstr "Análise Simples" + +#: toplevel.cpp:343 +msgid "" +"The Flat Profile" +"

      The flat profile contains a group and a function selection list. The group " +"list contains all groups where costs are spent in, depending on the chosen " +"group type. The group list is hidden when group type 'Function' is selected." +"

      " +"

      The function list contains the functions of the selected group (or all for " +"'Function' group type), ordered by the costs spent therein. Functions with " +"costs less than 1% are hidden on default.

      " +msgstr "" +"A Análise Simples" +"

      A análise simples contém um grupo e uma lista de selecção de funções. A " +"lista de grupos contém todos os grupos onde os custos são dispendidos, " +"dependendo do tipo de grupo escolhido. A lista de grupos é escondida quando o " +"tipo de grupo 'Função' é seleccionado." +"

      " +"

      A lista de funções contém as funções do grupo seleccionado (ou todas para o " +"tipo de grupo 'Função'), ordenadas pelos custos dispendidos até então. As " +"funções com custo menor que 1% são escondidas por omissão.

      " + +#. i18n: file dumpselectionbase.ui line 16 +#: rc.cpp:84 toplevel.cpp:357 toplevel.cpp:609 +#, no-c-format +msgid "Profile Dumps" +msgstr "Resultados da Análise" + +#: toplevel.cpp:367 +msgid "" +"Profile Dumps" +"

      This dockable shows in the top part the list of loadable profile dumps in " +"all subdirectories of: " +"

        " +"
      • current working directory of KCachegrind, i.e. where it was started from, " +"and " +"
      • the default profile dump directory given in the configuration.
      " +"The list is sorted according the the target command profiled in the " +"corresponding dump.

      " +"

      On selecting a profile dump, information for it is shown in the bottom area " +"of the dockable: " +"

        " +"
      • Options allows you to view the profiled command and profile options " +"of this dump. By changing any item, a new (yet unexisting) profile template is " +"created. Press Run Profile to start aprofile run with these options in " +"the background. " +"
      • Info gives detailed info on the selected dump like event cost " +"summary and properties of the simulated cache. " +"
      • State is only available for current happening profiles runs. Press " +"Update to see different counters of the run, and a stack trace of the " +"current position in the program profiled. Check the Every " +"option to let KCachegrind regularly poll these data. Check the Sync " +"option to let the dockable activate the top function in the current loaded " +"dump.

      " +msgstr "" +"Resultados da análise" +"

      Esta área mostra na parte superior a lista de resultados das análises em " +"todas as subpastas de: " +"

        " +"
      • a directoria de trabalho actual do KCachegrind, i.e., onde este foi " +"iniciado, e " +"
      • a directoria dos resultados das análises dada na configuração.
      " +"A lista é ordenada de acordo com o comando-alvo analisado no resultado " +"correspondente.

      " +"

      Ao seleccionar um resultado, são mostradas as informações sobre este na " +"parte inferior: " +"

        " +"
      • Opções permite-lhe ver o comando analisado e as opções de análise " +"deste resultado. Carregue em Executar a Análise " +"para iniciar o processo de análise, com estas opções, em segundo plano. " +"
      • Informações fornece dados detalhados sobre o resultado seleccionado, " +"como um resumo do custo dos eventos e as propriedades da 'cache' simulada. " +"
      • Estado só está disponível para as execuções das análises em curso de " +"momento. Carregue em Actualizar para ver os diferentes contadores da " +"execução, assim como um traceamento da pilha da posição actual do programa a sr " +"analisado. Assinale a opção Tudo para deixar o KCachegrind extrair " +"regularmente estes dados. Assinale a opção Sincronizar " +"para que a área active a função de topo no resultado carregado no momento.
      " +"

      " + +#: toplevel.cpp:455 +msgid "&Duplicate" +msgstr "&Duplicar" + +#: toplevel.cpp:459 +msgid "" +"Duplicate Current Layout" +"

      Make a copy of the current layout.

      " +msgstr "" +"Duplicar a Disposição Actual" +"

      Cria uma cópia da disposição actual.

      " + +#: toplevel.cpp:466 +msgid "" +"Remove Current Layout" +"

      Delete current layout and make the previous active.

      " +msgstr "" +"Remover a Disposição Actual" +"

      Remove a disposição actual e torna a anterior a disposição activa.

      " + +#: toplevel.cpp:470 +msgid "&Go to Next" +msgstr "Ir para a &Próxima" + +#: toplevel.cpp:474 +msgid "Go to Next Layout" +msgstr "Ir para a Próxima Disposição" + +#: toplevel.cpp:477 +msgid "&Go to Previous" +msgstr "&Ir para a Anterior" + +#: toplevel.cpp:481 +msgid "Go to Previous Layout" +msgstr "Ir para a Disposição Anterior" + +#: toplevel.cpp:484 +msgid "&Restore to Default" +msgstr "&Repor a Predefinida" + +#: toplevel.cpp:487 +msgid "Restore Layouts to Default" +msgstr "Repor a Disposição por Omissão" + +#: toplevel.cpp:490 +msgid "&Save as Default" +msgstr "&Gravar como Predefinição" + +#: toplevel.cpp:493 +msgid "Save Layouts as Default" +msgstr "Gravar Disposições como por Omissão" + +#: toplevel.cpp:504 +msgid "New

      Open new empty KCachegrind window.

      " +msgstr "Novo

      Mostra uma nova janela do KCachegrind vazia.

      " + +#: toplevel.cpp:507 +msgid "&Add..." +msgstr "&Adicionar..." + +#: toplevel.cpp:510 +msgid "" +"Add Profile Data" +"

      This opens an additional profile data file in the current window.

      " +msgstr "" +"Adicionar Dados de Análise" +"

      Isto abre um ficheiro de dados de análise adicional na janela actual.

      " + +#: toplevel.cpp:522 +msgid "Reload Profile Data

      This loads any new created parts, too.

      " +msgstr "" +"Reler os Dados de Análise" +"

      Isto carrega também as partes criadas como novas, também.

      " + +#: toplevel.cpp:526 +msgid "&Export Graph" +msgstr "&Exportar Grafo" + +#: toplevel.cpp:530 +msgid "" +"Export Call Graph" +"

      Generates a file with extension .dot for the tools of the GraphViz " +"package.

      " +msgstr "" +"Exportar o Grafo" +"

      Gera um ficheiro com a extensão .dot para as ferramentas do pacote " +"GraphViz.

      " + +#: toplevel.cpp:536 +msgid "&Force Dump" +msgstr "&Forçar o Resultado" + +#: toplevel.cpp:545 +msgid "" +"Force Dump" +"

      This forces a dump for a Callgrind profile run in the current directory. " +"This action is checked while KCachegrind looks for the dump. If the dump is " +"finished, it automatically reloads the current trace. If this is the one from " +"the running Callgrind, the new created trace part will be loaded, too.

      " +"

      Force dump creates a file 'callgrind.cmd', and checks every second for its " +"existence. A running Callgrind will detect this file, dump a trace part, and " +"delete 'callgrind.cmd'. The deletion is detected by KCachegrind, and it does a " +"Reload. If there's no Callgrind running, press 'Force Dump' again to " +"cancel the dump request. This deletes 'callgrind.cmd' itself and stops polling " +"for a new dump.

      " +"

      Note: A Callgrind run only detects existence of 'callgrind.cmd' " +"when actively running a few milliseconds, i.e. not " +"sleeping. Tip: For a profiled GUI program, you can awake Callgrind e.g. by " +"resizing a window of the program.

      " +msgstr "" +"Forçar o Resultado" +"

      Isto obriga à exposição do resultado para uma análise do Cachegrind na " +"directoria actual. Esta acção é verificada enquanto o KCachegrind espera o " +"resultado. Se o resultado estiver pronto, este carrega de novo o traceamento " +"actual. Se, por outro lado, for o resultado do Cachegrind em execução, o novo " +"traceamento criado será carregado da mesma forma.

      " +"

      O resultado forçado cria um ficheiro 'cachegrind.cmd', e verifica a cada " +"segundo a sua existência. Um Cachegrind em execução irá detectar este ficheiro, " +"gerar um traceamento, e remover o 'cachegrind.cmd'. A remoção é detectada pelo " +"KCachegrind, pelo que fará uma nova leitura. Se não " +"existir nenhum Cachegrind a correr, carregue em 'Forçar o Resultado' de novo " +"para cancelar o pedido do resultado. Isto irá remover o próprio " +"'cachegrind.cmd' e pára a pesquisa de um novo resultado.

      " +"

      Nota: Uma execução do Cachegrind apenas detecta a existência do " +"'cachegrind.cmd' quando está em execução activa durante alguns milisegundos, " +"i.e., quando não está parado. Sugestão: Para um programa gráfico em " +"análise, você pode acordar o Cachegrind, p.ex, se redimensionar uma janela do " +"programa.Open Profile Data" +"

      This opens a profile data file, with possible multiple parts

      " +msgstr "" +"Abrir os Dados de Análise" +"

      Isto abre um traceamento com várias partes, possivelmente

      " + +#: toplevel.cpp:586 +msgid "Show/Hide the Parts Overview Dockable" +msgstr "Mostrar/Esconder a Componente de Traceamento" + +#: toplevel.cpp:590 +msgid "Call Stack" +msgstr "Pilha de Chamadas" + +#: toplevel.cpp:595 +msgid "Show/Hide the Call Stack Dockable" +msgstr "Mostrar/Esconder a Componente da Pilha de Chamadas" + +#. i18n: file functionselectionbase.ui line 16 +#: rc.cpp:297 toplevel.cpp:599 +#, no-c-format +msgid "Function Profile" +msgstr "Análise da Função" + +#: toplevel.cpp:604 +msgid "Show/Hide the Function Profile Dockable" +msgstr "Mostrar/Esconder a Análise de Funções" + +#: toplevel.cpp:614 +msgid "Show/Hide the Profile Dumps Dockable" +msgstr "Acoplar/desacoplar os Resultados da Análise" + +#: toplevel.cpp:619 +msgid "Show Relative Costs" +msgstr "Mostrar Custos Relativos" + +#: toplevel.cpp:626 +msgid "Show Absolute Costs" +msgstr "Mostrar Custos Absolutos" + +#: toplevel.cpp:629 +msgid "Show relative instead of absolute costs" +msgstr "Mostrar os custos relativos em vez dos absolutos" + +#: toplevel.cpp:633 +msgid "Percentage Relative to Parent" +msgstr "Percentagem Relativa ao Pai" + +#: toplevel.cpp:639 +msgid "Show percentage costs relative to parent" +msgstr "Mostrar os custos percentuais face ao 'pai'" + +#: toplevel.cpp:643 +msgid "" +"Show percentage costs relative to parent" +"

      If this is switched off, percentage costs are always shown relative to the " +"total cost of the profile part(s) that are currently browsed. By turning on " +"this option, percentage cost of shown cost items will be relative to the parent " +"cost item." +"

        " +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"
        Cost TypeParent Cost
        Function CumulativeTotal
        Function SelfFunction Group (*) / Total
        CallFunction Cumulative
        Source LineFunction Cumulative
        " +"

        (*) Only if function grouping is switched on (e.g. ELF object grouping)." +msgstr "" +"Mostrar os custos percentuais face ao 'pai'" +"

        Se esta opção estiver desligada, os custos percentuais são sempre mostrados " +"em relação ao custo total da parte da análise que você está a navegar neste " +"momento. Se ligar esta opção, o custo percentual dos itens de custo mostrados " +"serão relativos ao 'item-pai' do custo." +"

          " +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"
          Tipo de CustoCusto do Pai
          Acumulação da FunçãoTotal
          Própria FunçãoGroup da Função / Total
          ChamadaAcumulação da Função
          Linha de CódigoAcumulação da Função
          " +"

          (*) Só se o agrupamento de funções estiver activado (p.ex., agrupamento de " +"objectos ELF)." + +#: toplevel.cpp:658 +msgid "Do Cycle Detection" +msgstr "Detectar Ciclos" + +#: toplevel.cpp:664 +msgid "Skip Cycle Detection" +msgstr "Não Detectar Ciclos" + +#: toplevel.cpp:667 +msgid "" +"Detect recursive cycles" +"

          If this is switched off, the treemap drawing will show black areas when a " +"recursive call is made instead of drawing the recursion ad infinitum. Note that " +"the size of black areas often will be wrong, as inside recursive cycles the " +"cost of calls cannot be determined; the error is small, however, for false " +"cycles (see documentation)." +"

          The correct handling for cycles is to detect them and collapse all functions " +"of a cycle into a virtual function, which is done when this option is selected. " +"Unfortunately, with GUI applications, this often will lead to huge false " +"cycles, making the analysis impossible; therefore, there is the option to " +"switch this off." +msgstr "" +"Detectar os ciclos recursivos" +"

          Se isto estiver desligado, o desenho da árvore irá mostrar áreas a preto " +"quando é feita uma chamada recursiva em vez de desenhar a recursividade 'ad " +"infinitum'. Tenha em atenção que o tamanho das áreas a preto poderá ser muitas " +"vezes errado, dado que dentro de ciclos recursivos, você não consegue " +"determinar o custo das chamadas. Contudo, o erro é pequeno para os ciclos " +"falsos (ver a documentação)." +"

          O tratamento correcto dos ciclos é detectá-los e fechar todas as funções de " +"um ciclo numa função virtual. Isto é feito quando esta opção é seleccionada. " +"Infelizmente, com as aplicações gráficos, isto irá conduzir a ciclos falsos " +"enormes, tornando a análise impossível. Daí a possibilidade de desligar esta " +"opção." + +#: toplevel.cpp:689 toplevel.cpp:729 +msgid "Go back in function selection history" +msgstr "Voltar atrás no histórico da selecção das funções" + +#: toplevel.cpp:695 toplevel.cpp:741 +msgid "Go forward in function selection history" +msgstr "Avançar no histórico da selecção das funções" + +#: toplevel.cpp:701 toplevel.cpp:715 +msgid "" +"Go Up" +"

          Go to last selected caller of current function. If no caller was visited, " +"use that with highest cost.

          " +msgstr "" +"Subir" +"

          Ir para o último responsável seleccionado da chamada da função actual. Se " +"nenhum destes responsáveis foi visitado, é usado o com custo maior.

          " + +#: toplevel.cpp:707 +msgid "&Up" +msgstr "S&ubir" + +#: toplevel.cpp:746 toplevel.cpp:1651 +msgid "Primary Event Type" +msgstr "Tipo Primário de Evento" + +#: toplevel.cpp:748 +msgid "Select primary event type of costs" +msgstr "Seleccione o tipo primário de evento dos custos" + +#: toplevel.cpp:758 toplevel.cpp:1654 +msgid "Secondary Event Type" +msgstr "Tipo Secundário de Evento" + +#: toplevel.cpp:760 +msgid "Select secondary event type for cost e.g. shown in annotations" +msgstr "" +"Seleccionar o tipo secundário de eventos para o custo, mostrados em anotações" + +#: functionselection.cpp:243 toplevel.cpp:768 +msgid "Grouping" +msgstr "Grupos" + +#: toplevel.cpp:771 +msgid "Select how functions are grouped into higher level cost items" +msgstr "" +"Seleccionar como é que as funções são agrupadas nos itens de custo superiores" + +#: functionselection.cpp:52 toplevel.cpp:777 +msgid "(No Grouping)" +msgstr "(Sem Grupos)" + +#: toplevel.cpp:787 +msgid "Split" +msgstr "Dividir" + +#: toplevel.cpp:791 +msgid "Show two information panels" +msgstr "Mostrar dois painéis de informação" + +#: toplevel.cpp:795 +msgid "Split Horizontal" +msgstr "Dividir Horizontalmente" + +#: toplevel.cpp:800 +msgid "Change Split Orientation when main window is split." +msgstr "" +"Mudar a Orientação da Repartição quando a janela principal está repartida." + +#: toplevel.cpp:808 +msgid "Tip of the &Day..." +msgstr "Dica do &Dia..." + +#: toplevel.cpp:809 +msgid "Show \"Tip of the Day\"" +msgstr "Mostrar a \"Dica do Dia\"" + +#: toplevel.cpp:1012 toplevel.cpp:1061 +msgid "" +"cachegrind.out* callgrind.out*|Callgrind Profile Data\n" +"*|All Files" +msgstr "" +"cachegrind.out* callgrind.out*|Dados de Análise do Cachegrind\n" +"*|Todos os Ficheiros" + +#: toplevel.cpp:1014 +msgid "Select Callgrind Profile Data" +msgstr "Seleccionar os Dados de Perfil do Cachegrind" + +#: toplevel.cpp:1063 +msgid "Add Callgrind Profile Data" +msgstr "Adicionar Dados de Perfil do Callgrind" + +#: toplevel.cpp:1221 toplevel.cpp:1574 +msgid "(Hidden)" +msgstr "(Escondido)" + +#: toplevel.cpp:1626 +msgid "Hide" +msgstr "Esconder" + +#: toplevel.cpp:1659 +msgid "Show Absolute Cost" +msgstr "Mostrar Custo Absoluto" + +#: toplevel.cpp:1662 +msgid "Show Relative Cost" +msgstr "Mostrar Custo Relativo" + +#: toplevel.cpp:1693 +msgid "Go Forward" +msgstr "Avançar" + +#: toplevel.cpp:1694 +msgid "Go Up" +msgstr "Subir" + +#: toplevel.cpp:1926 +#, c-format +msgid "Layout Count: %1" +msgstr "Contagem de Disposição: %1" + +#: toplevel.cpp:1933 +msgid "No profile data file loaded." +msgstr "Não está nenhum ficheiro de dados de perfil carregado." + +#: toplevel.cpp:1942 +msgid "Total %1 Cost: %2" +msgstr "Total %1 Custo: %2" + +#: toplevel.cpp:1954 +msgid "No event type selected" +msgstr "Sem tipo de evento seleccionado" + +#: toplevel.cpp:2199 toplevel.cpp:2235 toplevel.cpp:2271 +msgid "(No Stack)" +msgstr "(Sem Pilha)" + +#: toplevel.cpp:2205 +msgid "(No next function)" +msgstr "(Não há próxima função)" + +#: toplevel.cpp:2241 +msgid "(No previous function)" +msgstr "(Não há função anterior)" + +#: toplevel.cpp:2276 +msgid "(No Function Up)" +msgstr "(Não há função acima)" + +#. i18n: file dumpselectionbase.ui line 906 +#: instrview.cpp:125 rc.cpp:264 sourceview.cpp:50 +#, no-c-format +msgid "#" +msgstr "#" + +#: callview.cpp:45 instrview.cpp:127 sourceview.cpp:52 +msgid "Cost 2" +msgstr "Custo 2" + +#: instrview.cpp:129 +msgid "Hex" +msgstr "Hex" + +#: instrview.cpp:131 tabview.cpp:313 +msgid "Assembler" +msgstr "'Assembler'" + +#: instrview.cpp:132 +msgid "Source Position" +msgstr "Posição no Código" + +#: instrview.cpp:163 +msgid "" +"Annotated Assembler" +"

          The annotated assembler list shows the machine code instructions of the " +"current selected function together with (self) cost spent while executing an " +"instruction. If this is a call instruction, lines with details on the call " +"happening are inserted into the source: the cost spent inside of the call, the " +"number of calls happening, and the call destination.

          " +"

          The disassembler output shown is generated with the 'objdump' utility from " +"the 'binutils' package.

          " +"

          Select a line with call information to make the destination function of this " +"call current.

          " +msgstr "" +"'Assembler' Anotado" +"

          A lista do 'assembler' anotado mostra as instruções do código-máquina da " +"função seleccionada de momento, em conjunto com o custo (próprio) dispendido ao " +"executar uma instrução. Se esta é uma instrução de chamada, as linhas com os " +"detalhes da chamada em curso são inseridas no código: Estes são os custos " +"(acumulados) dispendidos dentro da chamada, o número de chamadas ocorridas e o " +"destino da chamada.

          " +"

          O resultado da descodificação apresentado é gerado com o utilitário " +"'objdump' do pacote 'binutils'.

          " +"

          Seleccione uma linha com informações da chamada para fazer com que a função " +"de destino desta chamada passe a ser actual.

          " + +#: callgraphview.cpp:2397 callgraphview.cpp:2401 callgraphview.cpp:2419 +#: callview.cpp:123 callview.cpp:128 coverageview.cpp:166 instrview.cpp:191 +#: sourceview.cpp:116 +msgid "Go to '%1'" +msgstr "Ir para '%1'" + +#: instrview.cpp:195 +#, c-format +msgid "Go to Address %1" +msgstr "Ir para o Endereço %1" + +#: instrview.cpp:207 +msgid "Hex Code" +msgstr "Código Hex" + +#: instrview.cpp:426 +msgid "There is no instruction info in the profile data file." +msgstr "Não existe nenhuma informação das instruções no ficheiro de análise." + +#: instrview.cpp:428 +msgid "For the Valgrind Calltree Skin, rerun with option" +msgstr "Para a Árvore de Chamadas do Valgrind, correr de novo com a opção" + +#: instrview.cpp:429 +msgid " --dump-instr=yes" +msgstr " --dump-instr=yes" + +#: instrview.cpp:430 +msgid "To see (conditional) jumps, additionally specify" +msgstr "Para ver os saltos (condicionais), indique adicionalmente" + +#: instrview.cpp:431 +msgid " --trace-jump=yes" +msgstr " --trace-jump=yes" + +#: instrview.cpp:629 +msgid "There is an error trying to execute the command" +msgstr "Ocorreu um erro ao tentar executar o comando" + +#: instrview.cpp:634 instrview.cpp:900 +msgid "Check that you have installed 'objdump'." +msgstr "Verifique se instalou o utilitário 'objdump'." + +#: instrview.cpp:636 instrview.cpp:902 +msgid "This utility can be found in the 'binutils' package." +msgstr "Este utilitário pode ser encontrado no pacote 'binutils'." + +#: instrview.cpp:739 +msgid "(No Assembler)" +msgstr "(Sem 'Assembler')" + +#: instrview.cpp:875 +#, c-format +msgid "" +"_n: There is %n cost line without assembler code.\n" +"There are %n cost lines without assembler code." +msgstr "" +"Existe uma linha de custo sem código do 'assembler'.\n" +"Existem %n linhas de custo sem código do 'assembler'." + +#: instrview.cpp:877 +msgid "This happens because the code of" +msgstr "Isto acontece porque o código do" + +#: instrview.cpp:880 +msgid "does not seem to match the profile data file." +msgstr "não parece corresponder ao ficheiro de dados." + +#: instrview.cpp:883 +msgid "Are you using an old profile data file or is the above mentioned" +msgstr "Você está a usar um ficheiro de análise antigo ou o objecto ELF" + +#: instrview.cpp:885 +msgid "ELF object from an updated installation/another machine?" +msgstr "acima indicado é de uma instalação actualizada ou de outra máquina?" + +#: instrview.cpp:893 +msgid "There seems to be an error trying to execute the command" +msgstr "Parece ocorrer um erro ao tentar executar o comando" + +#: instrview.cpp:898 +msgid "Check that the ELF object used in the command exists." +msgstr "Verifique se o objecto ELF usado no comando existe." + +#: callgraphview.cpp:306 +#, c-format +msgid "Call(s) from %1" +msgstr "Chamada(s) de %1" + +#: callgraphview.cpp:307 +#, c-format +msgid "Call(s) to %1" +msgstr "Chamada(s) a %1" + +#: callgraphview.cpp:308 +msgid "(unknown call)" +msgstr "(chamada desconhecida)" + +#: callgraphview.cpp:1425 +msgid "" +"Call Graph around active Function" +"

          Depending on configuration, this view shows the call graph environment of " +"the active function. Note: the shown cost is only " +"the cost which is spent while the active function was actually running; i.e. " +"the cost shown for main() - if it's visible - should be the same as the cost of " +"the active function, as that's the part of inclusive cost of main() spent while " +"the active function was running.

          " +"

          For cycles, blue call arrows indicate that this is an artificial call added " +"for correct drawing which actually never happened.

          " +"

          If the graph is larger than the widget area, an overview panner is shown in " +"one edge. There are similar visualization options to the Call Treemap; the " +"selected function is highlighted." +"

          " +msgstr "" +"Gráfico de Chamadas da Função Activa" +"

          Dependendo da configuração, esta janela mostra o ambiente gráfico das " +"chamadas da função activa. Nota: o custo apresentado é apenas " +"o custo dispendido enquanto a função activa estava ela própria em execução; " +"i.e., o custo apresentado para o main() - se estiver visível - deverá ser o " +"mesmo que o custo da função activa, atendendo a que essa é a parte incluída no " +"custo do main() gasta enquanto a função activa estava a ser executada.

          " +"

          Para os ciclos, as setas de chamadas azuis indicam que esta é uma chamada " +"artificial que é adicionada para um desenho mais correcto, chamada esta que " +"nunca ocorre de facto.

          " +"

          Se o gráfico for maior que a área de desenho, é mostrado um rectângulo de " +"deslocamento de um dos lados. Existem opções de visualização semelhantes na " +"Árvore de Chamadas; a função seleccionada está realçada." +"

          " + +#: callgraphview.cpp:1789 +msgid "" +"Warning: a long lasting graph layouting is in progress.\n" +"Reduce node/edge limits for speedup.\n" +msgstr "" +"Aviso: está a decorrer uma operação de disposição de grafos que vai demorar " +"bastante tempo.\n" +"Reduza os limites de nós/arcos para aumentar a velocidade.\n" + +#: callgraphview.cpp:1792 +msgid "" +"Layouting stopped.\n" +msgstr "" +"Disposição parou.\n" + +#: callgraphview.cpp:1794 +msgid "" +"The call graph has %1 nodes and %2 edges.\n" +msgstr "" +"O grafo de chamadas tem %1 nós e %2 arcos.\n" + +#: callgraphview.cpp:1827 +msgid "No item activated for which to draw the call graph." +msgstr "Não está nenhum item activado para poder desenhar o grafo de chamadas." + +#: callgraphview.cpp:1838 +msgid "No call graph can be drawn for the active item." +msgstr "Não é possível desenhar o grafo de chamadas do item activo." + +#: callgraphview.cpp:1867 +msgid "" +"No call graph is available because the following\n" +"command cannot be run:\n" +"'%1'\n" +msgstr "" +"O grafo de chamadas não está disponível porque o\n" +"não foi possível correr o seguinte comando:\n" +"'%1'\n" + +#: callgraphview.cpp:1870 callgraphview.cpp:2200 +msgid "Please check that 'dot' is installed (package GraphViz)." +msgstr "Por favor verifique se o 'dot' está instalado (com o pacote GraphViz)." + +#: callgraphview.cpp:2199 +msgid "" +"Error running the graph layouting tool.\n" +msgstr "" +"Erro ao correr a ferramenta de disposição de grafos.\n" + +#: callgraphview.cpp:2207 +msgid "" +"There is no call graph available for function\n" +"\t'%1'\n" +"because it has no cost of the selected event type." +msgstr "" +"Não existe nenhum grafo de chamadas disponível para a função\n" +"\t'%1'\n" +"porque não tem nenhum custo para o tipo de evento seleccionado." + +#: callgraphview.cpp:2428 +msgid "Stop Layouting" +msgstr "Parar a Disposição" + +#: callgraphview.cpp:2436 +msgid "As PostScript" +msgstr "Como PostScript" + +#: callgraphview.cpp:2437 +msgid "As Image ..." +msgstr "Como Imagem ..." + +#: callgraphview.cpp:2439 +msgid "Export Graph" +msgstr "Exportar Grafo" + +#: callgraphview.cpp:2444 callgraphview.cpp:2467 +msgid "Unlimited" +msgstr "Sem Limite" + +#: callgraphview.cpp:2447 callgraphview.cpp:2470 +msgid "None" +msgstr "Nenhum" + +#: callgraphview.cpp:2448 callgraphview.cpp:2471 +msgid "max. 2" +msgstr "máx. 2" + +#: callgraphview.cpp:2449 callgraphview.cpp:2472 +msgid "max. 5" +msgstr "máx. 5" + +#: callgraphview.cpp:2450 callgraphview.cpp:2473 +msgid "max. 10" +msgstr "máx. 10" + +#: callgraphview.cpp:2451 callgraphview.cpp:2474 +msgid "max. 15" +msgstr "máx. 15" + +#: callgraphview.cpp:2461 callgraphview.cpp:2484 +#, c-format +msgid "< %1" +msgstr "< %1" + +#: callgraphview.cpp:2490 +msgid "No Minimum" +msgstr "Sem Mínimo" + +#: callgraphview.cpp:2494 +#, c-format +msgid "50 %" +msgstr "50 %" + +#: callgraphview.cpp:2495 +#, c-format +msgid "20 %" +msgstr "20 %" + +#: callgraphview.cpp:2496 +#, c-format +msgid "10 %" +msgstr "10 %" + +#: callgraphview.cpp:2497 +#, c-format +msgid "5 %" +msgstr "5 %" + +#: callgraphview.cpp:2498 +#, c-format +msgid "3 %" +msgstr "3 %" + +#: callgraphview.cpp:2499 +#, c-format +msgid "2 %" +msgstr "2 %" + +#: callgraphview.cpp:2500 +#, c-format +msgid "1.5 %" +msgstr "1.5 %" + +#: callgraphview.cpp:2501 +#, c-format +msgid "1 %" +msgstr "1 %" + +#: callgraphview.cpp:2517 +msgid "Same as Node" +msgstr "Mesmo do que o Nó" + +#: callgraphview.cpp:2518 +#, c-format +msgid "50 % of Node" +msgstr "50 % do Nó" + +#: callgraphview.cpp:2519 +#, c-format +msgid "20 % of Node" +msgstr "20 % do Nó" + +#: callgraphview.cpp:2520 +#, c-format +msgid "10 % of Node" +msgstr "10 % do Nó" + +#: callgraphview.cpp:2530 +msgid "Caller Depth" +msgstr "Profundidade do Chamador" + +#: callgraphview.cpp:2531 +msgid "Callee Depth" +msgstr "Profundidade do Chamado" + +#: callgraphview.cpp:2532 +msgid "Min. Node Cost" +msgstr "Custo Mínimo do Nó" + +#: callgraphview.cpp:2533 +msgid "Min. Call Cost" +msgstr "Custo Mínimo da Chamada" + +#: callgraphview.cpp:2535 +msgid "Arrows for Skipped Calls" +msgstr "Setas para as Chamadas Ignoradas" + +#: callgraphview.cpp:2537 +msgid "Inner-cycle Calls" +msgstr "Chamadas de Ciclos Internos" + +#: callgraphview.cpp:2539 +msgid "Cluster Groups" +msgstr "Grupos de 'Cluster'" + +#: callgraphview.cpp:2544 +msgid "Compact" +msgstr "Compacto" + +#: callgraphview.cpp:2545 +msgid "Normal" +msgstr "Normal" + +#: callgraphview.cpp:2546 +msgid "Tall" +msgstr "Alto" + +#: callgraphview.cpp:2551 +msgid "Top to Down" +msgstr "Topo para Fundo" + +#: callgraphview.cpp:2552 +msgid "Left to Right" +msgstr "Esquerda para Direita" + +#: callgraphview.cpp:2553 +msgid "Circular" +msgstr "Circular" + +#: callgraphview.cpp:2559 +msgid "TopLeft" +msgstr "TopoEsquerdo" + +#: callgraphview.cpp:2560 +msgid "TopRight" +msgstr "TopoDireito" + +#: callgraphview.cpp:2561 +msgid "BottomLeft" +msgstr "FundoEsquerdo" + +#: callgraphview.cpp:2562 +msgid "BottomRight" +msgstr "FundoDireito" + +#. i18n: file configdlgbase.ui line 246 +#: callgraphview.cpp:2563 rc.cpp:42 rc.cpp:51 rc.cpp:54 +#, no-c-format +msgid "Automatic" +msgstr "Automático" + +#: callgraphview.cpp:2570 +msgid "Graph" +msgstr "Gráfico" + +#: callgraphview.cpp:2572 +msgid "Birds-eye View" +msgstr "Vista Geral" + +#: _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "José Nuno Pires,Pedro Morais" + +#: _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "jncp@netcabo.pt,morais@kde.org" + +#: coverageitem.cpp:65 coverageitem.cpp:205 functionitem.cpp:72 +#, c-format +msgid "" +"_n: (%n function skipped)\n" +"(%n functions skipped)" +msgstr "" +"(%n função ignorada)\n" +"(%n funções ignoradas)" + +#: main.cpp:38 +msgid "Run under cachegrind" +msgstr "Executar o com o cachegrind" + +#: main.cpp:39 +msgid "Show information of this trace" +msgstr "Mostrar a informação deste traceamento" + +#: main.cpp:46 +msgid "KCachegrind" +msgstr "KCachegrind" + +#: main.cpp:48 +msgid "KDE Frontend for Cachegrind" +msgstr "Interface KDE para o Cachegrind" + +#: main.cpp:50 +msgid "(C) 2002, 2003, 2004" +msgstr "(C) 2002, 2003, 2004" + +#: main.cpp:53 +msgid "Author/Maintainer" +msgstr "Autor/Manutenção" + +#: tabview.cpp:64 +msgid "Move to Top" +msgstr "Mover para o Topo" + +#: tabview.cpp:68 +msgid "Move to Right" +msgstr "Mover para a Direita" + +#: tabview.cpp:72 +msgid "Move to Bottom" +msgstr "Mover para a Esquerda" + +#: tabview.cpp:76 +msgid "Move to Bottom Left" +msgstr "Mover para o Rodapé Esquerdo" + +#: tabview.cpp:77 tabview.cpp:94 treemap.cpp:2908 +msgid "Bottom Left" +msgstr "Fundo Esquerda" + +#: tabview.cpp:79 +msgid "Move Area To" +msgstr "Mover Área Para" + +#: tabview.cpp:81 +msgid "Hide This Tab" +msgstr "Esconder Esta Página" + +#: tabview.cpp:82 +msgid "Hide Area" +msgstr "Esconder a Área" + +#: tabview.cpp:95 +msgid "Show Hidden On" +msgstr "Mostrar Escondido Em" + +#: tabview.cpp:242 +msgid "(No profile data file loaded)" +msgstr "(Não está nenhum ficheiro de dados de análise carregado)" + +#: tabview.cpp:281 +msgid "Types" +msgstr "Tipos" + +#: tabview.cpp:284 +msgid "Callers" +msgstr "Chamadores" + +#: tabview.cpp:287 +msgid "All Callers" +msgstr "Todos os Chamadores" + +#: tabview.cpp:290 +msgid "Caller Map" +msgstr "Mapa de Chamadores" + +#: tabview.cpp:293 +msgid "Source" +msgstr "Código" + +#: tabview.cpp:297 +msgid "Parts" +msgstr "Partes" + +#: tabview.cpp:300 +msgid "Call Graph" +msgstr "Grafo de Chamadas" + +#: tabview.cpp:303 +msgid "Callees" +msgstr "Chamados" + +#: tabview.cpp:306 +msgid "All Callees" +msgstr "Todos os Chamados" + +#: tabview.cpp:310 +msgid "Callee Map" +msgstr "Mapa de Chamados" + +#: tabview.cpp:553 +msgid "" +"Information Tabs" +"

          This widget shows information for the current selected function in different " +"tabs: " +"

            " +"
          • The Costs tab shows a list of available event types and the inclusive and " +"self costs regarding to these types.
          • " +"
          • The Parts tab shows a list of trace parts if the trace consists of more " +"than one part (otherwise, this tab is hided). The cost of the selected function " +"spent in the different parts together with the calls happening is shown.
          • " +"
          • The Call Lists tab shows direct callers and callees of the function in more " +"detail.
          • " +"
          • The Coverage tab shows the same is the Call Lists tab, but not only direct " +"callers and callees but also indirect ones.
          • " +"
          • The Call Graph tab shows a graphical visualization of the calls done by " +"this function.
          • " +"
          • The Source tab presents annotated source code if debugging information and " +"the source file is available.
          • " +"
          • The Assembler tab presents annotated assembler code if trace information on " +"instruction level is available.
          For more information, see the " +"What's This? help of the corresponding tab widget

          " +msgstr "" +"Páginas de Informação" +"

          Estes itens mostram a informação para a função seleccionada de momento em " +"várias páginas diferentes: " +"

            " +"
          • A página de Custos mostra uma lista com os tipos de custos disponíveis, bem " +"como os custos próprios e acumulados, de acordo com os tipos.
          • " +"
          • A página de Partes mostra uma lista com as partes do traceamento, se este " +"consistir em mais do que uma parte (caso contrário, esta página fica " +"escondida). O custo da função seleccionada dispendido nas diferentes partes, em " +"conjunto com as chamadas decorrentes, também é apresentado.
          • " +"
          • A página das Listas de Chamadas mostra as funções chamadoras e chamadas da " +"função actual com maior detalhes.
          • " +"
          • A página de Cobertura mostra o mesmo que a página das Listas de Chamadas, " +"só que mostra os chamadores e chamados indirectos, para além dos directos.
          • " +"
          • O Gráfico de Chamadas mostra uma visualização gráfica das chamadas feitas " +"por esta função.
          • " +"
          • A página de Código apresenta o código-fonte anotado, se estiver disponível " +"a informação de depuração, bem como o ficheiro de código.
          • " +"
          • A página do 'Assembler' mostra o código em Assembly anotado se a informação " +"do traceamento estiver disponível ao nível das instruções.
          " +"Para mais informações, veja a ajuda O que é isto " +"da página correspondente

          " + +#: tabview.cpp:630 +msgid "(No Data loaded)" +msgstr "(Sem dados carregados)" + +#: tabview.cpp:631 +msgid "(No function selected)" +msgstr "(Nenhuma função seleccionada)" + +#: sourceview.cpp:54 sourceview.cpp:554 +msgid "Source (unknown)" +msgstr "Fonte (desconhecido)" + +#: sourceview.cpp:89 +msgid "" +"Annotated Source" +"

          The annotated source list shows the source lines of the current selected " +"function together with (self) cost spent while executing the code of this " +"source line. If there was a call in a source line, lines with details on the " +"call happening are inserted into the source: the cost spent inside of the call, " +"the number of calls happening, and the call destination.

          " +"

          Select a inserted call information line to make the destination function " +"current.

          " +msgstr "" +"Código Anotado" +"

          A lista do código anotado mostra as linhas de código da função seleccionada " +"de momento, em conjunto com o custo (próprio) dispendido ao executar o código " +"desta linha. Se existir uma chamada numa linha de código, as linhas com os " +"detalhes da chamada em curso são inseridas no código: Estes são os custos " +"(acumulados) dispendidos dentro da chamada, o número de chamadas ocorridas e o " +"destino da chamada.

          " +"

          Seleccione uma linha com informações da chamada para fazer com que a função " +"de destino desta chamada passe a ser actual.

          " + +#: sourceview.cpp:120 +#, c-format +msgid "Go to Line %1" +msgstr "Ir para a Linha %1" + +#: sourceview.cpp:293 +msgid "(No Source)" +msgstr "(Sem Fonte)" + +#: sourceview.cpp:512 +msgid "There is no cost of current selected type associated" +msgstr "Não existe nenhum custo associado ao tipo seleccionado de momento" + +#: sourceview.cpp:514 +msgid "with any source line of this function in file" +msgstr "com qualquer linha de código desta função no ficheiro" + +#: sourceview.cpp:518 +msgid "Thus, no annotated source can be shown." +msgstr "Como tal, não poderá ser mostrado nenhum código anotado." + +#: sourceview.cpp:553 +msgid "Source ('%1')" +msgstr "Código ('%1')" + +#: sourceview.cpp:559 +msgid "--- Inlined from '%1' ---" +msgstr "--- Incluído de '%1' ---" + +#: sourceview.cpp:560 +msgid "--- Inlined from unknown source ---" +msgstr "--- Incluído de código desconhecido ---" + +#: sourceview.cpp:565 +msgid "There is no source available for the following function:" +msgstr "Não existe nenhum código disponível para a função:" + +#: sourceview.cpp:570 +msgid "This is because no debug information is present." +msgstr "Isto ocorreu porque não existe nenhuma informação de depuração." + +#: sourceview.cpp:572 +msgid "Recompile source and redo the profile run." +msgstr "Recompile o código e corra de novo a análise." + +#: sourceview.cpp:575 +msgid "The function is located in this ELF object:" +msgstr "A função está localizada neste objecto ELF:" + +#: sourceview.cpp:583 +msgid "This is because its source file cannot be found:" +msgstr "" +"Isto ocorre porque não foi possível encontrar o seu ficheiro de código:" + +#: sourceview.cpp:587 +msgid "Add the folder of this file to the source folder list." +msgstr "Adicionar a pasta deste ficheiro à lista de ficheiros de código." + +#: sourceview.cpp:589 +msgid "The list can be found in the configuration dialog." +msgstr "A lista pode ser encontrada na janela de configuração." + +#: partlistitem.cpp:49 +msgid " (Thread %1)" +msgstr " ('Thread' %1)" + +#: partlistitem.cpp:56 +msgid "(none)" +msgstr "(nenhum)" + +#: callitem.cpp:82 partlistitem.cpp:152 +msgid "(active)" +msgstr "(activo)" + +#: functionselection.cpp:176 +#, c-format +msgid "Go to %1" +msgstr "Ir para %1" + +#: functionselection.cpp:203 +msgid "Show All Items" +msgstr "Mostrar Todos os Itens" + +#: functionselection.cpp:226 +msgid "No Grouping" +msgstr "Sem Agrupamento" + +#: coverageview.cpp:48 coverageview.cpp:54 +msgid "Distance" +msgstr "Distância" + +#. i18n: file dumpselectionbase.ui line 928 +#: coverageview.cpp:49 partview.cpp:49 rc.cpp:270 rc.cpp:315 +#, no-c-format +msgid "Called" +msgstr "Chamado" + +#: callview.cpp:48 coverageview.cpp:50 +msgid "Caller" +msgstr "Chamador" + +#: coverageview.cpp:55 +msgid "Calling" +msgstr "A Chamar" + +#: callview.cpp:52 coverageview.cpp:56 +msgid "Callee" +msgstr "Chamador" + +#: coverageview.cpp:90 +msgid "" +"List of all Callers" +"

          This list shows all functions calling the current selected one, either " +"directly or with several functions in-between on the stack; the number of " +"functions in-between plus one is called the Distance " +"(e.g. for function A,B,C there exists a call from A to C when A calls B and B " +"calls C, i.e. A => B => C. The distance here is 2).

          " +"

          Absolute cost shown is the cost spent in the selected function while a " +"listed function is active; relative cost is the percentage of all cost spent in " +"the selected function while the listed one is active. The cost graphic shows " +"logarithmic percentage with a different color for each distance.

          " +"

          As there can be many calls from the same function, the distance column " +"sometimes shows the range of distances for all calls happening; then, in " +"parentheses, there is the medium distance, i.e. the distance where most of the " +"call costs happened.

          " +"

          Selecting a function makes it the current selected one of this information " +"panel. If there are two panels (Split mode), the function of the other panel is " +"changed instead.

          " +msgstr "" +"Lista de Todos os Chamadores" +"

          Esta lista mostra todas as funções que chamam a seleccionada no momento, " +"quer directa quer indirectamente, com várias funções no meio da pilha; o número " +"de funções entre as funções, acrescentado de 1, é chamada a Distância " +"(p.ex. para as funções A,B,C, existe uma chamada de A para C quando a A chama a " +"B, e por sua vez a B chama a C, i.e., A => B => C. A distância aqui é 2).

          " +"

          O custo absoluto apresentado é o custo dispendido na função seleccionada, " +"enquanto está activa uma função da lista; o custo relativo é a percentagem do " +"custo total dispendido na função seleccionada enquanto a função da lista está " +"activa. O gráfico do custo mostra a percentagem logarítmica com uma cor " +"diferente para cada distância.

          " +"

          Dado que podem existir várias chamadas a partir da mesma função, a coluna de " +"distância mostra algumas vezes o intervalo de distâncias para todas as chamadas " +"que ocorrem; nesse caso, existe uma distância média entre parêntesis, i.e., a " +"distância onde a maior parte dos custos das chamadas ocorreram.

          " +"

          Se seleccionar uma função, esta fica a activa no momento, neste painel de " +"informação. Se existirem dois painéis (modo dividido), é alterada a função do " +"outro painel.

          " + +#: coverageview.cpp:120 +msgid "" +"List of all Callees" +"

          This list shows all functions called by the current selected one, either " +"directly or with several function in-between on the stack; the number of " +"function in-between plus one is called the Distance " +"(e.g. for function A,B,C there exists a call from A to C when A calls B and B " +"calls C, i.e. A => B => C. The distance here is 2).

          " +"

          Absolute cost shown is the cost spent in the listed function while the " +"selected is active; relative cost is the percentage of all cost spent in the " +"listed function while the selected one is active. The cost graphic always shows " +"logarithmic percentage with a different color for each distance.

          " +"

          As there can be many calls to the same function, the distance column " +"sometimes shows the range of distances for all calls happening; then, in " +"parentheses, there is the medium distance, i.e. the distance where most of the " +"call costs happened.

          " +"

          Selecting a function makes it the current selected one of this information " +"panel. If there are two panels (Split mode), the function of the other panel is " +"changed instead.

          " +msgstr "" +"Lista de Todos os Chamados" +"

          Esta lista mostra todas as funções que são chamadas pela função seleccionada " +"no momento, quer directa quer indirectamente, com várias funções no meio da " +"pilha; o número de funções entre as funções, acrescentado de 1, é chamada a " +"Distância (p.ex. para as funções A,B,C, existe uma chamada de A para C " +"quando a A chama a B, e por sua vez a B chama a C, i.e., A => B => " +"C. A distância aqui é 2).

          " +"

          O custo absoluto apresentado é o custo dispendido na função seleccionada, " +"enquanto está activa uma função da lista; o custo relativo é a percentagem do " +"custo total dispendido na função seleccionada enquanto a função da lista está " +"activa. O gráfico do custo mostra a percentagem logarítmica com uma cor " +"diferente para cada distância.

          " +"

          Dado que podem existir várias chamadas a partir da mesma função, a coluna de " +"distância mostra algumas vezes o intervalo de distâncias para todas as chamadas " +"que ocorrem; nesse caso, existe uma distância média entre parêntesis, i.e., a " +"distância onde a maior parte dos custos das chamadas ocorreram.

          " +"

          Se seleccionar uma função, esta fica a activa no momento, neste painel de " +"informação. Se existirem dois painéis (modo dividido), é alterada a função do " +"outro painel.

          " + +#: configuration.cpp:63 +msgid "Instruction Fetch" +msgstr "Leitura de Instrução" + +#: configuration.cpp:64 +msgid "Data Read Access" +msgstr "Acesso de Leitura de Dados" + +#: configuration.cpp:65 +msgid "Data Write Access" +msgstr "Acesso de Escrita de Dados" + +#: configuration.cpp:66 +msgid "L1 Instr. Fetch Miss" +msgstr "Falha N1 de Leitura de Instrução" + +#: configuration.cpp:67 +msgid "L1 Data Read Miss" +msgstr "Falha N1 de Leitura de Dados" + +#: configuration.cpp:68 +msgid "L1 Data Write Miss" +msgstr "Falha N1 de Escrita de Dados" + +#: configuration.cpp:69 +msgid "L2 Instr. Fetch Miss" +msgstr "Falha N2 de Leitura de Instrução" + +#: configuration.cpp:70 +msgid "L2 Data Read Miss" +msgstr "Falha N2 de Leitura de Dados" + +#: configuration.cpp:71 +msgid "L2 Data Write Miss" +msgstr "Falha N2 de Escrita de Dados" + +#: configuration.cpp:72 +msgid "Samples" +msgstr "Amostras" + +#: configuration.cpp:73 +msgid "System Time" +msgstr "Hora do Sistema" + +#: configuration.cpp:74 +msgid "User Time" +msgstr "Tempo de Utilizador" + +#: configuration.cpp:75 +msgid "L1 Miss Sum" +msgstr "Soma de Falhas N1" + +#: configuration.cpp:76 +msgid "L2 Miss Sum" +msgstr "Soma de Falhas N2" + +#: configuration.cpp:77 +msgid "Cycle Estimation" +msgstr "Estimativa de Ciclos" + +#. i18n: file tdecachegrindui.rc line 15 +#: rc.cpp:9 +#, no-c-format +msgid "&Layout" +msgstr "&Disposição" + +#. i18n: file tdecachegrindui.rc line 32 +#: rc.cpp:12 +#, no-c-format +msgid "Sidebars" +msgstr "Barras Laterais" + +#. i18n: file tdecachegrindui.rc line 54 +#: rc.cpp:18 +#, no-c-format +msgid "State Toolbar" +msgstr "Barra de Ferramentas de Estado" + +#. i18n: file configdlgbase.ui line 37 +#: rc.cpp:24 +#, no-c-format +msgid "General" +msgstr "Geral" + +#. i18n: file configdlgbase.ui line 69 +#: rc.cpp:27 +#, no-c-format +msgid "Truncated when more/longer than:" +msgstr "Cortados quando forem mais/maiores do que:" + +#. i18n: file configdlgbase.ui line 77 +#: rc.cpp:30 +#, no-c-format +msgid "Precision of percentage values:" +msgstr "Precisão dos valores percentuais:" + +#. i18n: file configdlgbase.ui line 85 +#: rc.cpp:33 +#, no-c-format +msgid "Symbols in tooltips and context menus" +msgstr "Símbolos nas dicas e nos menus de contexto" + +#. i18n: file configdlgbase.ui line 141 +#: rc.cpp:36 +#, no-c-format +msgid "Maximum number of items in lists:" +msgstr "Número máximo de itens nas listas:" + +#. i18n: file configdlgbase.ui line 162 +#: rc.cpp:39 +#, no-c-format +msgid "Cost Item Colors" +msgstr "Cores dos Itens de Custo" + +#. i18n: file configdlgbase.ui line 254 +#: rc.cpp:45 +#, no-c-format +msgid "Object:" +msgstr "Objecto:" + +#. i18n: file configdlgbase.ui line 262 +#: rc.cpp:48 +#, no-c-format +msgid "Class:" +msgstr "Classe:" + +#. i18n: file configdlgbase.ui line 310 +#: rc.cpp:57 +#, no-c-format +msgid "File:" +msgstr "Ficheiro:" + +#. i18n: file configdlgbase.ui line 376 +#: rc.cpp:60 +#, no-c-format +msgid "Annotations" +msgstr "Anotações" + +#. i18n: file configdlgbase.ui line 395 +#: rc.cpp:63 +#, no-c-format +msgid "Context lines in annotations:" +msgstr "Linhas de contexto nas anotações:" + +#. i18n: file configdlgbase.ui line 423 +#: rc.cpp:66 +#, no-c-format +msgid "Source Folders" +msgstr "Pastas de Código" + +#. i18n: file configdlgbase.ui line 454 +#: rc.cpp:69 +#, no-c-format +msgid "Object / Related Source Base" +msgstr "Base do Código Relacionado / do Objecto" + +#. i18n: file configdlgbase.ui line 483 +#: rc.cpp:72 +#, no-c-format +msgid "Add..." +msgstr "Adicionar..." + +#. i18n: file dumpselectionbase.ui line 32 +#: rc.cpp:87 +#, no-c-format +msgid "Target" +msgstr "Alvo" + +#. i18n: file dumpselectionbase.ui line 54 +#: rc.cpp:90 +#, no-c-format +msgid "Time" +msgstr "Tempo" + +#. i18n: file dumpselectionbase.ui line 65 +#: rc.cpp:93 +#, no-c-format +msgid "Path" +msgstr "Localização" + +#. i18n: file dumpselectionbase.ui line 106 +#: rc.cpp:99 +#, no-c-format +msgid "Target command:" +msgstr "Comando alvo:" + +#. i18n: file dumpselectionbase.ui line 119 +#: rc.cpp:102 +#, no-c-format +msgid "Profiler options:" +msgstr "Opções do analisador:" + +#. i18n: file dumpselectionbase.ui line 125 +#: rc.cpp:105 +#, no-c-format +msgid "Option" +msgstr "Opção" + +#. i18n: file dumpselectionbase.ui line 136 +#: rc.cpp:108 rc.cpp:219 +#, no-c-format +msgid "Value" +msgstr "Valor" + +#. i18n: file dumpselectionbase.ui line 147 +#: rc.cpp:111 +#, no-c-format +msgid "Trace" +msgstr "Traceamento" + +#. i18n: file dumpselectionbase.ui line 160 +#: rc.cpp:114 rc.cpp:237 +#, no-c-format +msgid "Jumps" +msgstr "Saltos" + +#. i18n: file dumpselectionbase.ui line 174 +#: rc.cpp:117 +#, no-c-format +msgid "Instructions" +msgstr "Instruções" + +#. i18n: file dumpselectionbase.ui line 189 +#: rc.cpp:120 rc.cpp:240 +#, no-c-format +msgid "Events" +msgstr "Eventos" + +#. i18n: file dumpselectionbase.ui line 202 +#: rc.cpp:123 +#, no-c-format +msgid "Full Cache" +msgstr "Cache Completo" + +#. i18n: file dumpselectionbase.ui line 216 +#: rc.cpp:126 +#, no-c-format +msgid "Custom" +msgstr "Personalizada" + +#. i18n: file dumpselectionbase.ui line 231 +#: rc.cpp:129 +#, no-c-format +msgid "Collect" +msgstr "Recolher" + +#. i18n: file dumpselectionbase.ui line 244 +#: rc.cpp:132 +#, no-c-format +msgid "At Startup" +msgstr "No Início" + +#. i18n: file dumpselectionbase.ui line 258 +#: rc.cpp:135 +#, no-c-format +msgid "While In" +msgstr "Enquanto Em" + +#. i18n: file dumpselectionbase.ui line 273 +#: rc.cpp:138 +#, no-c-format +msgid "Skip" +msgstr "Ignorar" + +#. i18n: file dumpselectionbase.ui line 286 +#: rc.cpp:141 +#, no-c-format +msgid "PLT" +msgstr "PLT" + +#. i18n: file dumpselectionbase.ui line 315 +#: rc.cpp:147 +#, no-c-format +msgid "Dump Profile" +msgstr "Resultado da Análise" + +#. i18n: file dumpselectionbase.ui line 328 +#: rc.cpp:150 +#, no-c-format +msgid "Every BBs" +msgstr "A cada BBs" + +#. i18n: file dumpselectionbase.ui line 342 +#: rc.cpp:153 rc.cpp:162 +#, no-c-format +msgid "On Entering" +msgstr "Ao Entrar" + +#. i18n: file dumpselectionbase.ui line 356 +#: rc.cpp:156 +#, no-c-format +msgid "On Leaving" +msgstr "Ao Sair" + +#. i18n: file dumpselectionbase.ui line 371 +#: rc.cpp:159 +#, no-c-format +msgid "Zero Events" +msgstr "Zero Eventos" + +#. i18n: file dumpselectionbase.ui line 399 +#: rc.cpp:165 +#, no-c-format +msgid "Separate" +msgstr "Separado" + +#. i18n: file dumpselectionbase.ui line 412 +#: rc.cpp:168 +#, no-c-format +msgid "Threads" +msgstr "Threads" + +#. i18n: file dumpselectionbase.ui line 426 +#: rc.cpp:171 +#, no-c-format +msgid "Recursions" +msgstr "Recorrências" + +#. i18n: file dumpselectionbase.ui line 440 +#: rc.cpp:174 +#, no-c-format +msgid "Call Chain" +msgstr "Sequência de Chamadas" + +#. i18n: file dumpselectionbase.ui line 470 +#: rc.cpp:177 +#, no-c-format +msgid "Custom profiler options:" +msgstr "Opções do analisador:" + +#. i18n: file dumpselectionbase.ui line 508 +#: rc.cpp:180 +#, no-c-format +msgid "Run New Profile" +msgstr "Correr uma Nova Análise" + +#. i18n: file dumpselectionbase.ui line 520 +#: rc.cpp:183 +#, no-c-format +msgid "Info" +msgstr "Informação" + +#. i18n: file dumpselectionbase.ui line 531 +#: rc.cpp:186 +#, no-c-format +msgid "Dump reason:" +msgstr "Razão do resultado:" + +#. i18n: file dumpselectionbase.ui line 544 +#: rc.cpp:189 +#, no-c-format +msgid "Event summary:" +msgstr "Sumário do evento:" + +#. i18n: file dumpselectionbase.ui line 561 +#: rc.cpp:195 +#, no-c-format +msgid "Sum" +msgstr "Soma" + +#. i18n: file dumpselectionbase.ui line 579 +#: rc.cpp:198 +#, no-c-format +msgid "Miscellaneous:" +msgstr "Vários:" + +#. i18n: file dumpselectionbase.ui line 617 +#: rc.cpp:201 +#, no-c-format +msgid "Show" +msgstr "Mostrar" + +#. i18n: file dumpselectionbase.ui line 625 +#: rc.cpp:204 +#, no-c-format +msgid "Compare" +msgstr "Comparar" + +#. i18n: file dumpselectionbase.ui line 637 +#: rc.cpp:207 +#, no-c-format +msgid "State" +msgstr "Estado" + +#. i18n: file dumpselectionbase.ui line 656 +#: rc.cpp:210 +#, no-c-format +msgid "Update" +msgstr "'Update'" + +#. i18n: file dumpselectionbase.ui line 664 +#: rc.cpp:213 +#, no-c-format +msgid "Every [s]:" +msgstr "A cada [s]:" + +#. i18n: file dumpselectionbase.ui line 677 +#: rc.cpp:216 +#, no-c-format +msgid "Counter" +msgstr "Contador" + +#. i18n: file dumpselectionbase.ui line 699 +#: rc.cpp:222 +#, no-c-format +msgid "Dumps Done" +msgstr "Resultado Terminado" + +#. i18n: file dumpselectionbase.ui line 713 +#: rc.cpp:225 +#, no-c-format +msgid "Is Collecting" +msgstr "Está a Coligir" + +#. i18n: file dumpselectionbase.ui line 727 +#: rc.cpp:228 +#, no-c-format +msgid "Executed" +msgstr "Executado" + +#. i18n: file dumpselectionbase.ui line 740 +#: rc.cpp:231 +#, no-c-format +msgid "Basic Blocks" +msgstr "Blocos Básicos" + +#. i18n: file dumpselectionbase.ui line 754 +#: callmapview.cpp:63 rc.cpp:234 rc.cpp:339 +#, no-c-format +msgid "Calls" +msgstr "Chamadas" + +#. i18n: file dumpselectionbase.ui line 796 +#: rc.cpp:243 +#, no-c-format +msgid "Ir" +msgstr "Ir" + +#. i18n: file dumpselectionbase.ui line 811 +#: rc.cpp:246 +#, no-c-format +msgid "Distinct" +msgstr "Distinto" + +#. i18n: file dumpselectionbase.ui line 824 +#: configdlg.cpp:58 rc.cpp:249 +#, no-c-format +msgid "ELF Objects" +msgstr "Objectos ELF" + +#. i18n: file dumpselectionbase.ui line 838 +#: rc.cpp:252 +#, no-c-format +msgid "Functions" +msgstr "Funções" + +#. i18n: file dumpselectionbase.ui line 852 +#: rc.cpp:255 +#, no-c-format +msgid "Contexts" +msgstr "Contextos" + +#. i18n: file dumpselectionbase.ui line 890 +#: rc.cpp:258 +#, no-c-format +msgid "Stack trace:" +msgstr "Pilha:" + +#. i18n: file dumpselectionbase.ui line 898 +#: rc.cpp:261 +#, no-c-format +msgid "Sync." +msgstr "Sinc." + +#. i18n: file dumpselectionbase.ui line 950 +#: callmapview.cpp:61 rc.cpp:276 rc.cpp:321 +#, no-c-format +msgid "Location" +msgstr "Localização" + +#. i18n: file dumpselectionbase.ui line 976 +#: rc.cpp:279 +#, no-c-format +msgid "Start" +msgstr "Início" + +#. i18n: file dumpselectionbase.ui line 1001 +#: rc.cpp:282 +#, no-c-format +msgid "Zero" +msgstr "Zero" + +#. i18n: file dumpselectionbase.ui line 1009 +#: rc.cpp:285 +#, no-c-format +msgid "Dump" +msgstr "Resultado" + +#. i18n: file dumpselectionbase.ui line 1021 +#: rc.cpp:288 +#, no-c-format +msgid "Messages" +msgstr "Mensagens" + +#. i18n: file dumpselectionbase.ui line 1045 +#: rc.cpp:291 +#, no-c-format +msgid "Kill Run" +msgstr "Terminar a Execução" + +#. i18n: file functionselectionbase.ui line 41 +#: rc.cpp:300 +#, no-c-format +msgid "&Search:" +msgstr "&Procurar:" + +#. i18n: file functionselectionbase.ui line 73 +#: rc.cpp:306 +#, no-c-format +msgid "Group" +msgstr "Grupo" + +#. i18n: file partselectionbase.ui line 60 +#: rc.cpp:327 +#, no-c-format +msgid "(no trace parts)" +msgstr "(sem partes do traceamento)" + +#. i18n: file stackselectionbase.ui line 16 +#: rc.cpp:330 +#, no-c-format +msgid "Stack Selection" +msgstr "Selecção da Pilha" + +#. i18n: file stackselectionbase.ui line 42 +#: rc.cpp:336 +#, no-c-format +msgid "Cost2" +msgstr "Custo2" + +#: treemap.cpp:1281 +#, c-format +msgid "Text %1" +msgstr "Texto %1" + +#: treemap.cpp:2809 +msgid "Recursive Bisection" +msgstr "Bissecção Recursiva" + +#: treemap.cpp:2810 +msgid "Columns" +msgstr "Colunas" + +#: treemap.cpp:2811 +msgid "Rows" +msgstr "Linhas" + +#: treemap.cpp:2812 +msgid "Always Best" +msgstr "Sempre o Melhor" + +#: treemap.cpp:2813 +msgid "Best" +msgstr "Melhor" + +#: treemap.cpp:2814 +msgid "Alternate (V)" +msgstr "Alternar (V)" + +#: treemap.cpp:2815 +msgid "Alternate (H)" +msgstr "Alternativo (H)" + +#: treemap.cpp:2872 +msgid "Nesting" +msgstr "Aninhamento" + +#: treemap.cpp:2875 +msgid "Correct Borders Only" +msgstr "Apenas Corrigir os Contornos" + +#: treemap.cpp:2877 treemap.cpp:2878 treemap.cpp:2879 treemap.cpp:2880 +#, c-format +msgid "Width %1" +msgstr "Largura %1" + +#: callmapview.cpp:321 treemap.cpp:2889 +msgid "Shading" +msgstr "Sombreado" + +#: treemap.cpp:2902 +msgid "Visible" +msgstr "Visível" + +#: treemap.cpp:2903 +msgid "Take Space From Children" +msgstr "Tirar Espaço aos Filhos" + +#: treemap.cpp:2905 +msgid "Top Left" +msgstr "Topo Esquerda" + +#: treemap.cpp:2906 +msgid "Top Center" +msgstr "Topo Centro" + +#: treemap.cpp:2907 +msgid "Top Right" +msgstr "Topo Direita" + +#: treemap.cpp:2909 +msgid "Bottom Center" +msgstr "Fundo Centro" + +#: treemap.cpp:2910 +msgid "Bottom Right" +msgstr "Fundo Direita" + +#: treemap.cpp:2987 +msgid "No %1 Limit" +msgstr "Sem Limite de %1" + +#: callmapview.cpp:243 treemap.cpp:3039 +msgid "No Area Limit" +msgstr "Sem Limite de Área" + +#: callmapview.cpp:258 treemap.cpp:3045 +msgid "Area of '%1' (%2)" +msgstr "Área de '%1' (%2)" + +#: treemap.cpp:3056 treemap.cpp:3067 +#, c-format +msgid "" +"_n: 1 Pixel\n" +"%n Pixels" +msgstr "" +"%n Ponto\n" +"%n Pontos" + +#: callmapview.cpp:264 treemap.cpp:3071 +msgid "Double Area Limit (to %1)" +msgstr "Limite Duplo da Área (para %1)" + +#: treemap.cpp:3073 +msgid "Halve Area Limit (to %1)" +msgstr "Metade do Limite da Área (para %1)" + +#: callmapview.cpp:187 treemap.cpp:3101 +msgid "No Depth Limit" +msgstr "Sem Limite de Profundidade" + +#: callmapview.cpp:198 treemap.cpp:3107 +msgid "Depth of '%1' (%2)" +msgstr "Profundidade de '%1' (%2)" + +#: treemap.cpp:3118 +#, c-format +msgid "Depth %1" +msgstr "Profundidade %1" + +#: treemap.cpp:3122 +msgid "Decrement (to %1)" +msgstr "Decrementar (para %1)" + +#: treemap.cpp:3124 +msgid "Increment (to %1)" +msgstr "Incrementar (para %1)" + +#: callmapview.cpp:98 +msgid "" +"Caller Map" +"

          This graph shows the nested hierarchy of all callers of the current " +"activated function. Each colored rectangle represents a function; its size " +"tries to be proportional to the cost spent therein while the active function is " +"running (however, there are drawing constrains).

          " +msgstr "" +"Mapa dos Chamadores" +"

          Este gráfico mostra a hierarquia aninhada de todas as funções que chamam a " +"função activada no momento. Cada rectângulo colorido representa uma função; o " +"seu tamanho tenta ser proporcional ao custo dispendido enquanto a função actual " +"está a correr (todavia, existem restrições no desenho).

          " + +#: callmapview.cpp:105 +msgid "" +"Call Map" +"

          This graph shows the nested hierarchy of all callees of the current " +"activated function. Each colored rectangle represents a function; its size " +"tries to be proportional to the cost spent therein while the active function is " +"running (however, there are drawing constrains).

          " +msgstr "" +"Mapa dos Chamados" +"

          Este gráfico mostra a hierarquia aninhada de todas as funções que a função " +"activada no momento chama. Cada rectângulo colorido representa uma função; o " +"seu tamanho tenta ser proporcional ao custo dispendido enquanto a função actual " +"está a correr (todavia, existem restrições no desenho).

          " + +#: callmapview.cpp:113 +msgid "" +"

          Appearance options can be found in the in the context menu. To get exact " +"size proportions, choose 'Hide incorrect borders'. As this mode can be " +"very time consuming, you may want to limit the maximum drawn nesting level " +"before. 'Best' determinates the split direction for children from the aspect " +"ratio of the parent. 'Always Best' decides on remaining space for each sibling. " +"'Ignore Proportions' takes space for function name drawing before " +"drawing children. Note that size proportions can get heavily wrong.

          " +"

          This is a TreeMap widget. Keyboard navigation is available with the " +"left/right arrow keys for traversing siblings, and up/down arrow keys to go a " +"nesting level up/down. Return activates the current item.

          " +msgstr "" +"

          As opções da aparência poderão ser encontradas no menu de contexto. Para " +"obter as proporções exactas de tamanhos, escolha o 'Esconder os contornos " +"incorrectos'. Dado que este modo pode consumir bastante " +"tempo, você poderá querer limita o nível de aninhamento máximo antes. O " +"'Melhor' determina a direcção da divisão para os filhos com base nas proporções " +"do pai. O 'Sempre o Melhor' decide com base no espaço restante para cada item " +"ao mesmo nível. O 'Ignorar as Proporções' ocupa espaço para o nome das funções " +"antes de desenhar os filhos. Lembre-se que as proporções de tamanho " +"podem ficar muito erradas.

          " +"

          Este é um item em Árvore. A navegação com o teclado está disponível " +"com as teclas de cursores esquerda/direita para percorrer os itens do mesmo " +"nível, enquanto que os cursores para cima/baixa sobem ou descem, " +"respectivamente, um nível de aninhamento. O Return " +"activa o item actual.

          " + +#: callmapview.cpp:167 +msgid "Go To" +msgstr "Ir Para" + +#: callmapview.cpp:184 +msgid "Stop at Depth" +msgstr "Parar na Profundidade" + +#: callmapview.cpp:190 +msgid "Depth 10" +msgstr "Profundidade 10" + +#: callmapview.cpp:192 +msgid "Depth 15" +msgstr "Profundidade 15" + +#: callmapview.cpp:194 +msgid "Depth 20" +msgstr "Profundidade 20" + +#: callmapview.cpp:204 +msgid "Decrement Depth (to %1)" +msgstr "Decrementar a Profundidade (para %1)" + +#: callmapview.cpp:205 +msgid "Increment Depth (to %1)" +msgstr "Incrementar a Profundidade (para %1)" + +#: callmapview.cpp:209 +msgid "Stop at Function" +msgstr "Parar na Função" + +#: callmapview.cpp:210 +msgid "No Function Limit" +msgstr "Sem Limite de Função" + +#: callmapview.cpp:240 +msgid "Stop at Area" +msgstr "Parar na Área" + +#: callmapview.cpp:246 +msgid "50 Pixels" +msgstr "50 Pontos" + +#: callmapview.cpp:248 +msgid "100 Pixels" +msgstr "100 Pontos" + +#: callmapview.cpp:250 +msgid "200 Pixels" +msgstr "200 Pontos" + +#: callmapview.cpp:252 +msgid "500 Pixels" +msgstr "500 Pontos" + +#: callmapview.cpp:266 +msgid "Half Area Limit (to %1)" +msgstr "Dividir ao Meio o Limite da Área (para %1)" + +#: callmapview.cpp:273 +msgid "Visualisation" +msgstr "Visualização" + +#: callmapview.cpp:277 +msgid "Split Direction" +msgstr "Direcção de Divisão" + +#: callmapview.cpp:279 +msgid "Skip Incorrect Borders" +msgstr "Ignorar as Margens Incorrectas" + +#: callmapview.cpp:284 +msgid "Border Width" +msgstr "Espessura do Contorno" + +#: callmapview.cpp:285 +msgid "Border 0" +msgstr "Margem 0" + +#: callmapview.cpp:288 +msgid "Border 1" +msgstr "Margem 1" + +#: callmapview.cpp:290 +msgid "Border 2" +msgstr "Margem 2" + +#: callmapview.cpp:292 +msgid "Border 3" +msgstr "Margem 3" + +#: callmapview.cpp:297 +msgid "Draw Symbol Names" +msgstr "Desenhar os Nomes dos Símbolos" + +#: callmapview.cpp:298 +msgid "Draw Cost" +msgstr "Desenhar o Custo" + +#: callmapview.cpp:299 +msgid "Draw Location" +msgstr "Desenhar a Localização" + +#: callmapview.cpp:300 +msgid "Draw Calls" +msgstr "Desenhar as Chamadas" + +#: callmapview.cpp:431 +msgid "Call Map: Current is '%1'" +msgstr "Mapa de Chamadas: O actual é o '%1'" + +#: callmapview.cpp:599 +msgid "(no function)" +msgstr "(sem função)" + +#: callmapview.cpp:741 callmapview.cpp:858 +msgid "(no call)" +msgstr "(sem chamada)" + +#: cachegrindloader.cpp:141 +msgid "Import filter for Cachegrind/Callgrind generated profile data files" +msgstr "" +"Filtro de importação para os ficheiros de análise gerados pelo " +"Cachegrind/Callgrind" + +#: cachegrindloader.cpp:738 +#, c-format +msgid "Loading %1" +msgstr "A carregar o %1" + +#: callview.cpp:47 callview.cpp:51 +msgid "Count" +msgstr "Quantidade" + +#: callview.cpp:85 +msgid "" +"List of direct Callers" +"

          This list shows all functions calling the current selected one directly, " +"together with a call count and the cost spent in the current selected function " +"while being called from the function from the list.

          " +"

          An icon instead of an inclusive cost specifies that this is a call inside of " +"a recursive cycle. An inclusive cost makes no sense here.

          " +"

          Selecting a function makes it the current selected one of this information " +"panel. If there are two panels (Split mode), the function of the other panel is " +"changed instead.

          " +msgstr "" +"Lista dos Chamadores Directos" +"

          Esta lista mostra todas as funções que invocam directamente a função " +"seleccionada no momento, em conjunto com um número de chamadas e o custo " +"(acumulado) dispendido na função seleccionada enquanto é chamada pela função da " +"lista.

          " +"

          Se aparecer um ícone em vez do custo acumulado, significa que esta é uma " +"chamada dentro de um ciclo recursivo. Neste caso, não faz sentido um custo " +"acumulado.

          " +"

          Se seleccionar uma função, torna-a a actual neste painel de informações. Se " +"existirem dois painéis (modo dividido), é alterada a função do outro painel.

          " + +#: callview.cpp:98 +msgid "" +"List of direct Callees" +"

          This list shows all functions called by the current selected one directly, " +"together with a call count and the cost spent in this function while being " +"called from the selected function.

          " +"

          Selecting a function makes it the current selected one of this information " +"panel. If there are two panels (Split mode), the function of the other panel is " +"changed instead.

          " +msgstr "" +"Lista dos Chamados Directos" +"

          Esta lista mostra todas as funções chamadas pela função seleccionada no " +"momento, em conjunto com um número de chamadas e o custo (acumulado) dispendido " +"nesta função enquanto é chamada pela função seleccionada.

          " +"

          Se seleccionar uma função, torna-a a actual neste painel de informações. Se " +"existirem dois painéis (modo dividido), é alterada a função do outro painel.

          " + +#: costtypeitem.cpp:56 +msgid "Unknown Type" +msgstr "Tipo Desconhecido" + +#: tips.cpp:3 +msgid "" +"

          ...that the What's This? help for every GUI widget\n" +"in KCachegrind contains detailed usage information for this widget?\n" +"It is highly recommended to read at least these help texts on first\n" +"use. Request What's This? help by pressing\n" +"Shift+F1 and clicking on the widget.

          \n" +msgstr "" +"

          ...a ajuda O Que É Isto? para cada item da interface do\n" +"KCachegrind contém dados de utilização detalhados sobre este item?\n" +"Recomenda-se que leia, pelo menos, estes textos na primeira utilização.\n" +"Peça a ajuda O Que É Isto? se carregar em Shift-F1 e depois no\n" +"elemento gráfico.

          \n" + +#: tips.cpp:12 +msgid "" +"

          ...that you can get profile information at instruction level\n" +"with Calltree when you provide the option --dump-instr=yes?\n" +"Use the Assembler View for the instruction annotations.\n" +"

          \n" +msgstr "" +"

          ...pode obter informações de análise ao nível da instrução com a\n" +"Árvore de Chamadas quando passa a opção --dump-instr=yes?\n" +"Utilize a Janela do 'Assembler' para as anotações das instruções.\n" +"

          \n" + +#: tips.cpp:20 +msgid "" +"

          ...that you can use Alt-Left/Right keys of your keyboard to go\n" +"back/forward in the active object history ?

          \n" +msgstr "" +"

          ...pode usar as teclas Alt-Esquerda/Direita do seu teclado para \n" +"recuar/avançar no histórico do objecto activo ?

          \n" + +#: tips.cpp:26 +msgid "" +"

          ...that you can navigate in the Callee/Caller Map View using\n" +"arrow keys? Use Left/Right to change to siblings of the current\n" +"item; use Up/Down to go one nesting level up/down. To select\n" +"the current item, press Space, and to activate it, press Return.\n" +"

          \n" +msgstr "" +"

          ...pode navegar no Mapa de Chamadores/Chamados usando as teclas\n" +"dos cursores? Use a Esquerda/Direita para mudar para os itens no mesmo\n" +"nível do actual; use o Cima/Baixo para subir/descer um nível de aninhamento.\n" +"Para seleccionar o item actual, carregue em Espaço, ou em Return para\n" +"o activar.\n" +"

          \n" + +#: tips.cpp:35 +msgid "" +"

          ...that you can navigate in the Call Graph View using\n" +"arrow keys? Use Up/Down to go one calling level up/down, alternating\n" +"between calls and functions. Use Left/Right to change to siblings of a current\n" +"selected call. To activate the current item, press Return.\n" +"

          \n" +msgstr "" +"

          ...pode navegar no Grafo de Chamadas usando as teclas\n" +"dos cursores? Use a Esquerda/Direita para mudar para as chamadas/funções\n" +"no mesmo nível da chamada actual; use o Cima/Baixo para subir/descer\n" +"um nível de chamada. Para seleccionar o item actual, carregue em Espaço,\n" +"ou em Return para o activar.\n" +"

          \n" + +#: tips.cpp:44 +msgid "" +"

          ...that you can rapidly locate a function by entering part of its\n" +"name (case-insensitive) into the edit line of the toolbar\n" +"and hit return?

          \n" +msgstr "" +"

          ...pode localizar rapidamente uma função se indicar parte do seu nome\n" +"(sem distinção de maiúsculas ou minúsculas) no campo de edição da barra\n" +"de ferramentas e carregar em RETURN?

          \n" + +#: tips.cpp:51 +msgid "" +"

          ...that you can assign custom colors to \n" +"ELF objects/C++ Classes/Source Files for graph coloring\n" +"in Settings->Configure KCachegrind...?

          \n" +msgstr "" +"

          ...pode atribuir cores personalizadas aos\n" +"objectos ELF/Classes de C++/Ficheiros de Código para a coloração do gráfico\n" +"na opção Configuração->Configurar o KCachegrind...?

          \n" + +#: tips.cpp:58 +msgid "" +"

          ...that you can see if debug info is available for a selected \n" +"function by looking at the location label in the Info tab or\n" +"the source listing header in the source tab?

          \n" +"

          There must be the name of the source file (with extension).\n" +"If KCachegrind still doesn't show the source, make sure that you\n" +"have added the directory of the source file to the\n" +"Source Directories list in the configuration.\n" +msgstr "" +"

          ...pode ver se a informação de depuração está disponível para\n" +"uma dada função se ver o texto da localização na página Informação\n" +"ou no cabeçalho da listagem de código na página do código?

          \n" +"

          Esta deverá ser o nome do ficheiro de código (com a extensão).\n" +"Se o KCachegrind mesmo assim não mostrar o código, certifique-se que\n" +"adicionou a directoria do ficheiro de código à lista das \n" +"Directorias de Código na configuração.\n" + +#: tips.cpp:69 +msgid "" +"

          ...that you can configure whether KCachgrind should\n" +"show absolute event counts or relative ones (percentage display)?

          \n" +msgstr "" +"

          ...pode configurar se o KCachegrind deve mostrar as quantidades\n" +"absolutas dos eventos ou as relativas (versão percentual)?

          \n" + +#: tips.cpp:75 +msgid "" +"

          ...that you can configure the maximum number of items\n" +"for all function lists in KCachegrind? Limiting the number\n" +"of items is done to get a fast reacting GUI. The last item in\n" +"the list will show you the number of skipped functions, together\n" +"with a cost condition for these skipped functions.

          \n" +"

          To activate a function with small costs, search for it and select\n" +"it in the flat profile. Selecting functions with small cost will\n" +"temporarily add them to the flat profile list.

          \n" +msgstr "" +"

          ...pode configurar o número máximo de itens para todas as listas\n" +"de funções do KCachegrind? A limitação do número de itens é feita para\n" +"ficar com a interface mais rápida. O último item da lista mostrar-lhe-á\n" +"o número de funções ignoradas, em conjunto com uma condição de custo para\n" +"essas funções ignoradas.

          \n" +"

          Para activar uma função com custos baixos, procure por ela e seleccione-a\n" +"na análise simples. Se seleccionar as funções com custo baixo adicioná-las-á\n" +"à lista das análises simples temporariamente.

          \n" + +#: tips.cpp:87 +msgid "" +"

          ...that the Coverage tab - in contrast to the Call Lists tab -\n" +"shows all functions that are calling the selected function\n" +"(upper part) / are called by the selected function (bottom part),\n" +"no matter how many function are between them on the stack?

          \n" +"

          Examples:

          \n" +"

          An entry in the upper list for function foo1() with a value of 50%\n" +"with function bar() selected means that 50% of all the cost of function\n" +"bar() happened while called from function foo1().

          \n" +"

          An entry in the bottom list for function foo2() with a value of 50%\n" +"with function bar() selected means that 50% of all the cost of function\n" +"bar() happened while calling foo2() from bar().

          \n" +msgstr "" +"

          ...a página de Cobertura - em contraste com a página de Listas de \n" +"Chamadas - mostra todas as funções que estão a chamar a função\n" +"seleccionada (parte superior) ou que são chamadas pela mesma função\n" +"(parte inferior), independentemente de quantas funções existem entre\n" +"elas na pilha?

          \n" +"

          Exemplos:

          \n" +"

          Um item na lista superior para a função teste1() com um valor de 50%\n" +"com a função testada() seleccionada, significa que 50% do custo total da\n" +"função testada() ocorreu enquanto foi chamada pela função teste1().

          \n" +"

          Um item na lista inferior para a função teste2() com um valor de 50%\n" +"com a função testada() seleccionada, significa que 50% do custo total da\n" +"função testada() ocorreu enquanto chamou a teste2() a partir de si.

          \n" + +#: tips.cpp:102 +msgid "" +"

          ...that waiting for the tool tip inside of a tree map\n" +"shows the list of names of the nested rectangles the mouse\n" +"pointer is over?

          \n" +"

          Items from this list can be selected by pressing the right\n" +"mouse button.

          \n" +msgstr "" +"

          ...se esperar pela dica, dentro de um mapa da árvore mostra\n" +"a lista dos nomes nos rectângulos aninhados em que o cursor do\n" +"rato se encontra?

          \n" +"

          Os itens desta lista podem ser seleccionados se carregar com\n" +"o botão direito do rato.

          \n" + +#: tips.cpp:111 +msgid "" +"

          ...that you can constrain the cost counts shown to only a\n" +"few parts of the whole trace by selecting these parts in the\n" +"\"Trace Selection\" Dockable?

          \n" +"

          To generate multiple parts in a profiling run with\n" +"cachegrind, use e.g. option --cachedumps=xxx for parts\n" +"of a length of xxx basic blocks (A basic block is a run\n" +"of not-branching assembler statements inside of your program\n" +"code).

          \n" +msgstr "" +"

          ...você pode restringir as quantidades de custos mostradas apenas\n" +"a algumas partes do traceamento completo ao seleccionar essas partes\n" +"na área de \"Selecção do Traceamento\"?

          \n" +"

          Para gerar várias partes na execução de uma análise com o \n" +"'cachegrind', use p.ex. a opção --cachedumps=xxx para as partes\n" +"com um número de xxxx blocos básicos (Um bloco básico é a execução \n" +"de um conjunto de instruções de Assembly sem saltos, dentro do código\n" +"do seu programa).

          \n" + +#: configdlg.cpp:60 +msgid "Source Files" +msgstr "Ficheiros de Código" + +#: configdlg.cpp:61 +msgid "C++ Classes" +msgstr "Classes C++" + +#: configdlg.cpp:62 +msgid "Function (no Grouping)" +msgstr "Função (sem agrupamento)" + +#: configdlg.cpp:157 configdlg.cpp:350 configdlg.cpp:371 +msgid "(always)" +msgstr "(sempre)" + +#: configdlg.cpp:210 +msgid "KCachegrind Configuration" +msgstr "Configuração da KCachegrind" + +#: configdlg.cpp:211 +msgid "" +"The Maximum Number of List Items should be below 500.The previous set value " +"(%1) will still be used." +msgstr "" +"O Número Máximo de Itens da Lista deverá ser menor que 500. O valor anterior " +"(%1) continuará a ser usado." + +#: configdlg.cpp:384 +msgid "Choose Source Folder" +msgstr "Escolha a Pasta com Código" + +#: partgraph.cpp:167 +#, c-format +msgid "Profile Part %1" +msgstr "Parte da Análise %1" + +#: partgraph.cpp:226 +msgid "(no trace)" +msgstr "(sem traceamento)" + +#: partgraph.cpp:229 +msgid "(no part)" +msgstr "(sem parte)" + +#: partview.cpp:51 +msgid "Comment" +msgstr "Comentário" + +#: partview.cpp:73 +msgid "" +"Trace Part List" +"

          This list shows all trace parts of the loaded trace. For each part, the " +"self/inclusive cost of the current selected function, spent in the part, is " +"shown; percentage costs are always relative to the total cost " +"of the part (not to the whole trace as in the Trace Part Overview). Also " +"shown are the calls happening to/from the current function inside of the trace " +"part.

          " +"

          By choosing one or more trace parts from the list, the costs shown all over " +"KCachegrind will only be the ones spent in the selected part(s). If no list " +"selection is shown, in fact all trace parts are selected implicitly.

          " +"

          This is a multi-selection list. You can select ranges by dragging the mouse " +"or use SHIFT/CTRL modifiers. Selection/Deselection of trace parts can also be " +"done by using the Trace Part Overview Dockable. This one also supports multiple " +"selection.

          " +"

          Note that the list is hidden if only one trace part is loaded.

          " +msgstr "" +"Lista das Partes do Traceamento" +"

          Esta lista mostra todas as partes do traceamento carregado. Para cada parte " +"é mostrado o custo próprio/acumulado da função seleccionada no momento " +"dispendido na parte; os custos percentuais são sempre relativos ao custo total " +"da parte (não é em relação ao traceamento completo na Vista Geral da " +"Parte do Traceamento). Também são apresentadas as chamadas que acontecem " +"de/para a função actual, dentro da parte do traceamento.

          " +"

          Ao seleccionar uma ou mais partes do traceamento na lista, os custos " +"mostrados no KCachegrind serão apenas os dispendidos nas partes seleccionadas. " +"Se não for mostrada nenhuma selecção da lista, ficam seleccionadas " +"implicitamente todas as partes do traceamento.

          " +"

          Esta lista de selecção multiplica. Você poderá seleccionar intervalos se " +"arrastar o rato ou usar os modificadores SHIFT/CTRL. A selecção/desactivação " +"das partes do traceamento também poderá ser feita ao usar a área da Vista Geral " +"das Partes do Traceamento. Esta também suporta selecções múltiplas.

          " +"

          Lembre-se que a lista fica escondida se só for carregada uma parte do " +"traceamento.

          " + +#: partview.cpp:106 +msgid "Select '%1'" +msgstr "Seleccionar '%1'" + +#: partview.cpp:107 +msgid "Hide '%1'" +msgstr "Esconder '%1'" + +#: partview.cpp:111 +msgid "Hide Selected" +msgstr "Esconder os Seleccionados" + +#: partview.cpp:112 +msgid "Show All" +msgstr "Mostrar Tudo" -- cgit v1.2.1