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-es/docs/tdesdk/kcachegrind/Makefile.am | 4 - tde-i18n-es/docs/tdesdk/kcachegrind/Makefile.in | 635 ----- .../docs/tdesdk/kcachegrind/index.cache.bz2 | Bin 15745 -> 0 bytes tde-i18n-es/docs/tdesdk/kcachegrind/index.docbook | 1034 ------- tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.am | 4 + tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.in | 635 +++++ .../docs/tdesdk/tdecachegrind/index.cache.bz2 | Bin 0 -> 15745 bytes .../docs/tdesdk/tdecachegrind/index.docbook | 1034 +++++++ tde-i18n-es/messages/tdesdk/kcachegrind.po | 2950 -------------------- tde-i18n-es/messages/tdesdk/tdecachegrind.po | 2950 ++++++++++++++++++++ 10 files changed, 4623 insertions(+), 4623 deletions(-) delete mode 100644 tde-i18n-es/docs/tdesdk/kcachegrind/Makefile.am delete mode 100644 tde-i18n-es/docs/tdesdk/kcachegrind/Makefile.in delete mode 100644 tde-i18n-es/docs/tdesdk/kcachegrind/index.cache.bz2 delete mode 100644 tde-i18n-es/docs/tdesdk/kcachegrind/index.docbook create mode 100644 tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.am create mode 100644 tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.in create mode 100644 tde-i18n-es/docs/tdesdk/tdecachegrind/index.cache.bz2 create mode 100644 tde-i18n-es/docs/tdesdk/tdecachegrind/index.docbook delete mode 100644 tde-i18n-es/messages/tdesdk/kcachegrind.po create mode 100644 tde-i18n-es/messages/tdesdk/tdecachegrind.po (limited to 'tde-i18n-es') diff --git a/tde-i18n-es/docs/tdesdk/kcachegrind/Makefile.am b/tde-i18n-es/docs/tdesdk/kcachegrind/Makefile.am deleted file mode 100644 index 2d733d1b104..00000000000 --- a/tde-i18n-es/docs/tdesdk/kcachegrind/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -KDE_LANG = es -SUBDIRS = $(AUTODIRS) -KDE_DOCS = AUTO -KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdesdk/kcachegrind/Makefile.in b/tde-i18n-es/docs/tdesdk/kcachegrind/Makefile.in deleted file mode 100644 index 28b7eab5671..00000000000 --- a/tde-i18n-es/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 = es -#>- 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-es/docs/tdesdk/kcachegrind/index.cache.bz2 b/tde-i18n-es/docs/tdesdk/kcachegrind/index.cache.bz2 deleted file mode 100644 index ee53fcde38b..00000000000 Binary files a/tde-i18n-es/docs/tdesdk/kcachegrind/index.cache.bz2 and /dev/null differ diff --git a/tde-i18n-es/docs/tdesdk/kcachegrind/index.docbook b/tde-i18n-es/docs/tdesdk/kcachegrind/index.docbook deleted file mode 100644 index becd42b6082..00000000000 --- a/tde-i18n-es/docs/tdesdk/kcachegrind/index.docbook +++ /dev/null @@ -1,1034 +0,0 @@ - -KCachegrind'> - Cachegrind"> - Calltree"> - Callgrind"> - Valgrind"> - OProfile"> - - - - -]> - - - - - - -Manual de &tdecachegrind; - - -Josef Weidendorfer
Josef.Weidendorfer@gmx.de
-
-
- - Marcos Fouces Lago
mfouces@yahoo.es
Traductor
- -
- - -2002-2004 -Josef Weidendorfer - -&FDLNotice; - -2004-07-27 -0.4.6 - - -&tdecachegrind; es una herramienta para visualizar perfilados cómodamente escrita para el escritorio &kde;. - - - -KDE -tdesdk -Cachegrind -Callgrind -Valgrind -Perfilado - - -
- - - -Introducción - -&kappname; es una herramienta para visualizar cómodamente la salida de herramientas de perfilado de software. En este capítulo se explican para qué sirve un perfilado, cómo se hace así como algunos ejemplos de herramientas disponibles para ello. - - -Perfilado - -Cuando se desarrolla un programa, una de las etapas finales consiste en optimizar su rendimiento. Dado que no es muy productivo dedicar mucho tiempo a optimizar funciones escasamente usadas, necesitaremos saber en qué partes del programa se concentra la mayoría del tiempo de ejecución. - -Para el código secuencial, suele ser suficiente recabar datos estadísticos sobre características de ejecución de las aplicaciones, cosas como el tiempo que el programa pasa ejecutando una misma función o línea de código. Esto es lo que recibe el nombre de perfilado. El programa s ejecuta bajo el control de una herramienta de perfilado que será la que nos aporte la información sobre la ejecución de un programa cuando esté se cierre. En contraste con esto, en el código paralelo los problemas de rendimiento suelen ser causa de que un procesador está esperando información de otro. Dado que no es sencillo reconocer esto, en este caso sería preferible generar un trazado de tiempos en que ocurren los eventos pero KCachegrind no puede visualizar estos datos. - -Después de analizar los datos de perfilado obtenidos, será sencillo ver los puntos fuertes y débiles del código: podremos, por ejemplo, comprobar el número de llamadas e identificar las partes del código que pueden ser optimizadas. Una vez optimizado el código, puede comprobarse si se ha hecho bien realizando otro perfilado. - - - -Métodos de perfilado - -Para medir exactamente el tiempo transcurrido o registrar lo que sucede durante la ejecución de una determinada parte del programa (p.ej. una función) será necesario añadir algún código antes y después de estas partes que nos permita realizar estas medidas. Este código cuenta el tiempo transcurrido o contabiliza algún evento y calcula diferencias. Esto hace que sea necesario cambiar el código original antes de ejecutarlo. esto recibe el nombre de instrumentación y puede realizarse por el propio programa, el compilador o el propio sistema en ejecución. Dados que las partes de interés suelen estar anidadas, la sobrecarga producida por las propias medidas a menudo influye en las propias medidas. La instrumentación debe hacerse selectivamente y sus resultados deben interpretarse con cuidado. Esto hace que el análisis de rendimiento mediante medidas exactas sea un proceso muy complejo. - -Es posible realizar medidas exactas gracias a los contadores hardware (incluyendo aquellos que se incrementan con cada ciclo de procesador) incluidos en los modernos procesadores que se incrementan cada vez que ocurre un determinado evento. Dado que queremos relacionar eventos con determinadas regiones de código, necesitaremos gestionar cualquier evento incrementando un contador para dicha región de código. Obviamente, esto es imposible de llevar a cabo mediante software, pero asumiendo que, estadísticamente, la distribución de eventos en el código fuente es similar al considerar sólo algunas medidas en lugar de considerarlas podemos usar un método llamado sampling (muestreo) para realizar las medidas. El muestreo temporal (Time Based Sampling o TBS) hace uso de un temporizador para monitorizar cada cierto tiempo el contador de un programa y crear un histograma sobre el código del programa. El muestreo de eventos (Event Based Sampling o EBS) hace uso de los contadores por hardware de los modernos procesadores - -Otro método de medida consiste en simular lo que ocurre en el sistema cuando se ejecuta un determinado código. La simulación se realiza siempre partiendo de un modelo más o menos exacto del sistema, sin embargo es posible obtener modelos muy precisos que funcionen casi igual que en la realidad en los cuales el tiempo empleado en la simulación sea inaceptablemente alto. La ventaja de la simulación es que podemos insertar código más o menos complejo en el código a estudiar sin alterar los resultados. Es muy cómodo realizar esto directamente antes de la ejecución debido a que usamos el binario original sin necesidad de recompilarlo. La simulación es útil cuando se simulan sólo partes de una máquina con un modelo sencillo, así además se obtienen resultados de más fácil interpretación. A menudo el problema de trabajar con hardware real es que varios efectos de diferentes partes de la máquina se solapan en un mismo resultado. - - - -Herramientas de perfilado - -La más conocida es la herramienta de perfilado de GCC gprof; para su uso, es necesario compilar los programas a perfilar con la opción , al ejecutarlos se crea un archivo llamado gmon.out que puede convertirse a un formato legible mediante gprof. Una desventaja es que se necesita recompilar el programa y enlazarlo estáticamente. Este método se llama instrumentación generada mediante el compilador que consiste en la medida de los arcos de las llamadas entre funciones y las correspondientes llamadas entre las funciones - Junto con el TBS - que nos aportará un histograma de distribución temporal en el código. Usando amabas fuentes de información, es posible calcular heurísticamente el tiempo dedicado a la ejecución de una función junto con el de todas las que han sido llamadas por ella. - -Para medir con exactitud los eventos que están ocurriendo en un momento dado, están disponibles algunas librerías con funciones capaces de leer los contadores de rendimiento del hardware. Las más conocidas son el parche PerfCtr para Linux y las librerías PAPI y PCL independientes de la arquitectura del sistema. Aún así, es necesario instrumentalizar el código como en el caso anterior. Puede optar por usar las propias librerías o por sistemas de instrumentación automática como ADAPTOR (para la instrumentación de código en FORTRAN) o DynaProf (inyección de código a través de DynInst). - -&oprofile; es un herramienta de perfilado para Linux basada en el muestreo. - -Una manera cómoda para realizar perfilados consiste en el uso de Cachegrind o Callgrind, dos simuladores que usan la estructura de instrumentación de &valgrind;. Debido a que no es necesario recurrir a contadores por hardware (a menudo difíciles de acceder en las actuales distribuciones de Linux) y a que es posibles perfilar los binarios sin modificarlos, es una buena alternativa a otras herramientas de perfilado. Puede minimizarse el problema de la ralentización causado por la simulación realizándola sólo en las partes del programa que nos interesan e incluso en unos pocos ciclos de algún bucle.Sin medir/simular la instrumentación, el uso de Valgrind sólo tiene una factor de ralentización en un rango de 3 a 5. También es posible desactivar la simulación de caché si sólo nos interesan el gráfico y el número de llamadas. - -La simulación del caché es el primer paso para aproximarnos a los tiempos de ejecución reales ya que los sistemas modernos hacen un fuerte uso de los caches (buffers pequeños y rápidos que permiten acelerar accesos repetidos a las mismas celdas de memoria). &cachegrind; realiza la simulación del caché atrapando esos accesos a la memoria. La información obtenida incluye el número de la instrucción o acceso a la memoria y las pérdidas del caché de primero y segundo nivel y las relaciona con las áreas del código correspondientes. Combinando los datos de dichas pérdidas mediante el empleo de las pérdidas latentes de los procesadores más comunes, es posible obtener una estimación del tiempo empleado. - -Callgrind es una extensión de &cachegrind; que crea el gráfico de llamadas de un programa al vuelo, &ie; como las funciones se llaman entre sí y cuantos eventos ocurren mientras se ejecuta una función. También es posible separar la información a recabar por hebras o por contextos de llamadas. Puede aportar datos de perfilado a nivel de instrucción que permita anotar código desensamblado. - - - -Visualización - -Las herramientas de perfilado suelen producir gran cantidad de información. El deseo de navegar fácilmente por el gráfico de llamadas,poder alternar fácilmente el orden de listado de las funciones y de ver los diferentes tipos de eventos hicieron que se escribiera un interfaz gráfico para ello. - -&kappname; es una herramienta para visualizar información de perfilado que cumple esas características. Aunque ha sido pensada para visualizar la información generada por &cachegrind; y &calltree;, existen conversores para mostrar datos generados por otros programas. En el apéndice puede ver una descripción del formato usado en los archivos creados por Cachegrind/Callgrind. - -Aparte de permitir la visualización de una lista de funciones ordenadas según sus costes inclusivos o exclusivos y, opcionalmente, agrupadas según el archivo fuente, librería compartida o clase C++, &kappname; también ofrece varios métodos de visualización para un función determinada: -Un gráfico de llamadas que muestra la sección del gráfico de llamadas que rodea a la función seleccionada. - -Un mapa en forma de árbol que permite ver las relaciones entre funciones anidadas conjuntamente con datos sobre el coste computacional que acarrean para que puede detectar enseguida funciones problemáticas. - -Ventanas para ver el código fuente y anotaciones del desensamblador para que pueda disponer de información de los costos computacionales relacionadas con las correspondientes líneas de código e instrucciones de ensamblador. - - - - - - - - -Uso de &tdecachegrind; - - -Generar datos para visualizar - -En primer lugar, es necesario obtener información del rendimiento midiendo varios aspectos sobre una aplicación en ejecución mediante el uso de una herramienta de perfilado. &tdecachegrind; no incluye ninguna herramienta de perfilado, pero trabaja muy bien en conjunción con &callgrind; y, si usa un convertidor, también con &oprofile;. Aunque no es el objetivo de este manual dar una explicación detallada acerca del perfilado con estas herramientas, en la siguiente sección se dan algunas ideas básicas para que pueda empezar a trabajar. - - -&callgrind; - -&callgrind; está disponible en http://tdecachegrind.sf.net. Observe que antes se llamaba &calltree;. - -Su uso más común consiste en ejecutar el comando que inicia la aplicación a perfilar precedido de callgrind, así:
callgrind programa argumentos
. Cuando cierre el programa se creará un archivo llamado callgrind.out.pid, éste es el que deberemos cargar en &tdecachegrind;.
- -Un uso más avanzado sería realizar un volcado de información cada vez que se invoca una determinada función. P. ej. si sólo quiere perfilar el renderizado de páginas web en konqueror, puede querer volcar los datos cada vez que seleccione Ver/Recargar. La llamada que nos interesa en este caso en KonqMainWindow::slotReload. Utilice
callgrind --dump-before=KonqMainWindow::slotReload konqueror
para obtener varios archivos nombrados como antes pero añadiéndole un número de secuencia. También verá un archivo sin ese número, éste es el que deberá cargar en &tdecachegrind;, no se preocupe por los demás ya que se cargarán automáticamente.
- -
- - -&oprofile; - -&oprofile; está disponible en http://oprofile.sf.net. Para instalarlo sólo debe seguir las (sencillas) instrucciones dadas ahí. Compruebe antes si está disponible en su distribución. - -El perfilado a nivel del sistema sólo puede hacerse con privilegios de root dado que se precisa observar todas las acciones que lleva a cabo. Primero configure el proceso de perfilado mediante el interfaz gráfico oprof_start o el comando opcontrol. La configuración estándar debería estar en modo TBS (vea la introducción). Para comenzar la medida ejecute opconrtol -s. Luego ejecute la aplicación de interés y posteriormente opcontrol -d. Esto escribirá los resultados en archivos bajo el directorio var/lib/oprofile/samples/. Para permitirle visualizar los datos en &tdecachegrind;, deberá ejecutar
opreport -gdf | op2callgrind
en un directorio vacío. Esto creará un gran número de archivos, uno por cada programa que se está ejecutando en el sistema, cada uno de los cuales podrá cargarse separadamente en &tdecachegrind;.
- -
-
- - -Fundamentos de la interfaz de usuario - -Cuando abre &tdecachegrind; con un archivo de información de perfilado como argumento o después de cargar uno seleccionando Archivo/Abrir, verá una barra lateral a la izquierda que contiene la lista de funciones y a la derecha, un área con la información de la función seleccionada. Este área puede configurarse para mostrar varias vistas al mismo tiempo. - -La primero vez que se inicia, este área aparece dividida en dos partes: superior e inferior, cada una de ellas con diferentes opciones de visualización accesibles mediante pestañas. Para moverse entre las distintas posibilidades, utilice el menú contextual de las pestañas y ajuste la barra de división adecuadamente. Para poder moverse rápidamente entre las distintas pestañas puede seleccionar Ver/Dividir para cambiar su aspecto y emplear los atajos de teclado para moverse por ellos. - -El tipo de evento activo es importante para la visualización: para &callgrind; puede ser p.ej. pérdidas de caché o estimación de ciclos mientras que para &oprofile; es el temporizador en el caso más sencillo. Puede cambiar este tipo de eventos desde un selector desplegable de la barra de herramientas o desde la vista de tipos de evento. Si selecciona la función main debería ver un pequeño resumen de las características de ejecución en la lista d la izquierda. Si mira al gráfico de llamadas debería ver las llamadas que tienen lugar en su programa. Observe que el gráfico de llamadas sólo muestra las funciones que más veces se emplean. Haciendo doble click en una función del gráfico, verá que cambia para mostrarle las funciones invocadas alrededor de la seleccionada. - -Para conocer mejor la interfaz gráfica de este programa, además de leer este manual debería consultar la documentación disponible en http://tdecachegrind.sf.net. También puede ver la ayuda contextual de cada widget de &tdecachegrind; pulsando en el botón ¿Qué es esto? (el puntero con el interrogante) de la barra de herramientas. - - -
- - - -Conceptos básicos - -En este capítulo se tratan algunos conceptos de &tdecachegrind; y se introducen algunos de los términos usado en la interfaz. - - -El modelo de datos para la información de perfilado - - -Entidades de costes - -La contabilización de los costes computacionales de los tipo de eventos (tales como las pérdidas L2) s atribuyen a las entidades de costes, relacionadas con el código fuente o las estructuras de datos de un programa dado. Éstas no sólo pueden representar simples posiciones en el código o en los datos sino también registros complejos de una posición. P.ej. una llamada tiene una fuente y un objetivo o una dirección de datos puede tener un tipo de datos y una posición en el código donde se originó. - -Las entidades de coste reconocidas por KCachegrind vienen dadas en las siguientes posiciones:Instrucción. Una instrucción en ensamblador en una dirección especificada. Línea de código de una función. Todas las instrucciones que el compilador (a través de la información de depuración) mapea para una línea de código, identificada por el nombre de l archivo y por el número de línea y que son ejecutadas en el contexto de una función. Una línea de código de una función incorporada ('inline') podrá aparecer en el contexto de varias funciones. Las instrucciones que sin ninguna referencia a una línea de código aparecen referenciadas a la línea 0 del archivo "???". Función. Todas las líneas de código de que está constituida una función componen la función en si. Está identificada por su nombre y por su localización si estuviese disponible. esta última es necesaria porque los binarios de un programa podrán contener funciones con el mismo nombre. Si una herramienta de perfilado no es capaz de detectar el nombre del símbolo de una función, p. ej. porque no está disponible la información de depurado, suele usarse la dirección de la primera instrucción ejecutada o"???". Objeto binario. Todas las funciones cuyo código está dentro del rango de un determinado objeto binario ya sea el ejecutable principal o una librería dinámica. Archivo de código fuente. Todas las funciones cuya primera instrucción está referenciada en una línea de dicho archivo. Clase. en general, los nombre de las funciones suelen estar ordenados de forma jerárquica en espacios de nombres, p. ej. los 'namespaces' de C++ o las clases de los lenguajes de programación orientados a objetos. Como tal, una clase puede contener funciones de dicha clase o otras clases incluidas en ella. Parte del perfilado. Alguna sección de la ejecución de un perfilado con un determinado identificador de hebra, de proceso y línea de órdenes ejecutada. . Tal como se ve en la lista, un conjunto de entidades de coste suele definir otra entidad de coste, por tanto existe una jerarquía de inclusión que debería ser obvia con la explicación anterior. - -Tuplas de posiciones. Una llamada de una instrucción a la función objetivo. Llamada desde una línea de código a otra destino. Llamada desde una función origen a otra destino. Salto (in)condicional desde una instrucción de origen a otra Salto (in)condicional desde una línea de código a otra No se permiten saltos entre funciones dado que no tendrían sentido en un gráfico de llamadas. Las secuencias como el tratamiento de excepciones y los 'long jumps' de C tendrán que ser traducidos en saltos en la pila de llamadas de acuerdo con las necesidades. - - - - - - -Tipos de eventos - -Es posible especificar tipos arbitrarios de eventos en la información de perfilado simplemente asignándole un nombre. Su coste computacional en relación a una entidad de coste es un número de 64 bits. -Los tipos de eventos cuyos costes se especifican en una información de perfilado se denominan eventos reales. También es posible especificar formular para eventos calculados a partir de los reales, éstos se denominan eventos heredados. - - - - - -Estado de visualización - -El estado de visualización de la ventana de KCachegrind incluye: Los tipos primario y secundario de los eventos seleccionados para mostrarse, El agrupamiento de funciones (usado en la lista de perfilado de la función y en el resaltado de la entidad), las partes del perfilado cuyos costes serán incluidosen la visualización una entidad de coste activa (esto es una función seleccionada en la barra de perfilado de la función) una entidad de coste seleccionada.. Este estado influye en las visualizaciones. -La visualización se muestra siempre para la entidad de coste activa. Cuando una visualización determinada no es adecuada para ella, se desactiva. Este es el caso p. ej. cuando se desactiva la anotación de los fuentes para un objeto ELF cuando se selecciona mediante un doble click. -Por ejemplo, para una función activa la lista de llamantes muestra todas las funciones llamadas desde la activa: es posible seleccionar una de ellas sin activarla; si el gráfico de llamadas está visible, también seleccionará la misma función. - - - - -Partes de la GUI - - -Barras laterales -Las barras laterales (móviles) son pequeñas ventanas que pueden situarse en cualquier lateral de una ventana de KCachegrind. Siempre contienen una lista de entidades de coste listadas según un determinado criterio. -Perfil plano. Es una lista de funciones con sus costes inclusivos y exclusivos, número de llamadas y el nombre y posición de las funciones. -Vistazo general de las partes -Pila de llamadas - - - - - -Área de visualización -El área de visualización, generalmente la parte derecha de la ventana principal de KCachegrind está formada por una (por omisión) o más pestañas alienadas vertical u horizontalmente. Cada pestaña permite visualizar información diferente de una sola entidad de coste al mismo tiempo. El nombre de dicha entidad aparece en la parte superior de la pestaña. Si hay varias pestañas, sólo una de ellas estará activa. El nombre de la entidad en la pestaña activa aparece en negrita y determina la entidad de coste activa en la ventana de KCachegrind. - - - -Áreas accesibles mediante las pestañas -Cada página puede contener hasta cuatro áreas de visualización llamadas: superior, inferior, izquierda y derecha. Cada área puede contener varias vistas apiladas. El área visible se selecciona mediante unas pestañas. A través del menú contextual de las páginas podrá escoger el tipo de visualización que desee. - - - -Visualización sincronizada a través de la entidad seleccionada en la pestaña -Aparte de una entidad activa, cada página tiene un entidad seleccionada. Dado que la mayoría de los tipos de visualización muestran varias entidades con la activa en el centro, podrá cambiar la seleccionada navegando dentro de la visualización (pinchando con el ratón o a través de teclado). Típicamente, los objetos seleccionados se muestran resaltados. Cambiando la entidad seleccionada en una de las visualizaciones, verá como también aparece resaltada la nueva entidad en las demás. - - - -Sincronización entre pestañas -Si existen varias páginas, al cambiar la selección en una de ellas también se cambiará la selección en la siguiente (a la derecha/al fondo). Este tipo de asociaciones debería, por ejemplo, facilitarle la navegación entre los gráficos de llamadas. - - - -Disposiciones -La disposición de todas las páginas en una ventana puede ser guardada (vea Ver/Disposición). Después de duplicar la disposición actual (CTRL+plus o a través del menú) y cambiar algunos tamaños o cambiar de sitio una área de visualización, también podrá mover rápidamente entre la disposición anterior y actual mediante el atajo CTRL+izquierda/derecha. El conjunto de las disposiciones se guarda entre las sesiones de perfilado de un mismo comando. Podrá poner como está disposición como predeterminada para las siguientes sesiones de KCachegrind o volver a la configuración por omisión. - - - - -Barras laterales - - -Perfilados sencillos -Los perfilados sencillos contienen una lista de grupos y otra lista de funciones. La lista de grupos contiene todos los grupos entre los cuales está repartido el coste, según el tipo de grupo escogido. La lista de grupos permanece oculta cuando está desactivada la agrupación. -La lista de funciones contiene las funciones de los grupos seleccionados (o todas las funciones si está desactivada la opción de agrupamiento) ordenadas según una de las columnas. Puede configurar el número máximo de funciones que se muestra desde la pestaña Preferencias de KCachegrind. - - - -Vista de las partes -Durante la ejecución de un perfilado pueden crearse varios archivos con la información obtenida, éstos podrán cargarse conjuntamente en KCachegrind. La barra móvil de partes se los mostrará ordenados horizontalmente según la hora de su creación, el tamaño de los rectángulos es proporcional a los costes de cada una de las partes. Podrá seleccionar una o varias partes para que se muestren sólo los costes asociados a ésta. -Cada parte puede subdividirse de dos maneras: -Particionado: el usuario ve la repartición en grupos para una parte de los datos del perfilado según el grupo seleccionado. P.ej. si se seleccionan los grupos de objetos ELF, se verán rectángulos coloreados para cada objeto ELF usado (ejecutable o librería dinámica) con un tamaño acorde a su coste. -Repartición del coste inclusivo: se muestra un rectángulo con el coste inclusivo de la función activa en esa parte. Éste a su vez se dividirá para mostrar los costes inclusivos de las funciones que llama. - - - - - -Pila de llamadas -Es una pila de las llamadas más probables, puramente ficticia. Se crea a partir de la función activa en ese momento y se le añaden los llamantes/llamadas con los mayores costes al principio y al final. -La columna de costes y llamadas muestra el coste usado para todas las llamadas desde la función en la línea de arriba. - - - - -Visualizaciones - - -Tipos de eventos -Esta lista muestra todos los tipos de costes disponibles así como los costes propios e inclusivos de la función activada para ese tipo de evento. -Escogiendo un tipo de evento de la lista, cambiará el tipo de costes en todas las visualizaciones de KCachegrind. - - - -Listas de llamadas -Muestran todas las llamadas desde y hacia la función activa. Por 'todas' nos referimos a todas las accesibles en ambas direcciones, incluso cuando existen funciones intermedias. -La lista de llamadas incluye: -Llamantes directos -Llamados directos -Todos los llamantes -Todos los llamados - - - - - -Mapas -Una visualización en árbol del tipo de evento primario a través de la jerarquía de llamadas. Cada uno de los rectángulos coloreados representa una función, su tamaño intenta ser proporcional al coste (piense que las representaciones gráficas tienen sus limitaciones) durante la ejecución de la función. -Para el mapa de llamantes el gráfico muestra la jerarquía encadenada de todas las llamantes de la función activada; parar el mapa de llamadas, se mostrará la jerarquía anidada de todas las llamadas de la función activa. -Puede modificar el aspecto desde el menú contextual. Si desea ver una proporcionalidad exacta seleccione 'Ocultar bordes incorrectos'. Dado que esta opción puede necesitar mucho tiempo, es posible que desee limitar el nivel máximo de anidamiento. 'Mejor' determina la dirección de reparto de los descendientes a partir de las proporciones de los ascendientes. 'Siempre el mejor' decide sobre el espacio restante de cada elemento del mismo nivel. 'Ignorar proporciones' ocupa el espacio para el nombre de la función antes de diseñar sus descendientes. Observe que las proporciones pueden resultar bastante erróneas. -Es posible navegar mediante los cursores izquierda/derecha para los elementos del mismo nivel y arriba/abajo para subir o bajar por los niveles de anidamiento. 'Intro' activa el item actual. - - - -Gráfico de llamadas -Aquí se muestra el gráfico de llamadas alrededor de la función activada. El coste que se muestra es únicamente el correspondiente a la ejecución de la función activa, esto es que los de la función main() - si es visible - deberían coincidir con los de la actual función activa dado que forma parte del coste inclusivo de main() mientras la función está en ejecución. -En el caso de ciclos, las flechas de llamadas en azul indican que es una llamada inexistente añadida para corregir el gráfico. -Si el gráfico resulta ser mayor que el área de diseño, se mostrará una vista general en uno de los lados. Existen otras opciones de visualización al igual que el el árbol de llamadas, la función seleccionada aparece resaltada. - - - -Anotaciones -La lista anotada muestra las instrucciones del código desensambladas de la función activa en ese momento junto con el coste asociado a la ejecución de una línea de código o instrucción. Si hay una llamada, se insertan algunas líneas en el código con detalles acerca de la misma: el coste inclusivo dentro de la llamada, el número de llamadas que ocurren y el destino de la llamada. -Si selecciona una de esas líneas de información sobre la llamada se activará el destino de la llamada. - - - - - - - -Referencia de comandos - - -Ventana principal de &tdecachegrind; - - - -El menú <guimenu ->Archivo</guimenu -> - - - - - &Ctrl;N Archivo Nuevo -Abre una nueva ventana donde cargar la información del perfilado. Esto no es realmente necesario dado que seleccionando Archivo/Abrir también abrirá una nueva ventana si la actual está mostrando otros datos. - - - - &Ctrl;O Archivo Abrir -Abre el diálogo de apertura de archivo para que pueda cargar un archivo de información de perfilado.. Si ya tiene información cargada en la ventana principal, se abrirá otra ventana. Si desea cargar más datos de perfilado utilice Archivo/Añadir. -El nombre de los archivos de perfilado suele terminar en ..-, donde .. se usan cuando tenemos varios archivos de perfilado pertenecientes a un mismo análisis. Cuando se cargue un archivo terminado en «.», también se cargaran otros archivos, si los hay, que pertenezcan a ese mismo perfilado. -Por ejemplo: si existen los archivos cachegrind.out.123 y cachegrind.out.123.1, al cargar el primero también lo hará el segundo. - - - -Archivo Añadir -Añade información de perfilado en la ventana actual. Con esta opción puede cargar varios archivos en una misma ventana aunque no correspondan al mismo análisis. Esto puede ser útil, por ejemplo, para comparar dos casos similares. - - - -File Recargar -Recarga la información de perfilado. Esto es más interesante después de que haya sido generado otro archivos de datos de perfilado para la ejecución de una aplicación ya cargada. - - - - &Ctrl;Q Archivo Salir -Cierra &kappname; - - - - - - - -El menú <guimenu ->Ver</guimenu -> - - - - -Ver Tipo de evento primario -(Por hacer) - - - -Ver Tipo de evento secundario -(Por hacer) - - - -Ver Agrupación -(Por hacer) - - - -Ver Disposición -(Por hacer) - - - -Ver Dividir -(Por hacer) - - - - - - - - - - - - -Preguntas y respuestas -&reporting.bugs; &updating.documentation; - - - - -¿Qué es &tdecachegrind;? No consigo hacerme una idea - - -&tdecachegrind; es una herramienta útil en una de las últimas fases del desarrollo de un programa llamada perfilado. En pocas palabras: si no programa aplicaciones, no necesita &tdecachegrind;. - - - - - -¿Cuál es la diferencia entre 'coste inclusivo y propio? - - -Ambas son atributos de los costes para funciones de unos determinados tipos de eventos. Dado que las funciones se llaman entre si, tiene sentido distinguir el coste de la propia función (coste propio) y el coste de la misma más todas las funciones invocadas (coste inclusivo). 'Self' también se puede llamar coste exclusivo. -P. ej. para la función main(), siempre verá un coste inclusivo cercano al 100%, mientras el coste propio - - - - - -La barra de herramientas y/o la del menú tienen un aspecto bastante cutre ¿es normal? - - -Obviamente, KCachegrind ha sido mal instalado en su sistema. Es recomendable compilarlo e instalarlo en el mismo lugar que el resto de KDE, p. ej. configure --prefix=/opt/kde3; make install. Si decide instalarlo en otra parte como $HOME/kde debe asignar ese directorio a la variable de entorno TDEDIR antes de ejecutar KCachegrind. - - - - - -Si hace doble click sobre una función del gráfico de llamadas, verá para la función main el mismo coste que para la función seleccionada. ¿No se supone que debe ser constante al 100%? - - -Ha activado un función descendiente de main() con un coste menor que ésta. En cualquier caso sólo se muestra esa parte del coste total de una función mientras está activa. Esto es que el coste que se muestra para cualquier función nunca puede ser mayor que el de la función activada. - - - - - - - - -Glosario - -A continuación se exponen una lista de diversos términos. -Perfillado: proceso mediante el cual se recoge información estadística sobre lo que ocurre durante la ejecución de un programa. -Trazado: proceso mediante el cual se supervisa la ejecución de un programa y se registran los eventos que ocurren en un archivo de salida llamado traza (a veces también se le llama trazado). -Traza: secuencia temporal de los eventos ocurridos mientras se analizaba la ejecución de un programa. Su tamaño suele ser directamente proporcional al tiempo de ejecución. -Archivo de datos de perfilado: contiene la información obtenida durante el perfilado (o parte de ella) o producida al procesar de un trazado. Su tamaño suele ser similar al del código del programa. -Parte de la información de perfilado (también llamado incorrectamente: parte del trazado): información de un archivo de perfilado. -Experimento de perfilado. Un programa ejecutado bajo el control de una herramienta de perfilado y que está generando uno o más archivos con información de perfilado de sus partes o hebras ('threads'). -Proyecto de perfilado. Configuración del experimento de perfilado usado para el programa a perfilar. En general, las comparaciones entre perfilados sólo tienen sentido con datos de un sólo proyecto de perfilado. -Entidad de coste: es un concepto bastante abstracto, está relacionado con el código fuente del programa para el cual puede contabilizarse determinados eventos. Los parametros de las entidades de coste son la localización en el código (p.ej. línea de código, función), la localización de los datos (esto es el tipo de datos a los que se accede, objeto de los datos), la localización de la ejecución (esto es la tarea o proceso) y los tuplas de posiciones indicadas anteriormente (p.ej. llamadas o acceso a los objetos mediante la instrucción, datos obtenidos a partir del caché). -Tipo de evento. La clase de evento al que se le pueden atribuir costes a una entidad de coste. Existe tipos de eventos reales y heredados -Tipos de eventos reales. Un tipo de evento que se puede medir con una herramienta siempre que se tenga el sensor adecuado. -Tipo de evento heredado. Un tipo de evento virtual definido por una fórmula resoluble a partir de tipos de eventos reales. -Costes de los eventos. Suma de eventos de algún tipo de evento que ocurre mientras la ejecución está relacionada con alguna entidad de coste. El coste se atribuye a la entidad. - - - - - - - -Créditos y licencia - -&kappname; -Gracias a Julian Seward por su excelente herramienta &valgrind; y a Nicholas Nethercote por añadirle &cachegrind;. Sin estos programas, KCachegrind no existiría. También han contribuido con algunas ideas para esta GUI. -Gracias también a todos los usuarios que enviaron informes de fallos y sugerencias. -&underFDL; - - -Instalación - - -Cómo obtener &tdecachegrind; - -&tdecachegrind; forma parte del paquete &package; de &kde;. Si desea más información visite http://tdecachegrind.sf.net - - - -Requisitos - -Para poder utilizar&tdecachegrind;, necesitará &kde; 3.x. Para generar la información de perfilado es recomendable &cachegrind; o &calltree;/&callgrind;. - - - -Compilación e instalación -&install.compile.documentation; - - -Configuración - -Todas las opciones de configuración están o bien en el propio diálogo de configuración o en los menús contextuales de las visualizaciones. - - - - - -&documentation.index; -
- - - - - - - - - - - - - - diff --git a/tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.am b/tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.am new file mode 100644 index 00000000000..2d733d1b104 --- /dev/null +++ b/tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = es +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.in b/tde-i18n-es/docs/tdesdk/tdecachegrind/Makefile.in new file mode 100644 index 00000000000..28b7eab5671 --- /dev/null +++ b/tde-i18n-es/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 = es +#>- 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-es/docs/tdesdk/tdecachegrind/index.cache.bz2 b/tde-i18n-es/docs/tdesdk/tdecachegrind/index.cache.bz2 new file mode 100644 index 00000000000..ee53fcde38b Binary files /dev/null and b/tde-i18n-es/docs/tdesdk/tdecachegrind/index.cache.bz2 differ diff --git a/tde-i18n-es/docs/tdesdk/tdecachegrind/index.docbook b/tde-i18n-es/docs/tdesdk/tdecachegrind/index.docbook new file mode 100644 index 00000000000..becd42b6082 --- /dev/null +++ b/tde-i18n-es/docs/tdesdk/tdecachegrind/index.docbook @@ -0,0 +1,1034 @@ + +KCachegrind'> + Cachegrind"> + Calltree"> + Callgrind"> + Valgrind"> + OProfile"> + + + + +]> + + + + + + +Manual de &tdecachegrind; + + +Josef Weidendorfer
Josef.Weidendorfer@gmx.de
+
+
+ + Marcos Fouces Lago
mfouces@yahoo.es
Traductor
+ +
+ + +2002-2004 +Josef Weidendorfer + +&FDLNotice; + +2004-07-27 +0.4.6 + + +&tdecachegrind; es una herramienta para visualizar perfilados cómodamente escrita para el escritorio &kde;. + + + +KDE +tdesdk +Cachegrind +Callgrind +Valgrind +Perfilado + + +
+ + + +Introducción + +&kappname; es una herramienta para visualizar cómodamente la salida de herramientas de perfilado de software. En este capítulo se explican para qué sirve un perfilado, cómo se hace así como algunos ejemplos de herramientas disponibles para ello. + + +Perfilado + +Cuando se desarrolla un programa, una de las etapas finales consiste en optimizar su rendimiento. Dado que no es muy productivo dedicar mucho tiempo a optimizar funciones escasamente usadas, necesitaremos saber en qué partes del programa se concentra la mayoría del tiempo de ejecución. + +Para el código secuencial, suele ser suficiente recabar datos estadísticos sobre características de ejecución de las aplicaciones, cosas como el tiempo que el programa pasa ejecutando una misma función o línea de código. Esto es lo que recibe el nombre de perfilado. El programa s ejecuta bajo el control de una herramienta de perfilado que será la que nos aporte la información sobre la ejecución de un programa cuando esté se cierre. En contraste con esto, en el código paralelo los problemas de rendimiento suelen ser causa de que un procesador está esperando información de otro. Dado que no es sencillo reconocer esto, en este caso sería preferible generar un trazado de tiempos en que ocurren los eventos pero KCachegrind no puede visualizar estos datos. + +Después de analizar los datos de perfilado obtenidos, será sencillo ver los puntos fuertes y débiles del código: podremos, por ejemplo, comprobar el número de llamadas e identificar las partes del código que pueden ser optimizadas. Una vez optimizado el código, puede comprobarse si se ha hecho bien realizando otro perfilado. + + + +Métodos de perfilado + +Para medir exactamente el tiempo transcurrido o registrar lo que sucede durante la ejecución de una determinada parte del programa (p.ej. una función) será necesario añadir algún código antes y después de estas partes que nos permita realizar estas medidas. Este código cuenta el tiempo transcurrido o contabiliza algún evento y calcula diferencias. Esto hace que sea necesario cambiar el código original antes de ejecutarlo. esto recibe el nombre de instrumentación y puede realizarse por el propio programa, el compilador o el propio sistema en ejecución. Dados que las partes de interés suelen estar anidadas, la sobrecarga producida por las propias medidas a menudo influye en las propias medidas. La instrumentación debe hacerse selectivamente y sus resultados deben interpretarse con cuidado. Esto hace que el análisis de rendimiento mediante medidas exactas sea un proceso muy complejo. + +Es posible realizar medidas exactas gracias a los contadores hardware (incluyendo aquellos que se incrementan con cada ciclo de procesador) incluidos en los modernos procesadores que se incrementan cada vez que ocurre un determinado evento. Dado que queremos relacionar eventos con determinadas regiones de código, necesitaremos gestionar cualquier evento incrementando un contador para dicha región de código. Obviamente, esto es imposible de llevar a cabo mediante software, pero asumiendo que, estadísticamente, la distribución de eventos en el código fuente es similar al considerar sólo algunas medidas en lugar de considerarlas podemos usar un método llamado sampling (muestreo) para realizar las medidas. El muestreo temporal (Time Based Sampling o TBS) hace uso de un temporizador para monitorizar cada cierto tiempo el contador de un programa y crear un histograma sobre el código del programa. El muestreo de eventos (Event Based Sampling o EBS) hace uso de los contadores por hardware de los modernos procesadores + +Otro método de medida consiste en simular lo que ocurre en el sistema cuando se ejecuta un determinado código. La simulación se realiza siempre partiendo de un modelo más o menos exacto del sistema, sin embargo es posible obtener modelos muy precisos que funcionen casi igual que en la realidad en los cuales el tiempo empleado en la simulación sea inaceptablemente alto. La ventaja de la simulación es que podemos insertar código más o menos complejo en el código a estudiar sin alterar los resultados. Es muy cómodo realizar esto directamente antes de la ejecución debido a que usamos el binario original sin necesidad de recompilarlo. La simulación es útil cuando se simulan sólo partes de una máquina con un modelo sencillo, así además se obtienen resultados de más fácil interpretación. A menudo el problema de trabajar con hardware real es que varios efectos de diferentes partes de la máquina se solapan en un mismo resultado. + + + +Herramientas de perfilado + +La más conocida es la herramienta de perfilado de GCC gprof; para su uso, es necesario compilar los programas a perfilar con la opción , al ejecutarlos se crea un archivo llamado gmon.out que puede convertirse a un formato legible mediante gprof. Una desventaja es que se necesita recompilar el programa y enlazarlo estáticamente. Este método se llama instrumentación generada mediante el compilador que consiste en la medida de los arcos de las llamadas entre funciones y las correspondientes llamadas entre las funciones - Junto con el TBS - que nos aportará un histograma de distribución temporal en el código. Usando amabas fuentes de información, es posible calcular heurísticamente el tiempo dedicado a la ejecución de una función junto con el de todas las que han sido llamadas por ella. + +Para medir con exactitud los eventos que están ocurriendo en un momento dado, están disponibles algunas librerías con funciones capaces de leer los contadores de rendimiento del hardware. Las más conocidas son el parche PerfCtr para Linux y las librerías PAPI y PCL independientes de la arquitectura del sistema. Aún así, es necesario instrumentalizar el código como en el caso anterior. Puede optar por usar las propias librerías o por sistemas de instrumentación automática como ADAPTOR (para la instrumentación de código en FORTRAN) o DynaProf (inyección de código a través de DynInst). + +&oprofile; es un herramienta de perfilado para Linux basada en el muestreo. + +Una manera cómoda para realizar perfilados consiste en el uso de Cachegrind o Callgrind, dos simuladores que usan la estructura de instrumentación de &valgrind;. Debido a que no es necesario recurrir a contadores por hardware (a menudo difíciles de acceder en las actuales distribuciones de Linux) y a que es posibles perfilar los binarios sin modificarlos, es una buena alternativa a otras herramientas de perfilado. Puede minimizarse el problema de la ralentización causado por la simulación realizándola sólo en las partes del programa que nos interesan e incluso en unos pocos ciclos de algún bucle.Sin medir/simular la instrumentación, el uso de Valgrind sólo tiene una factor de ralentización en un rango de 3 a 5. También es posible desactivar la simulación de caché si sólo nos interesan el gráfico y el número de llamadas. + +La simulación del caché es el primer paso para aproximarnos a los tiempos de ejecución reales ya que los sistemas modernos hacen un fuerte uso de los caches (buffers pequeños y rápidos que permiten acelerar accesos repetidos a las mismas celdas de memoria). &cachegrind; realiza la simulación del caché atrapando esos accesos a la memoria. La información obtenida incluye el número de la instrucción o acceso a la memoria y las pérdidas del caché de primero y segundo nivel y las relaciona con las áreas del código correspondientes. Combinando los datos de dichas pérdidas mediante el empleo de las pérdidas latentes de los procesadores más comunes, es posible obtener una estimación del tiempo empleado. + +Callgrind es una extensión de &cachegrind; que crea el gráfico de llamadas de un programa al vuelo, &ie; como las funciones se llaman entre sí y cuantos eventos ocurren mientras se ejecuta una función. También es posible separar la información a recabar por hebras o por contextos de llamadas. Puede aportar datos de perfilado a nivel de instrucción que permita anotar código desensamblado. + + + +Visualización + +Las herramientas de perfilado suelen producir gran cantidad de información. El deseo de navegar fácilmente por el gráfico de llamadas,poder alternar fácilmente el orden de listado de las funciones y de ver los diferentes tipos de eventos hicieron que se escribiera un interfaz gráfico para ello. + +&kappname; es una herramienta para visualizar información de perfilado que cumple esas características. Aunque ha sido pensada para visualizar la información generada por &cachegrind; y &calltree;, existen conversores para mostrar datos generados por otros programas. En el apéndice puede ver una descripción del formato usado en los archivos creados por Cachegrind/Callgrind. + +Aparte de permitir la visualización de una lista de funciones ordenadas según sus costes inclusivos o exclusivos y, opcionalmente, agrupadas según el archivo fuente, librería compartida o clase C++, &kappname; también ofrece varios métodos de visualización para un función determinada: +Un gráfico de llamadas que muestra la sección del gráfico de llamadas que rodea a la función seleccionada. + +Un mapa en forma de árbol que permite ver las relaciones entre funciones anidadas conjuntamente con datos sobre el coste computacional que acarrean para que puede detectar enseguida funciones problemáticas. + +Ventanas para ver el código fuente y anotaciones del desensamblador para que pueda disponer de información de los costos computacionales relacionadas con las correspondientes líneas de código e instrucciones de ensamblador. + + + + + + + + +Uso de &tdecachegrind; + + +Generar datos para visualizar + +En primer lugar, es necesario obtener información del rendimiento midiendo varios aspectos sobre una aplicación en ejecución mediante el uso de una herramienta de perfilado. &tdecachegrind; no incluye ninguna herramienta de perfilado, pero trabaja muy bien en conjunción con &callgrind; y, si usa un convertidor, también con &oprofile;. Aunque no es el objetivo de este manual dar una explicación detallada acerca del perfilado con estas herramientas, en la siguiente sección se dan algunas ideas básicas para que pueda empezar a trabajar. + + +&callgrind; + +&callgrind; está disponible en http://tdecachegrind.sf.net. Observe que antes se llamaba &calltree;. + +Su uso más común consiste en ejecutar el comando que inicia la aplicación a perfilar precedido de callgrind, así:
callgrind programa argumentos
. Cuando cierre el programa se creará un archivo llamado callgrind.out.pid, éste es el que deberemos cargar en &tdecachegrind;.
+ +Un uso más avanzado sería realizar un volcado de información cada vez que se invoca una determinada función. P. ej. si sólo quiere perfilar el renderizado de páginas web en konqueror, puede querer volcar los datos cada vez que seleccione Ver/Recargar. La llamada que nos interesa en este caso en KonqMainWindow::slotReload. Utilice
callgrind --dump-before=KonqMainWindow::slotReload konqueror
para obtener varios archivos nombrados como antes pero añadiéndole un número de secuencia. También verá un archivo sin ese número, éste es el que deberá cargar en &tdecachegrind;, no se preocupe por los demás ya que se cargarán automáticamente.
+ +
+ + +&oprofile; + +&oprofile; está disponible en http://oprofile.sf.net. Para instalarlo sólo debe seguir las (sencillas) instrucciones dadas ahí. Compruebe antes si está disponible en su distribución. + +El perfilado a nivel del sistema sólo puede hacerse con privilegios de root dado que se precisa observar todas las acciones que lleva a cabo. Primero configure el proceso de perfilado mediante el interfaz gráfico oprof_start o el comando opcontrol. La configuración estándar debería estar en modo TBS (vea la introducción). Para comenzar la medida ejecute opconrtol -s. Luego ejecute la aplicación de interés y posteriormente opcontrol -d. Esto escribirá los resultados en archivos bajo el directorio var/lib/oprofile/samples/. Para permitirle visualizar los datos en &tdecachegrind;, deberá ejecutar
opreport -gdf | op2callgrind
en un directorio vacío. Esto creará un gran número de archivos, uno por cada programa que se está ejecutando en el sistema, cada uno de los cuales podrá cargarse separadamente en &tdecachegrind;.
+ +
+
+ + +Fundamentos de la interfaz de usuario + +Cuando abre &tdecachegrind; con un archivo de información de perfilado como argumento o después de cargar uno seleccionando Archivo/Abrir, verá una barra lateral a la izquierda que contiene la lista de funciones y a la derecha, un área con la información de la función seleccionada. Este área puede configurarse para mostrar varias vistas al mismo tiempo. + +La primero vez que se inicia, este área aparece dividida en dos partes: superior e inferior, cada una de ellas con diferentes opciones de visualización accesibles mediante pestañas. Para moverse entre las distintas posibilidades, utilice el menú contextual de las pestañas y ajuste la barra de división adecuadamente. Para poder moverse rápidamente entre las distintas pestañas puede seleccionar Ver/Dividir para cambiar su aspecto y emplear los atajos de teclado para moverse por ellos. + +El tipo de evento activo es importante para la visualización: para &callgrind; puede ser p.ej. pérdidas de caché o estimación de ciclos mientras que para &oprofile; es el temporizador en el caso más sencillo. Puede cambiar este tipo de eventos desde un selector desplegable de la barra de herramientas o desde la vista de tipos de evento. Si selecciona la función main debería ver un pequeño resumen de las características de ejecución en la lista d la izquierda. Si mira al gráfico de llamadas debería ver las llamadas que tienen lugar en su programa. Observe que el gráfico de llamadas sólo muestra las funciones que más veces se emplean. Haciendo doble click en una función del gráfico, verá que cambia para mostrarle las funciones invocadas alrededor de la seleccionada. + +Para conocer mejor la interfaz gráfica de este programa, además de leer este manual debería consultar la documentación disponible en http://tdecachegrind.sf.net. También puede ver la ayuda contextual de cada widget de &tdecachegrind; pulsando en el botón ¿Qué es esto? (el puntero con el interrogante) de la barra de herramientas. + + +
+ + + +Conceptos básicos + +En este capítulo se tratan algunos conceptos de &tdecachegrind; y se introducen algunos de los términos usado en la interfaz. + + +El modelo de datos para la información de perfilado + + +Entidades de costes + +La contabilización de los costes computacionales de los tipo de eventos (tales como las pérdidas L2) s atribuyen a las entidades de costes, relacionadas con el código fuente o las estructuras de datos de un programa dado. Éstas no sólo pueden representar simples posiciones en el código o en los datos sino también registros complejos de una posición. P.ej. una llamada tiene una fuente y un objetivo o una dirección de datos puede tener un tipo de datos y una posición en el código donde se originó. + +Las entidades de coste reconocidas por KCachegrind vienen dadas en las siguientes posiciones:Instrucción. Una instrucción en ensamblador en una dirección especificada. Línea de código de una función. Todas las instrucciones que el compilador (a través de la información de depuración) mapea para una línea de código, identificada por el nombre de l archivo y por el número de línea y que son ejecutadas en el contexto de una función. Una línea de código de una función incorporada ('inline') podrá aparecer en el contexto de varias funciones. Las instrucciones que sin ninguna referencia a una línea de código aparecen referenciadas a la línea 0 del archivo "???". Función. Todas las líneas de código de que está constituida una función componen la función en si. Está identificada por su nombre y por su localización si estuviese disponible. esta última es necesaria porque los binarios de un programa podrán contener funciones con el mismo nombre. Si una herramienta de perfilado no es capaz de detectar el nombre del símbolo de una función, p. ej. porque no está disponible la información de depurado, suele usarse la dirección de la primera instrucción ejecutada o"???". Objeto binario. Todas las funciones cuyo código está dentro del rango de un determinado objeto binario ya sea el ejecutable principal o una librería dinámica. Archivo de código fuente. Todas las funciones cuya primera instrucción está referenciada en una línea de dicho archivo. Clase. en general, los nombre de las funciones suelen estar ordenados de forma jerárquica en espacios de nombres, p. ej. los 'namespaces' de C++ o las clases de los lenguajes de programación orientados a objetos. Como tal, una clase puede contener funciones de dicha clase o otras clases incluidas en ella. Parte del perfilado. Alguna sección de la ejecución de un perfilado con un determinado identificador de hebra, de proceso y línea de órdenes ejecutada. . Tal como se ve en la lista, un conjunto de entidades de coste suele definir otra entidad de coste, por tanto existe una jerarquía de inclusión que debería ser obvia con la explicación anterior. + +Tuplas de posiciones. Una llamada de una instrucción a la función objetivo. Llamada desde una línea de código a otra destino. Llamada desde una función origen a otra destino. Salto (in)condicional desde una instrucción de origen a otra Salto (in)condicional desde una línea de código a otra No se permiten saltos entre funciones dado que no tendrían sentido en un gráfico de llamadas. Las secuencias como el tratamiento de excepciones y los 'long jumps' de C tendrán que ser traducidos en saltos en la pila de llamadas de acuerdo con las necesidades. + + + + + + +Tipos de eventos + +Es posible especificar tipos arbitrarios de eventos en la información de perfilado simplemente asignándole un nombre. Su coste computacional en relación a una entidad de coste es un número de 64 bits. +Los tipos de eventos cuyos costes se especifican en una información de perfilado se denominan eventos reales. También es posible especificar formular para eventos calculados a partir de los reales, éstos se denominan eventos heredados. + + + + + +Estado de visualización + +El estado de visualización de la ventana de KCachegrind incluye: Los tipos primario y secundario de los eventos seleccionados para mostrarse, El agrupamiento de funciones (usado en la lista de perfilado de la función y en el resaltado de la entidad), las partes del perfilado cuyos costes serán incluidosen la visualización una entidad de coste activa (esto es una función seleccionada en la barra de perfilado de la función) una entidad de coste seleccionada.. Este estado influye en las visualizaciones. +La visualización se muestra siempre para la entidad de coste activa. Cuando una visualización determinada no es adecuada para ella, se desactiva. Este es el caso p. ej. cuando se desactiva la anotación de los fuentes para un objeto ELF cuando se selecciona mediante un doble click. +Por ejemplo, para una función activa la lista de llamantes muestra todas las funciones llamadas desde la activa: es posible seleccionar una de ellas sin activarla; si el gráfico de llamadas está visible, también seleccionará la misma función. + + + + +Partes de la GUI + + +Barras laterales +Las barras laterales (móviles) son pequeñas ventanas que pueden situarse en cualquier lateral de una ventana de KCachegrind. Siempre contienen una lista de entidades de coste listadas según un determinado criterio. +Perfil plano. Es una lista de funciones con sus costes inclusivos y exclusivos, número de llamadas y el nombre y posición de las funciones. +Vistazo general de las partes +Pila de llamadas + + + + + +Área de visualización +El área de visualización, generalmente la parte derecha de la ventana principal de KCachegrind está formada por una (por omisión) o más pestañas alienadas vertical u horizontalmente. Cada pestaña permite visualizar información diferente de una sola entidad de coste al mismo tiempo. El nombre de dicha entidad aparece en la parte superior de la pestaña. Si hay varias pestañas, sólo una de ellas estará activa. El nombre de la entidad en la pestaña activa aparece en negrita y determina la entidad de coste activa en la ventana de KCachegrind. + + + +Áreas accesibles mediante las pestañas +Cada página puede contener hasta cuatro áreas de visualización llamadas: superior, inferior, izquierda y derecha. Cada área puede contener varias vistas apiladas. El área visible se selecciona mediante unas pestañas. A través del menú contextual de las páginas podrá escoger el tipo de visualización que desee. + + + +Visualización sincronizada a través de la entidad seleccionada en la pestaña +Aparte de una entidad activa, cada página tiene un entidad seleccionada. Dado que la mayoría de los tipos de visualización muestran varias entidades con la activa en el centro, podrá cambiar la seleccionada navegando dentro de la visualización (pinchando con el ratón o a través de teclado). Típicamente, los objetos seleccionados se muestran resaltados. Cambiando la entidad seleccionada en una de las visualizaciones, verá como también aparece resaltada la nueva entidad en las demás. + + + +Sincronización entre pestañas +Si existen varias páginas, al cambiar la selección en una de ellas también se cambiará la selección en la siguiente (a la derecha/al fondo). Este tipo de asociaciones debería, por ejemplo, facilitarle la navegación entre los gráficos de llamadas. + + + +Disposiciones +La disposición de todas las páginas en una ventana puede ser guardada (vea Ver/Disposición). Después de duplicar la disposición actual (CTRL+plus o a través del menú) y cambiar algunos tamaños o cambiar de sitio una área de visualización, también podrá mover rápidamente entre la disposición anterior y actual mediante el atajo CTRL+izquierda/derecha. El conjunto de las disposiciones se guarda entre las sesiones de perfilado de un mismo comando. Podrá poner como está disposición como predeterminada para las siguientes sesiones de KCachegrind o volver a la configuración por omisión. + + + + +Barras laterales + + +Perfilados sencillos +Los perfilados sencillos contienen una lista de grupos y otra lista de funciones. La lista de grupos contiene todos los grupos entre los cuales está repartido el coste, según el tipo de grupo escogido. La lista de grupos permanece oculta cuando está desactivada la agrupación. +La lista de funciones contiene las funciones de los grupos seleccionados (o todas las funciones si está desactivada la opción de agrupamiento) ordenadas según una de las columnas. Puede configurar el número máximo de funciones que se muestra desde la pestaña Preferencias de KCachegrind. + + + +Vista de las partes +Durante la ejecución de un perfilado pueden crearse varios archivos con la información obtenida, éstos podrán cargarse conjuntamente en KCachegrind. La barra móvil de partes se los mostrará ordenados horizontalmente según la hora de su creación, el tamaño de los rectángulos es proporcional a los costes de cada una de las partes. Podrá seleccionar una o varias partes para que se muestren sólo los costes asociados a ésta. +Cada parte puede subdividirse de dos maneras: +Particionado: el usuario ve la repartición en grupos para una parte de los datos del perfilado según el grupo seleccionado. P.ej. si se seleccionan los grupos de objetos ELF, se verán rectángulos coloreados para cada objeto ELF usado (ejecutable o librería dinámica) con un tamaño acorde a su coste. +Repartición del coste inclusivo: se muestra un rectángulo con el coste inclusivo de la función activa en esa parte. Éste a su vez se dividirá para mostrar los costes inclusivos de las funciones que llama. + + + + + +Pila de llamadas +Es una pila de las llamadas más probables, puramente ficticia. Se crea a partir de la función activa en ese momento y se le añaden los llamantes/llamadas con los mayores costes al principio y al final. +La columna de costes y llamadas muestra el coste usado para todas las llamadas desde la función en la línea de arriba. + + + + +Visualizaciones + + +Tipos de eventos +Esta lista muestra todos los tipos de costes disponibles así como los costes propios e inclusivos de la función activada para ese tipo de evento. +Escogiendo un tipo de evento de la lista, cambiará el tipo de costes en todas las visualizaciones de KCachegrind. + + + +Listas de llamadas +Muestran todas las llamadas desde y hacia la función activa. Por 'todas' nos referimos a todas las accesibles en ambas direcciones, incluso cuando existen funciones intermedias. +La lista de llamadas incluye: +Llamantes directos +Llamados directos +Todos los llamantes +Todos los llamados + + + + + +Mapas +Una visualización en árbol del tipo de evento primario a través de la jerarquía de llamadas. Cada uno de los rectángulos coloreados representa una función, su tamaño intenta ser proporcional al coste (piense que las representaciones gráficas tienen sus limitaciones) durante la ejecución de la función. +Para el mapa de llamantes el gráfico muestra la jerarquía encadenada de todas las llamantes de la función activada; parar el mapa de llamadas, se mostrará la jerarquía anidada de todas las llamadas de la función activa. +Puede modificar el aspecto desde el menú contextual. Si desea ver una proporcionalidad exacta seleccione 'Ocultar bordes incorrectos'. Dado que esta opción puede necesitar mucho tiempo, es posible que desee limitar el nivel máximo de anidamiento. 'Mejor' determina la dirección de reparto de los descendientes a partir de las proporciones de los ascendientes. 'Siempre el mejor' decide sobre el espacio restante de cada elemento del mismo nivel. 'Ignorar proporciones' ocupa el espacio para el nombre de la función antes de diseñar sus descendientes. Observe que las proporciones pueden resultar bastante erróneas. +Es posible navegar mediante los cursores izquierda/derecha para los elementos del mismo nivel y arriba/abajo para subir o bajar por los niveles de anidamiento. 'Intro' activa el item actual. + + + +Gráfico de llamadas +Aquí se muestra el gráfico de llamadas alrededor de la función activada. El coste que se muestra es únicamente el correspondiente a la ejecución de la función activa, esto es que los de la función main() - si es visible - deberían coincidir con los de la actual función activa dado que forma parte del coste inclusivo de main() mientras la función está en ejecución. +En el caso de ciclos, las flechas de llamadas en azul indican que es una llamada inexistente añadida para corregir el gráfico. +Si el gráfico resulta ser mayor que el área de diseño, se mostrará una vista general en uno de los lados. Existen otras opciones de visualización al igual que el el árbol de llamadas, la función seleccionada aparece resaltada. + + + +Anotaciones +La lista anotada muestra las instrucciones del código desensambladas de la función activa en ese momento junto con el coste asociado a la ejecución de una línea de código o instrucción. Si hay una llamada, se insertan algunas líneas en el código con detalles acerca de la misma: el coste inclusivo dentro de la llamada, el número de llamadas que ocurren y el destino de la llamada. +Si selecciona una de esas líneas de información sobre la llamada se activará el destino de la llamada. + + + + + + + +Referencia de comandos + + +Ventana principal de &tdecachegrind; + + + +El menú <guimenu +>Archivo</guimenu +> + + + + + &Ctrl;N Archivo Nuevo +Abre una nueva ventana donde cargar la información del perfilado. Esto no es realmente necesario dado que seleccionando Archivo/Abrir también abrirá una nueva ventana si la actual está mostrando otros datos. + + + + &Ctrl;O Archivo Abrir +Abre el diálogo de apertura de archivo para que pueda cargar un archivo de información de perfilado.. Si ya tiene información cargada en la ventana principal, se abrirá otra ventana. Si desea cargar más datos de perfilado utilice Archivo/Añadir. +El nombre de los archivos de perfilado suele terminar en ..-, donde .. se usan cuando tenemos varios archivos de perfilado pertenecientes a un mismo análisis. Cuando se cargue un archivo terminado en «.», también se cargaran otros archivos, si los hay, que pertenezcan a ese mismo perfilado. +Por ejemplo: si existen los archivos cachegrind.out.123 y cachegrind.out.123.1, al cargar el primero también lo hará el segundo. + + + +Archivo Añadir +Añade información de perfilado en la ventana actual. Con esta opción puede cargar varios archivos en una misma ventana aunque no correspondan al mismo análisis. Esto puede ser útil, por ejemplo, para comparar dos casos similares. + + + +File Recargar +Recarga la información de perfilado. Esto es más interesante después de que haya sido generado otro archivos de datos de perfilado para la ejecución de una aplicación ya cargada. + + + + &Ctrl;Q Archivo Salir +Cierra &kappname; + + + + + + + +El menú <guimenu +>Ver</guimenu +> + + + + +Ver Tipo de evento primario +(Por hacer) + + + +Ver Tipo de evento secundario +(Por hacer) + + + +Ver Agrupación +(Por hacer) + + + +Ver Disposición +(Por hacer) + + + +Ver Dividir +(Por hacer) + + + + + + + + + + + + +Preguntas y respuestas +&reporting.bugs; &updating.documentation; + + + + +¿Qué es &tdecachegrind;? No consigo hacerme una idea + + +&tdecachegrind; es una herramienta útil en una de las últimas fases del desarrollo de un programa llamada perfilado. En pocas palabras: si no programa aplicaciones, no necesita &tdecachegrind;. + + + + + +¿Cuál es la diferencia entre 'coste inclusivo y propio? + + +Ambas son atributos de los costes para funciones de unos determinados tipos de eventos. Dado que las funciones se llaman entre si, tiene sentido distinguir el coste de la propia función (coste propio) y el coste de la misma más todas las funciones invocadas (coste inclusivo). 'Self' también se puede llamar coste exclusivo. +P. ej. para la función main(), siempre verá un coste inclusivo cercano al 100%, mientras el coste propio + + + + + +La barra de herramientas y/o la del menú tienen un aspecto bastante cutre ¿es normal? + + +Obviamente, KCachegrind ha sido mal instalado en su sistema. Es recomendable compilarlo e instalarlo en el mismo lugar que el resto de KDE, p. ej. configure --prefix=/opt/kde3; make install. Si decide instalarlo en otra parte como $HOME/kde debe asignar ese directorio a la variable de entorno TDEDIR antes de ejecutar KCachegrind. + + + + + +Si hace doble click sobre una función del gráfico de llamadas, verá para la función main el mismo coste que para la función seleccionada. ¿No se supone que debe ser constante al 100%? + + +Ha activado un función descendiente de main() con un coste menor que ésta. En cualquier caso sólo se muestra esa parte del coste total de una función mientras está activa. Esto es que el coste que se muestra para cualquier función nunca puede ser mayor que el de la función activada. + + + + + + + + +Glosario + +A continuación se exponen una lista de diversos términos. +Perfillado: proceso mediante el cual se recoge información estadística sobre lo que ocurre durante la ejecución de un programa. +Trazado: proceso mediante el cual se supervisa la ejecución de un programa y se registran los eventos que ocurren en un archivo de salida llamado traza (a veces también se le llama trazado). +Traza: secuencia temporal de los eventos ocurridos mientras se analizaba la ejecución de un programa. Su tamaño suele ser directamente proporcional al tiempo de ejecución. +Archivo de datos de perfilado: contiene la información obtenida durante el perfilado (o parte de ella) o producida al procesar de un trazado. Su tamaño suele ser similar al del código del programa. +Parte de la información de perfilado (también llamado incorrectamente: parte del trazado): información de un archivo de perfilado. +Experimento de perfilado. Un programa ejecutado bajo el control de una herramienta de perfilado y que está generando uno o más archivos con información de perfilado de sus partes o hebras ('threads'). +Proyecto de perfilado. Configuración del experimento de perfilado usado para el programa a perfilar. En general, las comparaciones entre perfilados sólo tienen sentido con datos de un sólo proyecto de perfilado. +Entidad de coste: es un concepto bastante abstracto, está relacionado con el código fuente del programa para el cual puede contabilizarse determinados eventos. Los parametros de las entidades de coste son la localización en el código (p.ej. línea de código, función), la localización de los datos (esto es el tipo de datos a los que se accede, objeto de los datos), la localización de la ejecución (esto es la tarea o proceso) y los tuplas de posiciones indicadas anteriormente (p.ej. llamadas o acceso a los objetos mediante la instrucción, datos obtenidos a partir del caché). +Tipo de evento. La clase de evento al que se le pueden atribuir costes a una entidad de coste. Existe tipos de eventos reales y heredados +Tipos de eventos reales. Un tipo de evento que se puede medir con una herramienta siempre que se tenga el sensor adecuado. +Tipo de evento heredado. Un tipo de evento virtual definido por una fórmula resoluble a partir de tipos de eventos reales. +Costes de los eventos. Suma de eventos de algún tipo de evento que ocurre mientras la ejecución está relacionada con alguna entidad de coste. El coste se atribuye a la entidad. + + + + + + + +Créditos y licencia + +&kappname; +Gracias a Julian Seward por su excelente herramienta &valgrind; y a Nicholas Nethercote por añadirle &cachegrind;. Sin estos programas, KCachegrind no existiría. También han contribuido con algunas ideas para esta GUI. +Gracias también a todos los usuarios que enviaron informes de fallos y sugerencias. +&underFDL; + + +Instalación + + +Cómo obtener &tdecachegrind; + +&tdecachegrind; forma parte del paquete &package; de &kde;. Si desea más información visite http://tdecachegrind.sf.net + + + +Requisitos + +Para poder utilizar&tdecachegrind;, necesitará &kde; 3.x. Para generar la información de perfilado es recomendable &cachegrind; o &calltree;/&callgrind;. + + + +Compilación e instalación +&install.compile.documentation; + + +Configuración + +Todas las opciones de configuración están o bien en el propio diálogo de configuración o en los menús contextuales de las visualizaciones. + + + + + +&documentation.index; +
+ + + + + + + + + + + + + + diff --git a/tde-i18n-es/messages/tdesdk/kcachegrind.po b/tde-i18n-es/messages/tdesdk/kcachegrind.po deleted file mode 100644 index 956786782d3..00000000000 --- a/tde-i18n-es/messages/tdesdk/kcachegrind.po +++ /dev/null @@ -1,2950 +0,0 @@ -# translation of tdecachegrind.po to -# translation of tdecachegrind.po to Spanish -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# Marcos Fouces Lago , 2004. -# Pablo de Vicente , 2005. -# Rafael Rodríguez Martín , 2005. -# Jaime Robles , 2005. -# Matias Costa , 2005. -# Pablo de Vicente , 2005. -# Eloy Cuadra , 2005. -msgid "" -msgstr "" -"Project-Id-Version: tdecachegrind\n" -"POT-Creation-Date: 2008-07-08 01:21+0200\n" -"PO-Revision-Date: 2005-12-29 13:12+0100\n" -"Last-Translator: Eloy Cuadra \n" -"Language-Team: Spanish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.11\n" - -#: instritem.cpp:106 sourceitem.cpp:86 -msgid "Active call to '%1'" -msgstr "Llamada activa a '%1'" - -#: instritem.cpp:108 sourceitem.cpp:88 -msgid "" -"_n: %n call to '%1'\n" -"%n calls to '%1'" -msgstr "" -"%n llamada a '%1'\n" -"%n llamadas a '%1'" - -#: instritem.cpp:137 -msgid "Jump %1 of %2 times to 0x%3" -msgstr "Salto %1 de %2 veces a 0x%3" - -#: instritem.cpp:142 -msgid "Jump %1 times to 0x%2" -msgstr "Salto de %1 veces 0x%2" - -#: instritem.cpp:185 sourceitem.cpp:169 -msgid "(cycle)" -msgstr "(ciclo)" - -#: tracedata.cpp:157 -msgid "Abstract Item" -msgstr "Elemento abstracto" - -#: tracedata.cpp:158 -msgid "Cost Item" -msgstr "Elemento de coste" - -#: tracedata.cpp:159 -msgid "Part Source Line" -msgstr "Línea de fuente de Part" - -#: tracedata.cpp:160 -msgid "Source Line" -msgstr "Línea de fuente" - -#: tracedata.cpp:161 -msgid "Part Line Call" -msgstr "Llamada a línea de Part" - -#: tracedata.cpp:162 -msgid "Line Call" -msgstr "Llamada a línea" - -#: tracedata.cpp:163 -msgid "Part Jump" -msgstr "Salto a Part" - -#: tracedata.cpp:164 -msgid "Jump" -msgstr "Salto" - -#: tracedata.cpp:165 -msgid "Part Instruction" -msgstr "Introducción de Part" - -#: tracedata.cpp:166 -msgid "Instruction" -msgstr "Instrucción" - -#: tracedata.cpp:167 -msgid "Part Instruction Jump" -msgstr "Salto a instrucción de Part" - -#: tracedata.cpp:168 -msgid "Instruction Jump" -msgstr "Salto a instrucción" - -#: tracedata.cpp:169 -msgid "Part Instruction Call" -msgstr "Llamada a instrucción de Part" - -#: tracedata.cpp:170 -msgid "Instruction Call" -msgstr "Llamada a instrucción" - -#: tracedata.cpp:171 -msgid "Part Call" -msgstr "Llamada a Part" - -#: tracedata.cpp:172 -msgid "Call" -msgstr "Llamada" - -#: tracedata.cpp:173 -msgid "Part Function" -msgstr "Función de Part" - -#: tracedata.cpp:174 -msgid "Function Source File" -msgstr "Archivo fuente de función" - -#. 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 "Función" - -#: tracedata.cpp:176 -msgid "Function Cycle" -msgstr "Ciclo de función" - -#: tracedata.cpp:177 -msgid "Part Class" -msgstr "Clase de Part" - -#: tracedata.cpp:178 -msgid "Class" -msgstr "Clase" - -#: tracedata.cpp:179 -msgid "Part Source File" -msgstr "Archivo fuente de Part" - -#: tracedata.cpp:180 -msgid "Source File" -msgstr "Archivo fuente" - -#: tracedata.cpp:181 -msgid "Part ELF Object" -msgstr "Objeto ELF de Part" - -#: tracedata.cpp:182 -msgid "ELF Object" -msgstr "Objeto ELF" - -#: partview.cpp:46 tracedata.cpp:183 -msgid "Profile Part" -msgstr "Perfil de Part" - -#: tracedata.cpp:184 -msgid "Program Trace" -msgstr "Trazado del programa" - -#: tracedata.cpp:245 -msgid "%1 from %2" -msgstr "%1 desde %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 "(desconocido)" - -#: tracedata.cpp:2587 -msgid "(no caller)" -msgstr "(sin llamante)" - -#: tracedata.cpp:2594 tracedata.cpp:2613 -msgid "%1 via %2" -msgstr "%1 vía %2" - -#: tracedata.cpp:2603 -msgid "(no callee)" -msgstr "(sin llamado)" - -#: tracedata.cpp:4471 -msgid "(not found)" -msgstr "(no encontrado)" - -#: tracedata.cpp:5021 -msgid "Recalculating Function Cycles..." -msgstr "Recalculando ciclos de función..." - -#. i18n: file dumpselectionbase.ui line 550 -#: callmapview.cpp:59 partselection.cpp:58 rc.cpp:192 -#, no-c-format -msgid "Name" -msgstr "Nombre" - -#. 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 "Coste" - -#: partselection.cpp:151 -msgid "Profile Part Overview: Current is '%1'" -msgstr "Vista general del trazado de Part: Actual es '%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 las secciones" - -#: partselection.cpp:294 -msgid "Visible Parts" -msgstr "Secciones visibles" - -#: partselection.cpp:296 -msgid "Hide Selected Parts" -msgstr "Ocultar las secciones seleccionadas" - -#: partselection.cpp:297 -msgid "Unhide Hidden Parts" -msgstr "Mostrar las secciones ocultas" - -#: partselection.cpp:302 toplevel.cpp:1692 -msgid "Go Back" -msgstr "Retrodecer" - -#: callgraphview.cpp:2571 partselection.cpp:320 -msgid "Visualization" -msgstr "Visualización" - -#: partselection.cpp:322 -msgid "Partitioning Mode" -msgstr "Modo de particionado" - -#: partselection.cpp:323 -msgid "Diagram Mode" -msgstr "Modo de diagrama" - -#: partselection.cpp:324 -msgid "Zoom Function" -msgstr "Función de ampliación" - -#: partselection.cpp:325 -msgid "Show Direct Calls" -msgstr "Mostrar llamadas directas" - -#: partselection.cpp:326 -msgid "Increment Shown Call Levels" -msgstr "Incrementar los niveles de llamada mostrador" - -#: partselection.cpp:340 -msgid "Draw Names" -msgstr "Dibujar nombres" - -#: partselection.cpp:341 -msgid "Draw Costs" -msgstr "Dibujar costes" - -#: callmapview.cpp:303 partselection.cpp:342 -msgid "Ignore Proportions" -msgstr "Ignorar proporciones" - -#: partselection.cpp:343 -msgid "Draw Frames" -msgstr "Dibujar marcos" - -#: callmapview.cpp:304 partselection.cpp:344 treemap.cpp:2887 -msgid "Allow Rotation" -msgstr "Permitir rotación" - -#: partselection.cpp:359 -msgid "Hide Info" -msgstr "Ocultar información" - -#: partselection.cpp:361 -msgid "Show Info" -msgstr "Mostrar información" - -#: partselection.cpp:541 -msgid "(no trace loaded)" -msgstr "(ninguna traza cargada)" - -#: 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 "Propio" - -#: costtypeview.cpp:45 -msgid "Short" -msgstr "Corto" - -#: 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 de coste de tipos " -"

Esta lista muestra todos los tipos de coste disponibles y cuales son los " -"costes propios/inclusivos de la función seleccionada para ese tipo de coste.

" -"

Al elegir un tipo de coste en la lista, cambia el tipo de coste mostrado en " -"todo KCachegrind al seleccionado.

" - -#: costtypeview.cpp:98 -msgid "Set Secondary Event Type" -msgstr "Definir tipo de evento secundario" - -#: costtypeview.cpp:100 -msgid "Remove Secondary Event Type" -msgstr "Eliminar tipo de evento secundario" - -#: costtypeview.cpp:105 -msgid "Edit Long Name" -msgstr "Editar nombre largo" - -#: costtypeview.cpp:106 -msgid "Edit Short Name" -msgstr "Editar nombre corto" - -#: costtypeview.cpp:107 -msgid "Edit Formula" -msgstr "Editar fórmula" - -#: costtypeview.cpp:115 -msgid "New Cost Type ..." -msgstr "Nuevo tipo de coste..." - -#: costtypeview.cpp:149 costtypeview.cpp:154 -#, c-format -msgid "New%1" -msgstr "Nuevo%1" - -#: costtypeview.cpp:155 -#, c-format -msgid "New Cost Type %1" -msgstr "Nuevo tipo de coste %1" - -#: sourceitem.cpp:125 -msgid "Jump %1 of %2 times to %3" -msgstr "Salto %1 de %2 veces a %3" - -#: sourceitem.cpp:130 -msgid "Jump %1 times to %2" -msgstr "Salto %1 veces a %2" - -#: costlistitem.cpp:60 -#, c-format -msgid "" -"_n: (%n item skipped)\n" -"(%n items skipped)" -msgstr "" -"(%n elemento ignorado)\n" -"(%n elementos ignorados)" - -#: traceitemview.cpp:53 -msgid "No description available" -msgstr "Ninguna descripción disponible" - -#. i18n: file partselectionbase.ui line 16 -#: rc.cpp:324 toplevel.cpp:281 toplevel.cpp:581 -#, no-c-format -msgid "Parts Overview" -msgstr "Vista de secciones de traza" - -#: 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 "" -"

La vista de secciones de traza

" -"

Una traza consiste en múltiples secciones de trazas cuando hay varios " -"archivos de datos de perfiles de un ejecución de perfilado. La vista de " -"secciones de traza anclable las muestra, ordenadas horizontalmente respecto a " -"su tiempo de ejecución; los tamaños de los rectángulos son proporcionales al " -"coste total gastado en la sección. Puede seleccionar una o varias secciones " -"para mostrar todos los costes solo de estas secciones.

" -"

Las secciones están a su vez subdivididas: Hay modos de división por " -"particionado y por llamado: " -"

    " -"
  • Particionado: ve la partición en grupos, para una sección de traza, de " -"acuerdo con el tipo de grupo seleccionado. Ej: Si grupos de objetos ELF están " -"seleccionados, verá rectángulos coloreados para cada objeto ELF usado " -"(biblioteca compartida o ejecutable), dimensionado respecto al coste gastado en " -"el.
  • " -"
  • Llamado: Un rectángulo muestra el coste inclusivo de la función " -"seleccionada en la sección de traza. Esto se divide en rectángulos más pequeños " -"para mostrar los costes de sus llamantes.

" - -#: toplevel.cpp:318 -msgid "Top Cost Call Stack" -msgstr "Pila de llamadas de coste superior" - -#: 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 "" -"La pila de llamadas de coste superior " -"

Se trata de una pila totalmente ficticia de llamadas 'más probables'. Se " -"construye comenzando con la función seleccionada actualmente y añade a los " -"llamantes/llamados con mayor coste en la parte superior y hacia abajo.

" -"

Las columnas de coste y llamadas muestra el coste utilizado " -"para todas las llamadas de la función de la línea superior.

" - -#: toplevel.cpp:333 -msgid "Flat Profile" -msgstr "Perfil plano" - -#: 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 "" -"El perfil plano" -"

El perfil plano contiene una lista de selección de funciones y grupos. La " -"lista de grupos contiene todos los grupos en los que se gastan los costes, " -"dependiendo del tipo de grupo elegido. La lista de grupos permanece oculta " -"cuando se selecciona el tipo 'Función'." -"

" -"

La lista de funciones contiene las funciones del grupo seleccionado (o todas " -"cuando el tipo de grupo es 'Función'), ordenadas según los costes. Las " -"funciones con costes inferiores al 1% están ocultas de forma predeterminada.

" - -#. i18n: file dumpselectionbase.ui line 16 -#: rc.cpp:84 toplevel.cpp:357 toplevel.cpp:609 -#, no-c-format -msgid "Profile Dumps" -msgstr "Volcados de perfil" - -#: 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 "" -"Volcados de perfil " -"

Este diálogo anclable muestra en la parte superior la lista de volcados de " -"perfiles cargables en todos los subdirectorios de: " -"

    " -"
  • el directorio de trabajo de KCachegrind, es decir, desde donde ha sido " -"iniciado, y " -"
  • el directorio de volcados de perfiles predeterminado según la " -"configuración.
La lista está ordenada de acuerdo con la orden de destino " -"perfilada en el volcado correspondiente.

" -"

Al seleccionar un volcado de perfil, se muestra su información en la parte " -"inferior del diálogo anclable: " -"

    " -"
  • Las Opciones le permiten ver la orden perfilada y las opciones del " -"perfil de este volcado. Si cambia cualquier elemento se creará una nueva " -"plantilla de perfil (hasta entonces inexistente). Pulse Ejecutar perfil " -"para iniciar una ejecución de un perfil en segundo plano con esas opciones. " -"
  • Información proporciona información detallada sobre el volcado " -"actual, como el sumario de costes de eventos y las propiedades del caché " -"simulado. " -"
  • Estado está disponible únicamente cuando se ejecutan los perfiles. " -"Pulse Actualizar para ver los diferentes contadores de la ejecución, y " -"una traza de la pila de la posición actual en el programa perfilado. Compruebe " -"que la opción Cada permite a KCachegrind actualizar regularmente esta " -"información. Active la opción Sincronizar para que el diálogo anclable " -"active la función superior del volcado cargado actualmente.

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

Make a copy of the current layout.

" -msgstr "" -"Duplicar la actual disposición" -"

Crea una copia de la actual disposición

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

Delete current layout and make the previous active.

" -msgstr "" -"Eliminar actual disposición " -"

Elimina la actual disposición y activa la anterior

" - -#: toplevel.cpp:470 -msgid "&Go to Next" -msgstr "&Ir a siguiente" - -#: toplevel.cpp:474 -msgid "Go to Next Layout" -msgstr "Ir a la disposición siguiente" - -#: toplevel.cpp:477 -msgid "&Go to Previous" -msgstr "&Ir a anterior" - -#: toplevel.cpp:481 -msgid "Go to Previous Layout" -msgstr "Ir a la disposición anterior" - -#: toplevel.cpp:484 -msgid "&Restore to Default" -msgstr "&Restaurar a predeterminado" - -#: toplevel.cpp:487 -msgid "Restore Layouts to Default" -msgstr "Volver a la disposición predeterminada" - -#: toplevel.cpp:490 -msgid "&Save as Default" -msgstr "&Guardar por omisión" - -#: toplevel.cpp:493 -msgid "Save Layouts as Default" -msgstr "Guardar la disposición como predeterminada" - -#: toplevel.cpp:504 -msgid "New

Open new empty KCachegrind window.

" -msgstr "Nuevo

Abrir una nueva ventada de KCachegrind vacía.

" - -#: toplevel.cpp:507 -msgid "&Add..." -msgstr "&Añadir..." - -#: toplevel.cpp:510 -msgid "" -"Add Profile Data" -"

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

" -msgstr "" -"Añadir traza " -"

Esto abre un archivo adicional con trazas en la ventana actual.

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

This loads any new created parts, too.

" -msgstr "" -"Recargar traza" -"

También carga cualquier part de nueva creación.

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

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

" -msgstr "" -"Exportar gráfico de llamadas" -"

Genera un archivo de extensión .dot para las herramientas del paquete " -"GraphViz.

" - -#: toplevel.cpp:536 -msgid "&Force Dump" -msgstr "&Forzar volcado" - -#: 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 "" -"Forzar volcado " -"

Esto fuerza un volcado para una ejecución de perfilado en el directorio " -"actual. Esta acción está activada mientras KCachegrind busca el volcado. Si el " -"volcado acaba, automáticamente se refresca la traza actual. Si este es la del " -"Callgrind en ejecución, la nueva traza creada se carga también.

" -"

Forzar un volcado crea un archivo llamado 'callgrind.cmd', y se comprueba " -"cada segundo su existencia. Un Callgrind en ejecución detecta su existencia, " -"vuelca una sección de traza, y elimina 'callgrind.cmd'. KCachegrind detecta la " -"eliminación, y provoca una recarga. Si no hay un Callgrind en " -"ejecución, pulse 'Forzar volcado' de nuevo para cancelar la petición de " -"volcado. Esto elimina 'callgrind.cmd' y para de buscar un nuevo volcado.

" -"

Nota: una ejecución de Callgrind solo detecta la existencia de " -"'callgrind.cmd' cuando se ejecuta activamente al menos unos pocos milisegundos, " -"ej: no durmiendo. Truco: para el perfilado de un programa con GUI, " -"puede despertar Callgrind redimensinando la ventana.

" - -#: toplevel.cpp:570 -msgid "" -"Open Profile Data" -"

This opens a profile data file, with possible multiple parts

" -msgstr "" -"Abrir traza " -"

Abre una traza, con posibilidad de varias secciones

" - -#: toplevel.cpp:586 -msgid "Show/Hide the Parts Overview Dockable" -msgstr "Mostrar/Ocultar la vista general de parts anclable" - -#: toplevel.cpp:590 -msgid "Call Stack" -msgstr "Pila de llamadas" - -#: toplevel.cpp:595 -msgid "Show/Hide the Call Stack Dockable" -msgstr "Mostrar/Ocultar la pila superior de llamadas anclable" - -#. i18n: file functionselectionbase.ui line 16 -#: rc.cpp:297 toplevel.cpp:599 -#, no-c-format -msgid "Function Profile" -msgstr "Perfil de función" - -#: toplevel.cpp:604 -msgid "Show/Hide the Function Profile Dockable" -msgstr "Mostrar/Ocultar el perfil de la función anclable" - -#: toplevel.cpp:614 -msgid "Show/Hide the Profile Dumps Dockable" -msgstr "Mostrar/Ocultar los volcados de perfil anclable" - -#: toplevel.cpp:619 -msgid "Show Relative Costs" -msgstr "Mostrar costes relativos" - -#: toplevel.cpp:626 -msgid "Show Absolute Costs" -msgstr "Mostrar costes absolutos" - -#: toplevel.cpp:629 -msgid "Show relative instead of absolute costs" -msgstr "Mostrar costes relativos en vez de absolutos" - -#: toplevel.cpp:633 -msgid "Percentage Relative to Parent" -msgstr "Porcentaje relativo al padre" - -#: toplevel.cpp:639 -msgid "Show percentage costs relative to parent" -msgstr "Mostrar costes de porcentaje relativos al padre" - -#: 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 los costes en porcentaje relativos al padre" -"

    Si esta opción se desactiva, los costes en porcentaje se muestran siempre en " -"relación al coste total de las partes del perfil que se están viendo " -"actualmente. Al activar esta opción, los costes en porcentaje de los elementos " -"de coste mostrados serán relativos al elemento de coste padre." -"

      " -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"
      Tipo de costeCoste padre
      Acumulador de funcionesTotal
      Misma funciónGrupo de funciones (*) / Total
      LlamadaAcumulador de funciones
      Línea fuenteAcumulador de funciones
      " -"

      (*) Únicamente si se activa la agrupación de funciones (p.e. grupos de " -"objetos ELF)." - -#: toplevel.cpp:658 -msgid "Do Cycle Detection" -msgstr "Realizar detección de ciclo" - -#: toplevel.cpp:664 -msgid "Skip Cycle Detection" -msgstr "Saltar detección de ciclo" - -#: 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 ciclos recursivos" -"

      Si esta opción se desactiva, el dibujo del mapa de árbol mostrará zonas " -"negras cuando se realice una llamada recursiva en vez de dibujar la recusión " -"hasta el infinito. Tenga en cuenta que el tamaño de las zonas negras " -"probablemente no será correcto, pues al estar dentro de los ciclos recursivos " -"no se podrá determinar el coste de las llamadas. Sin embargo, el error es " -"pequeño en los ciclos falsos (ver la documentación)." -"

      El manejo correcto de los ciclos consiste en detectarlos y contraer todas " -"las funciones de un ciclo dentro de una función virtual. Esto se hace cuando " -"esta opción está activado. Lamentablemente, en el caso de las aplicaciones " -"gráficas, esto llevará en ocasiones a ciclos falsos desmesurados, haciendo que " -"el análisis sea imposible. Por eso existe la posibilidad de desactivar la " -"opción." - -#: toplevel.cpp:689 toplevel.cpp:729 -msgid "Go back in function selection history" -msgstr "Retroceder en el historial de selección de funciones" - -#: toplevel.cpp:695 toplevel.cpp:741 -msgid "Go forward in function selection history" -msgstr "Avanzar en el historial de selección de funciones" - -#: 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 al último llamante seleccionado de la función actual. Si no se ha visita " -"a ningún llamante, utilizar el de coste más alto.

      " - -#: toplevel.cpp:707 -msgid "&Up" -msgstr "S&ubir" - -#: toplevel.cpp:746 toplevel.cpp:1651 -msgid "Primary Event Type" -msgstr "Tipo de evento primario" - -#: toplevel.cpp:748 -msgid "Select primary event type of costs" -msgstr "Seleccionar tipo de evento primario de costes" - -#: toplevel.cpp:758 toplevel.cpp:1654 -msgid "Secondary Event Type" -msgstr "Tipo de evento secundario" - -#: toplevel.cpp:760 -msgid "Select secondary event type for cost e.g. shown in annotations" -msgstr "" -"Seleccionar tipo de evento secundario por coste, ej. mostrar en anotaciones" - -#: functionselection.cpp:243 toplevel.cpp:768 -msgid "Grouping" -msgstr "Agrupación" - -#: toplevel.cpp:771 -msgid "Select how functions are grouped into higher level cost items" -msgstr "" -"Seleccionar cómo se agrupan las funciones en los elementos de coste de nivel " -"superior" - -#: functionselection.cpp:52 toplevel.cpp:777 -msgid "(No Grouping)" -msgstr "(Sin agrupación)" - -#: toplevel.cpp:787 -msgid "Split" -msgstr "Dividir" - -#: toplevel.cpp:791 -msgid "Show two information panels" -msgstr "Mostrar dos paneles de información" - -#: toplevel.cpp:795 -msgid "Split Horizontal" -msgstr "Dividir horizontalmente" - -#: toplevel.cpp:800 -msgid "Change Split Orientation when main window is split." -msgstr "" -"Cambiar orientación de división cuando la ventana principal esta dividida." - -#: toplevel.cpp:808 -msgid "Tip of the &Day..." -msgstr "El consejo del &día..." - -#: toplevel.cpp:809 -msgid "Show \"Tip of the Day\"" -msgstr "Mostrar \"El consejo del día\"" - -#: toplevel.cpp:1012 toplevel.cpp:1061 -msgid "" -"cachegrind.out* callgrind.out*|Callgrind Profile Data\n" -"*|All Files" -msgstr "" -"cachegrind.out* callgrind.out*|Datos de perfilado de Callgrind\n" -"*|All Files" - -#: toplevel.cpp:1014 -msgid "Select Callgrind Profile Data" -msgstr "Seleccione datos de perfilado de Callgrind (Callgrind Profile Data)" - -#: toplevel.cpp:1063 -msgid "Add Callgrind Profile Data" -msgstr "Añadir datos de perfilado de Callgrind" - -#: toplevel.cpp:1221 toplevel.cpp:1574 -msgid "(Hidden)" -msgstr "(Oculto)" - -#: toplevel.cpp:1626 -msgid "Hide" -msgstr "Ocultar" - -#: toplevel.cpp:1659 -msgid "Show Absolute Cost" -msgstr "Mostrar coste absoluto" - -#: toplevel.cpp:1662 -msgid "Show Relative Cost" -msgstr "Mostrar coste relativo" - -#: toplevel.cpp:1693 -msgid "Go Forward" -msgstr "Avanzar" - -#: toplevel.cpp:1694 -msgid "Go Up" -msgstr "Subir" - -#: toplevel.cpp:1926 -#, c-format -msgid "Layout Count: %1" -msgstr "Cuenta de distribuciones: %1" - -#: toplevel.cpp:1933 -msgid "No profile data file loaded." -msgstr "Ningun archivo de traza cargado." - -#: toplevel.cpp:1942 -msgid "Total %1 Cost: %2" -msgstr "Total %1 Coste: %2" - -#: toplevel.cpp:1954 -msgid "No event type selected" -msgstr "Ningún tipo de evento seleccionado" - -#: toplevel.cpp:2199 toplevel.cpp:2235 toplevel.cpp:2271 -msgid "(No Stack)" -msgstr "(Ninguna pila)" - -#: toplevel.cpp:2205 -msgid "(No next function)" -msgstr "(No hay siguiente función)" - -#: toplevel.cpp:2241 -msgid "(No previous function)" -msgstr "(No hay anterior función)" - -#: toplevel.cpp:2276 -msgid "(No Function Up)" -msgstr "(No hay función superior)" - -#. 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 "Coste 2" - -#: instrview.cpp:129 -msgid "Hex" -msgstr "Hex" - -#: instrview.cpp:131 tabview.cpp:313 -msgid "Assembler" -msgstr "Ensamblador" - -#: instrview.cpp:132 -msgid "Source Position" -msgstr "Posición del fuente" - -#: 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 "" -"Ensamblador anotado" -"

      La lista de ensamblador anotado muestra las instrucciones del código máquina " -"de la función activa en ese momento, junto con el coste asociado a la ejecución " -"de una instrucción. Si ésta es una llamada, se insertan en el código líneas con " -"detalles sobre la llamada activa: el coste dentro de la llamada, el número de " -"llamadas activas, y el destino de la llamada.

      " -"

      La salida del desensamblador mostrada se genera con la utilidad 'objdump' " -"del paquete 'binutils'.

      " -"

      Seleccione una linea con información de una llamada para hacer activa la " -"función destino de esta llamada.

      " - -#: 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 a '%1'" - -#: instrview.cpp:195 -#, c-format -msgid "Go to Address %1" -msgstr "Ir a la dirección %1" - -#: instrview.cpp:207 -msgid "Hex Code" -msgstr "Código hexadecimal" - -#: instrview.cpp:426 -msgid "There is no instruction info in the profile data file." -msgstr "No hay información de instrucciones en el archivo de traza." - -#: instrview.cpp:428 -msgid "For the Valgrind Calltree Skin, rerun with option" -msgstr "" -"Para utilizar el entorno de árbol de llamadas de Valgrind, vuelva a ejecutar " -"con la opción" - -#: instrview.cpp:429 -msgid " --dump-instr=yes" -msgstr " --dump-instr=yes" - -#: instrview.cpp:430 -msgid "To see (conditional) jumps, additionally specify" -msgstr "Para ver saltos (condicionales), especifique 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 "Hay un error al intentar ejecutar la orden" - -#: instrview.cpp:634 instrview.cpp:900 -msgid "Check that you have installed 'objdump'." -msgstr "Compruebe que tenga instalado 'objdump'" - -#: instrview.cpp:636 instrview.cpp:902 -msgid "This utility can be found in the 'binutils' package." -msgstr "Esta utilidad se puede encontrar en el paquete 'binutils'." - -#: instrview.cpp:739 -msgid "(No Assembler)" -msgstr "(Sin ensamblador)" - -#: 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 "" -"Hay %n línea de coste sin código de ensamblador.\n" -"Hay %n líneas de coste sin código de ensamblador." - -#: instrview.cpp:877 -msgid "This happens because the code of" -msgstr "Esto sucede porque el código de" - -#: instrview.cpp:880 -msgid "does not seem to match the profile data file." -msgstr "no parece corresponderse con el archivo de datos de perfilado." - -#: instrview.cpp:883 -msgid "Are you using an old profile data file or is the above mentioned" -msgstr "¿Está utilizando un archivo de trazas antiguo o es el mencionado " - -#: instrview.cpp:885 -msgid "ELF object from an updated installation/another machine?" -msgstr "objeto ELF de una instalación actualizada o de otra máquina?" - -#: instrview.cpp:893 -msgid "There seems to be an error trying to execute the command" -msgstr "Para que hay un error al intentar ejecutar la orden" - -#: instrview.cpp:898 -msgid "Check that the ELF object used in the command exists." -msgstr "Compruebe que exista el objeto ELF utilizado en la orden" - -#: callgraphview.cpp:306 -#, c-format -msgid "Call(s) from %1" -msgstr "Llamada(s) de %1" - -#: callgraphview.cpp:307 -#, c-format -msgid "Call(s) to %1" -msgstr "Llamada(s) a %1" - -#: callgraphview.cpp:308 -msgid "(unknown call)" -msgstr "(llamada desconocida)" - -#: 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 llamadas entorno a la función activa" -"

      Dependiendo de la configuración, esta vista muestra en gráfico de llamadas " -"del entorno de la función activa. Tenga en cuenta que el coste mostrado " -"corresponde únicamente al producido mientras la función activa estaba en " -"ejecución, es decir, el coste mostrado de main(), si es visible, debería ser el " -"mismo que el coste de la función activa, ya que esa es la parte del coste " -"inclusivo de main() mientras la función activa estaba en ejecución.

      " -"

      En el caso de los ciclos, las flechas de llamada azules indican que se trata " -"de una llamada artificial añadida para un dibujado correcto pero que nunca se " -"ha producido.

      " -"

      Si el gráfico es mayor que el área en pantalla, aparecerá un selector de " -"vista general en uno de los extremos. Hay opciones de visualización similares " -"en el mapa de árbol de llamadas; la función seleccionada aparece resaltada." -"

      " - -#: callgraphview.cpp:1789 -msgid "" -"Warning: a long lasting graph layouting is in progress.\n" -"Reduce node/edge limits for speedup.\n" -msgstr "" -"Aviso: se está generando un gráfico que puede tardar mucho tiempo.\n" -"Reduzca el número de nodos o aristas para agilizar el proceso.\n" - -#: callgraphview.cpp:1792 -msgid "" -"Layouting stopped.\n" -msgstr "" -"Generación detenida.\n" - -#: callgraphview.cpp:1794 -msgid "" -"The call graph has %1 nodes and %2 edges.\n" -msgstr "" -"El gráfico de llamadas tiene %1 nodos y %2 aristas.\n" - -#: callgraphview.cpp:1827 -msgid "No item activated for which to draw the call graph." -msgstr "" -"No se ha activado ningún elemento para el cual dibujar el gráfico de llamadas." - -#: callgraphview.cpp:1838 -msgid "No call graph can be drawn for the active item." -msgstr "" -"No se puede dibujar ningún gráfico de llamadas para el elemento activo." - -#: callgraphview.cpp:1867 -msgid "" -"No call graph is available because the following\n" -"command cannot be run:\n" -"'%1'\n" -msgstr "" -"No hay disponible ningún gráfico de llamadas\n" -"porque la siguiente orden no puede ser ejecutada:\n" -"'%1'\n" - -#: callgraphview.cpp:1870 callgraphview.cpp:2200 -msgid "Please check that 'dot' is installed (package GraphViz)." -msgstr "Compruebe que 'dot' está instalado (paquete GraphViz)" - -#: callgraphview.cpp:2199 -msgid "" -"Error running the graph layouting tool.\n" -msgstr "" -"Error al ejecutar la herramienta de disposición de gráficos.\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 "" -"No hay gráfico de llamada disponible para la función\n" -"\t'%1'\n" -"porque no tiene el costo del tipo de evento seleccionado" - -#: callgraphview.cpp:2428 -msgid "Stop Layouting" -msgstr "Detener generación" - -#: callgraphview.cpp:2436 -msgid "As PostScript" -msgstr "Como postscript" - -#: callgraphview.cpp:2437 -msgid "As Image ..." -msgstr "Como imagen..." - -#: callgraphview.cpp:2439 -msgid "Export Graph" -msgstr "Exportar gráfico" - -#: callgraphview.cpp:2444 callgraphview.cpp:2467 -msgid "Unlimited" -msgstr "Ilimitado" - -#: callgraphview.cpp:2447 callgraphview.cpp:2470 -msgid "None" -msgstr "Ninguno" - -#: 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 "Sin 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 "Igual que el nodo" - -#: callgraphview.cpp:2518 -#, c-format -msgid "50 % of Node" -msgstr "50 % del nodo" - -#: callgraphview.cpp:2519 -#, c-format -msgid "20 % of Node" -msgstr "20 % del nodo" - -#: callgraphview.cpp:2520 -#, c-format -msgid "10 % of Node" -msgstr "10 % del nodo" - -#: callgraphview.cpp:2530 -msgid "Caller Depth" -msgstr "Profundidad del llamante" - -#: callgraphview.cpp:2531 -msgid "Callee Depth" -msgstr "Profundidad del llamante" - -#: callgraphview.cpp:2532 -msgid "Min. Node Cost" -msgstr "Coste mín. del nodo" - -#: callgraphview.cpp:2533 -msgid "Min. Call Cost" -msgstr "Coste mín. de llamada" - -#: callgraphview.cpp:2535 -msgid "Arrows for Skipped Calls" -msgstr "Flechas para llamadas ignoradas" - -#: callgraphview.cpp:2537 -msgid "Inner-cycle Calls" -msgstr "Llamadas de ciclo interno" - -#: callgraphview.cpp:2539 -msgid "Cluster Groups" -msgstr "Clusterizar grupos" - -#: 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 "De arriba a abajo" - -#: callgraphview.cpp:2552 -msgid "Left to Right" -msgstr "De izquierda a derecha" - -#: callgraphview.cpp:2553 -msgid "Circular" -msgstr "Circular" - -#: callgraphview.cpp:2559 -msgid "TopLeft" -msgstr "Superior izquierda" - -#: callgraphview.cpp:2560 -msgid "TopRight" -msgstr "Superior derecha" - -#: callgraphview.cpp:2561 -msgid "BottomLeft" -msgstr "Inferior izquierda" - -#: callgraphview.cpp:2562 -msgid "BottomRight" -msgstr "Inferior derecha" - -#. 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 de pájaro" - -#: _translatorinfo.cpp:1 -msgid "" -"_: NAME OF TRANSLATORS\n" -"Your names" -msgstr "Pablo de Vicente" - -#: _translatorinfo.cpp:3 -msgid "" -"_: EMAIL OF TRANSLATORS\n" -"Your emails" -msgstr "p.devicente@wanadoo.es" - -#: coverageitem.cpp:65 coverageitem.cpp:205 functionitem.cpp:72 -#, c-format -msgid "" -"_n: (%n function skipped)\n" -"(%n functions skipped)" -msgstr "" -"(%n función ignorada)\n" -"(%n funciones ignoradas)" - -#: main.cpp:38 -msgid "Run under cachegrind" -msgstr "Ejecutar en cachegrind." - -#: main.cpp:39 -msgid "Show information of this trace" -msgstr "Mostrar información de esta traza" - -#: main.cpp:46 -msgid "KCachegrind" -msgstr "KCachegrind" - -#: main.cpp:48 -msgid "KDE Frontend for Cachegrind" -msgstr "Entorno de KDE para Cachegrind" - -#: main.cpp:50 -msgid "(C) 2002, 2003, 2004" -msgstr "(C) 2002, 2003, 2004" - -#: main.cpp:53 -msgid "Author/Maintainer" -msgstr "Autor/mantenedor" - -#: tabview.cpp:64 -msgid "Move to Top" -msgstr "Mover arriba" - -#: tabview.cpp:68 -msgid "Move to Right" -msgstr "Mover a la derecha" - -#: tabview.cpp:72 -msgid "Move to Bottom" -msgstr "Mover abajo" - -#: tabview.cpp:76 -msgid "Move to Bottom Left" -msgstr "Mover a la izquierda" - -#: tabview.cpp:77 tabview.cpp:94 treemap.cpp:2908 -msgid "Bottom Left" -msgstr "Inferior izquierda" - -#: tabview.cpp:79 -msgid "Move Area To" -msgstr "Mover área a" - -#: tabview.cpp:81 -msgid "Hide This Tab" -msgstr "Ocultar esta pestaña" - -#: tabview.cpp:82 -msgid "Hide Area" -msgstr "Ocultar área" - -#: tabview.cpp:95 -msgid "Show Hidden On" -msgstr "Activar mostrar oculto" - -#: tabview.cpp:242 -msgid "(No profile data file loaded)" -msgstr "(Ningún archivo de traza cargado)" - -#: tabview.cpp:281 -msgid "Types" -msgstr "Tipos" - -#: tabview.cpp:284 -msgid "Callers" -msgstr "Llamantes" - -#: tabview.cpp:287 -msgid "All Callers" -msgstr "Todos los llamantes" - -#: tabview.cpp:290 -msgid "Caller Map" -msgstr "Mapa del llamante" - -#: tabview.cpp:293 -msgid "Source" -msgstr "Fuente" - -#: tabview.cpp:297 -msgid "Parts" -msgstr "Parts" - -#: tabview.cpp:300 -msgid "Call Graph" -msgstr "Gráfico de llamadas" - -#: tabview.cpp:303 -msgid "Callees" -msgstr "Llamantes" - -#: tabview.cpp:306 -msgid "All Callees" -msgstr "Todos los llamantes" - -#: tabview.cpp:310 -msgid "Callee Map" -msgstr "Mapa de llamante" - -#: 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 "" -"Pestañas de información" -"

      Este elemento muestra información para la función seleccionada en pestañas " -"diferentes: " -"

        " -"
      • La pestaña «Costes» muestra una lista de los tipos de eventos disponibles y " -"los costes inclusivos y propios referentes a estos tipos.
      • " -"
      • La pestaña «Secciones» muestra una lista de secciones si la traza consta de " -"más de una sección (en caso contrario esta pestaña está oculta). Muestra el " -"coste de la función seleccionada gastada en las diferentes secciones junto a " -"las llamadas.
      • " -"
      • La pestaña «Lista de llamadas» muestra llamantes y llamados directos de la " -"función con más detalle.
      • " -"
      • La pestaña «Cobertura» muestra lo mismo que la pestaña «Lista de llamadas», " -"pero no solo llamantes y llamados directos, sino también los indirectos.
      • " -"
      • La pestaña «Gráfica de llamadas» muestra una visualización gráfica de las " -"llamadas hechas por esta función.
      • " -"
      • La pestaña «Fuente» muestra código fuente anotado, si está disponible y " -"existe información de depurado.
      • " -"
      • La pestaña «Ensamblador» muestra código ensamblador anotado si la " -"información de trazado a nivel de instrucción esta disponible." -"
      Para más información, vea la ayuda ¿Que es esto? " -"de la pestaña correspondiente.

      " - -#: tabview.cpp:630 -msgid "(No Data loaded)" -msgstr "(Ninguna información cargada)" - -#: tabview.cpp:631 -msgid "(No function selected)" -msgstr "(Ninguna función seleccionada)" - -#: sourceview.cpp:54 sourceview.cpp:554 -msgid "Source (unknown)" -msgstr "Fuente (desconocido)" - -#: 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 "" -"Fuente anotada" -"

      Las fuentes anotadas muestran las instrucciones del código de la función " -"seleccionada en este momento junto con el (propio) coste asociado a la " -"ejecución de esta línea de código. Si hay una llamada, se insertan algunas " -"líneas en el código con detalles acerca de la misma: el coste gastado dentro de " -"la llamada, el número de llamadas que ocurren y el destino de la llamada.

      " -"

      Seleccione una información de llamada insertada para hacer actual la función " -"destino.

      " - -#: sourceview.cpp:120 -#, c-format -msgid "Go to Line %1" -msgstr "Ir a la línea %1" - -#: sourceview.cpp:293 -msgid "(No Source)" -msgstr "(Sin fuente)" - -#: sourceview.cpp:512 -msgid "There is no cost of current selected type associated" -msgstr "No hay ningún coste del tipo seleccionado asociado" - -#: sourceview.cpp:514 -msgid "with any source line of this function in file" -msgstr "con ninguna línea del código fuente de está función en el archivo" - -#: sourceview.cpp:518 -msgid "Thus, no annotated source can be shown." -msgstr "Por lo que no se puede mostrar ninguna fuente anotada." - -#: sourceview.cpp:553 -msgid "Source ('%1')" -msgstr "Fuente ('%1')" - -#: sourceview.cpp:559 -msgid "--- Inlined from '%1' ---" -msgstr "--- Incorporada desde '%1' ---" - -#: sourceview.cpp:560 -msgid "--- Inlined from unknown source ---" -msgstr "--- Incorporada desde fuente desconocida ---" - -#: sourceview.cpp:565 -msgid "There is no source available for the following function:" -msgstr "No hay código fuente disponible para la siguiente función:" - -#: sourceview.cpp:570 -msgid "This is because no debug information is present." -msgstr "Esto es porque no se encuentra información de depuración." - -#: sourceview.cpp:572 -msgid "Recompile source and redo the profile run." -msgstr "Recompilar fuentes y rehacer la ejecución del perfil." - -#: sourceview.cpp:575 -msgid "The function is located in this ELF object:" -msgstr "La función está ubicada en el objeto ELF:" - -#: sourceview.cpp:583 -msgid "This is because its source file cannot be found:" -msgstr "Esto es porque su archivo fuente no se pudo encontrar:" - -#: sourceview.cpp:587 -msgid "Add the folder of this file to the source folder list." -msgstr "Añada la carpeta de este archivo a lista de carpetas fuentes" - -#: sourceview.cpp:589 -msgid "The list can be found in the configuration dialog." -msgstr "La lista se puede encontrar en el diálogo de configuración." - -#: partlistitem.cpp:49 -msgid " (Thread %1)" -msgstr " (Hilo %1)" - -#: partlistitem.cpp:56 -msgid "(none)" -msgstr "(ninguno)" - -#: callitem.cpp:82 partlistitem.cpp:152 -msgid "(active)" -msgstr "(activo)" - -#: functionselection.cpp:176 -#, c-format -msgid "Go to %1" -msgstr "Ir a %1" - -#: functionselection.cpp:203 -msgid "Show All Items" -msgstr "Mostrar todos los elementos" - -#: functionselection.cpp:226 -msgid "No Grouping" -msgstr "Sin agrupación" - -#: coverageview.cpp:48 coverageview.cpp:54 -msgid "Distance" -msgstr "Distancia" - -#. i18n: file dumpselectionbase.ui line 928 -#: coverageview.cpp:49 partview.cpp:49 rc.cpp:270 rc.cpp:315 -#, no-c-format -msgid "Called" -msgstr "Llamado" - -#: callview.cpp:48 coverageview.cpp:50 -msgid "Caller" -msgstr "Llamante" - -#: coverageview.cpp:55 -msgid "Calling" -msgstr "Llamando" - -#: callview.cpp:52 coverageview.cpp:56 -msgid "Callee" -msgstr "Llamante" - -#: 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 los llamantes " -"

      Esta lista muestra todas las funciones que llaman a la seleccionada " -"actualmente, bien directamente o con varias funciones de por medio en la pila. " -"El numero de funciones de por medio más uno se llama distancia " -"(ej: Para las funciones A,B,C existen llamadas de A a C cuando A llama a B y B " -"llama a C, ej: A => B => C. La distancia aquí es 2).

      " -"

      El coste absoluto mostrado es el coste gastado en la función seleccionada " -"mientras una función listada esta activa; coste relativo es el porcentaje de " -"todo coste gastado en la función seleccionada mientras la listada está activa. " -"La gráfica del coste muestra porcentaje logarítmico con un color distinto para " -"cada distancia.

      " - -#: 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 los llamados " -"

      Esta lista muestra todas las funciones llamadas por la seleccionada " -"actualmente, bien directamente o con varias funciones de por medio en la pila. " -"El numero de funciones de por medio más uno se llama distancia " -"(ej: Para las funciones A,B,C existen llamadas de A a C cuando A llama a B y B " -"llama a C, ej: A => B => C. La distancia aquí es 2).

      " -"

      El coste absoluto mostrado es el coste gastado en la función seleccionada " -"mientras la función seleccionada esta activa; coste relativo es el porcentaje " -"de todo coste gastado en la función listada mientras la seleccionada está " -"activa. La gráfica del coste muestra porcentaje logarítmico con un color " -"distinto para cada distancia.

      " - -#: configuration.cpp:63 -msgid "Instruction Fetch" -msgstr "Búsqueda de instrucción" - -#: configuration.cpp:64 -msgid "Data Read Access" -msgstr "Acceso de lectura de datos" - -#: configuration.cpp:65 -msgid "Data Write Access" -msgstr "Acceso de escritura de datos" - -#: configuration.cpp:66 -msgid "L1 Instr. Fetch Miss" -msgstr "Fallo en la búsqueda de instr. L1" - -#: configuration.cpp:67 -msgid "L1 Data Read Miss" -msgstr "Falla en la lectura de datos L1" - -#: configuration.cpp:68 -msgid "L1 Data Write Miss" -msgstr "Falla en la escritura de datos L1" - -#: configuration.cpp:69 -msgid "L2 Instr. Fetch Miss" -msgstr "Falla en la búsqueda de instr. L2" - -#: configuration.cpp:70 -msgid "L2 Data Read Miss" -msgstr "Falla en la lectura de datos L2" - -#: configuration.cpp:71 -msgid "L2 Data Write Miss" -msgstr "Falla en la escritura de datos L2" - -#: configuration.cpp:72 -msgid "Samples" -msgstr "Ejemplos" - -#: configuration.cpp:73 -msgid "System Time" -msgstr "Hora del sistema" - -#: configuration.cpp:74 -msgid "User Time" -msgstr "Hora del usuario" - -#: configuration.cpp:75 -msgid "L1 Miss Sum" -msgstr "Falla suma L1" - -#: configuration.cpp:76 -msgid "L2 Miss Sum" -msgstr "Falla suma L2" - -#: configuration.cpp:77 -msgid "Cycle Estimation" -msgstr "Estimación del ciclo" - -#. i18n: file tdecachegrindui.rc line 15 -#: rc.cpp:9 -#, no-c-format -msgid "&Layout" -msgstr "&Distribución" - -#. i18n: file tdecachegrindui.rc line 32 -#: rc.cpp:12 -#, no-c-format -msgid "Sidebars" -msgstr "Barras laterales" - -#. i18n: file tdecachegrindui.rc line 54 -#: rc.cpp:18 -#, no-c-format -msgid "State Toolbar" -msgstr "Barra de herramientas de estado" - -#. i18n: file configdlgbase.ui line 37 -#: rc.cpp:24 -#, no-c-format -msgid "General" -msgstr "General" - -#. i18n: file configdlgbase.ui line 69 -#: rc.cpp:27 -#, no-c-format -msgid "Truncated when more/longer than:" -msgstr "Truncado si es más largo que:" - -#. i18n: file configdlgbase.ui line 77 -#: rc.cpp:30 -#, no-c-format -msgid "Precision of percentage values:" -msgstr "Precisión de los valores porcentuales:" - -#. i18n: file configdlgbase.ui line 85 -#: rc.cpp:33 -#, no-c-format -msgid "Symbols in tooltips and context menus" -msgstr "Símbolos en las sugerencias y menús contextuales" - -#. 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 elementos en las listas:" - -#. i18n: file configdlgbase.ui line 162 -#: rc.cpp:39 -#, no-c-format -msgid "Cost Item Colors" -msgstr "Colores de los elementos de coste" - -#. i18n: file configdlgbase.ui line 254 -#: rc.cpp:45 -#, no-c-format -msgid "Object:" -msgstr "Objeto:" - -#. i18n: file configdlgbase.ui line 262 -#: rc.cpp:48 -#, no-c-format -msgid "Class:" -msgstr "Clase:" - -#. i18n: file configdlgbase.ui line 310 -#: rc.cpp:57 -#, no-c-format -msgid "File:" -msgstr "Archivo:" - -#. i18n: file configdlgbase.ui line 376 -#: rc.cpp:60 -#, no-c-format -msgid "Annotations" -msgstr "Anotaciones" - -#. i18n: file configdlgbase.ui line 395 -#: rc.cpp:63 -#, no-c-format -msgid "Context lines in annotations:" -msgstr "Líneas de contexto en anotaciones:" - -#. i18n: file configdlgbase.ui line 423 -#: rc.cpp:66 -#, no-c-format -msgid "Source Folders" -msgstr "Carpetas fuente" - -#. i18n: file configdlgbase.ui line 454 -#: rc.cpp:69 -#, no-c-format -msgid "Object / Related Source Base" -msgstr "Base de fuente del objeto o relacionada" - -#. i18n: file configdlgbase.ui line 483 -#: rc.cpp:72 -#, no-c-format -msgid "Add..." -msgstr "Añadir..." - -#. i18n: file dumpselectionbase.ui line 32 -#: rc.cpp:87 -#, no-c-format -msgid "Target" -msgstr "Objetivo" - -#. i18n: file dumpselectionbase.ui line 54 -#: rc.cpp:90 -#, no-c-format -msgid "Time" -msgstr "Hora" - -#. i18n: file dumpselectionbase.ui line 65 -#: rc.cpp:93 -#, no-c-format -msgid "Path" -msgstr "Ruta" - -#. i18n: file dumpselectionbase.ui line 106 -#: rc.cpp:99 -#, no-c-format -msgid "Target command:" -msgstr "Orden objetivo:" - -#. i18n: file dumpselectionbase.ui line 119 -#: rc.cpp:102 -#, no-c-format -msgid "Profiler options:" -msgstr "Opciones de perfilado:" - -#. i18n: file dumpselectionbase.ui line 125 -#: rc.cpp:105 -#, no-c-format -msgid "Option" -msgstr "Opción" - -#. 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 "Traza" - -#. 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 "Instrucciones" - -#. 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 "Caché completa" - -#. i18n: file dumpselectionbase.ui line 216 -#: rc.cpp:126 -#, no-c-format -msgid "Custom" -msgstr "Personalizado" - -#. i18n: file dumpselectionbase.ui line 231 -#: rc.cpp:129 -#, no-c-format -msgid "Collect" -msgstr "Recoger" - -#. i18n: file dumpselectionbase.ui line 244 -#: rc.cpp:132 -#, no-c-format -msgid "At Startup" -msgstr "En el inicio" - -#. i18n: file dumpselectionbase.ui line 258 -#: rc.cpp:135 -#, no-c-format -msgid "While In" -msgstr "Mientras esté en" - -#. 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 "Volcar perfilado" - -#. i18n: file dumpselectionbase.ui line 328 -#: rc.cpp:150 -#, no-c-format -msgid "Every BBs" -msgstr "Cada BBs" - -#. i18n: file dumpselectionbase.ui line 342 -#: rc.cpp:153 rc.cpp:162 -#, no-c-format -msgid "On Entering" -msgstr "Al entrar en" - -#. i18n: file dumpselectionbase.ui line 356 -#: rc.cpp:156 -#, no-c-format -msgid "On Leaving" -msgstr "Al salir de" - -#. i18n: file dumpselectionbase.ui line 371 -#: rc.cpp:159 -#, no-c-format -msgid "Zero Events" -msgstr "Cero 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 "Hilos" - -#. i18n: file dumpselectionbase.ui line 426 -#: rc.cpp:171 -#, no-c-format -msgid "Recursions" -msgstr "Recursiones" - -#. i18n: file dumpselectionbase.ui line 440 -#: rc.cpp:174 -#, no-c-format -msgid "Call Chain" -msgstr "Cadena de llamadas" - -#. i18n: file dumpselectionbase.ui line 470 -#: rc.cpp:177 -#, no-c-format -msgid "Custom profiler options:" -msgstr "Opciones personalizadas del perfilador:" - -#. i18n: file dumpselectionbase.ui line 508 -#: rc.cpp:180 -#, no-c-format -msgid "Run New Profile" -msgstr "Ejecutar nuevo perfil" - -#. i18n: file dumpselectionbase.ui line 520 -#: rc.cpp:183 -#, no-c-format -msgid "Info" -msgstr "Información" - -#. i18n: file dumpselectionbase.ui line 531 -#: rc.cpp:186 -#, no-c-format -msgid "Dump reason:" -msgstr "Razón del volcado:" - -#. i18n: file dumpselectionbase.ui line 544 -#: rc.cpp:189 -#, no-c-format -msgid "Event summary:" -msgstr "Sumario de eventos:" - -#. i18n: file dumpselectionbase.ui line 561 -#: rc.cpp:195 -#, no-c-format -msgid "Sum" -msgstr "Suma" - -#. i18n: file dumpselectionbase.ui line 579 -#: rc.cpp:198 -#, no-c-format -msgid "Miscellaneous:" -msgstr "Varios:" - -#. 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 "Actualizar" - -#. i18n: file dumpselectionbase.ui line 664 -#: rc.cpp:213 -#, no-c-format -msgid "Every [s]:" -msgstr "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 "Volcados hechos" - -#. i18n: file dumpselectionbase.ui line 713 -#: rc.cpp:225 -#, no-c-format -msgid "Is Collecting" -msgstr "Está recogiendo" - -#. i18n: file dumpselectionbase.ui line 727 -#: rc.cpp:228 -#, no-c-format -msgid "Executed" -msgstr "Ejecutado" - -#. i18n: file dumpselectionbase.ui line 740 -#: rc.cpp:231 -#, no-c-format -msgid "Basic Blocks" -msgstr "Bloques básicos" - -#. i18n: file dumpselectionbase.ui line 754 -#: callmapview.cpp:63 rc.cpp:234 rc.cpp:339 -#, no-c-format -msgid "Calls" -msgstr "Llamadas" - -#. 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 "Distinguir" - -#. i18n: file dumpselectionbase.ui line 824 -#: configdlg.cpp:58 rc.cpp:249 -#, no-c-format -msgid "ELF Objects" -msgstr "Objetos ELF" - -#. i18n: file dumpselectionbase.ui line 838 -#: rc.cpp:252 -#, no-c-format -msgid "Functions" -msgstr "Funciones" - -#. 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 "Traza de la pila:" - -#. i18n: file dumpselectionbase.ui line 898 -#: rc.cpp:261 -#, no-c-format -msgid "Sync." -msgstr "Sincronizar" - -#. i18n: file dumpselectionbase.ui line 950 -#: callmapview.cpp:61 rc.cpp:276 rc.cpp:321 -#, no-c-format -msgid "Location" -msgstr "Localización" - -#. i18n: file dumpselectionbase.ui line 976 -#: rc.cpp:279 -#, no-c-format -msgid "Start" -msgstr "Inicio" - -#. i18n: file dumpselectionbase.ui line 1001 -#: rc.cpp:282 -#, no-c-format -msgid "Zero" -msgstr "Cero" - -#. i18n: file dumpselectionbase.ui line 1009 -#: rc.cpp:285 -#, no-c-format -msgid "Dump" -msgstr "Volcado" - -#. i18n: file dumpselectionbase.ui line 1021 -#: rc.cpp:288 -#, no-c-format -msgid "Messages" -msgstr "Mensajes" - -#. i18n: file dumpselectionbase.ui line 1045 -#: rc.cpp:291 -#, no-c-format -msgid "Kill Run" -msgstr "Detener ejecución" - -#. i18n: file functionselectionbase.ui line 41 -#: rc.cpp:300 -#, no-c-format -msgid "&Search:" -msgstr "&Buscar:" - -#. 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 "(sin partes para trazar)" - -#. i18n: file stackselectionbase.ui line 16 -#: rc.cpp:330 -#, no-c-format -msgid "Stack Selection" -msgstr "Selección de pila" - -#. i18n: file stackselectionbase.ui line 42 -#: rc.cpp:336 -#, no-c-format -msgid "Cost2" -msgstr "Coste2" - -#: treemap.cpp:1281 -#, c-format -msgid "Text %1" -msgstr "Texto %1" - -#: treemap.cpp:2809 -msgid "Recursive Bisection" -msgstr "Bisección recursiva" - -#: treemap.cpp:2810 -msgid "Columns" -msgstr "Columnas" - -#: treemap.cpp:2811 -msgid "Rows" -msgstr "Filas" - -#: treemap.cpp:2812 -msgid "Always Best" -msgstr "Siempre mejor" - -#: treemap.cpp:2813 -msgid "Best" -msgstr "Mejor" - -#: treemap.cpp:2814 -msgid "Alternate (V)" -msgstr "Alternar (V)" - -#: treemap.cpp:2815 -msgid "Alternate (H)" -msgstr "Alternar (H)" - -#: treemap.cpp:2872 -msgid "Nesting" -msgstr "Anidar" - -#: treemap.cpp:2875 -msgid "Correct Borders Only" -msgstr "Sólo bordes correctos" - -#: treemap.cpp:2877 treemap.cpp:2878 treemap.cpp:2879 treemap.cpp:2880 -#, c-format -msgid "Width %1" -msgstr "Anchura %1" - -#: callmapview.cpp:321 treemap.cpp:2889 -msgid "Shading" -msgstr "Sombreado" - -#: treemap.cpp:2902 -msgid "Visible" -msgstr "Visible" - -#: treemap.cpp:2903 -msgid "Take Space From Children" -msgstr "Tomar espacio de los hijos" - -#: treemap.cpp:2905 -msgid "Top Left" -msgstr "Superior izquierda" - -#: treemap.cpp:2906 -msgid "Top Center" -msgstr "Superior centro" - -#: treemap.cpp:2907 -msgid "Top Right" -msgstr "Superior derecha" - -#: treemap.cpp:2909 -msgid "Bottom Center" -msgstr "Inferior centro" - -#: treemap.cpp:2910 -msgid "Bottom Right" -msgstr "Inferior derecha" - -#: treemap.cpp:2987 -msgid "No %1 Limit" -msgstr "Sin límite de %1" - -#: callmapview.cpp:243 treemap.cpp:3039 -msgid "No Area Limit" -msgstr "Sin límite 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 "" -"1 Píxel\n" -"%n Píxeles" - -#: callmapview.cpp:264 treemap.cpp:3071 -msgid "Double Area Limit (to %1)" -msgstr "Límite de doble área (a %1)" - -#: treemap.cpp:3073 -msgid "Halve Area Limit (to %1)" -msgstr "Limitar área a la mitad (a %1)" - -#: callmapview.cpp:187 treemap.cpp:3101 -msgid "No Depth Limit" -msgstr "Sin límite de profundidad" - -#: callmapview.cpp:198 treemap.cpp:3107 -msgid "Depth of '%1' (%2)" -msgstr "Profundidad de '%1' (%2)" - -#: treemap.cpp:3118 -#, c-format -msgid "Depth %1" -msgstr "Profundidad %1" - -#: treemap.cpp:3122 -msgid "Decrement (to %1)" -msgstr "Decrementar (a %1)" - -#: treemap.cpp:3124 -msgid "Increment (to %1)" -msgstr "Incrementar (a %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 de llamantes" -"

      Este gráfico muestra la jerarquía anidada de todos los llamantes a la " -"función activa. Cada rectángulo coloreado representa una función y su tamaño " -"trata de ser proporcional al coste producido mientras la función activa está en " -"ejecución (sin embargo hay limitaciones en los dibujos).

      " - -#: 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 de llamadas" -"

      Este gráfico muestra la jerarquía anidada de todas las llamadas producidas " -"por la función activa. Cada rectángulo coloreado representa una función y su " -"tamaño trata de ser proporcional al coste producido mientras la función activa " -"está en ejecución (sin embargo hay limitaciones en los dibujos).

      " - -#: 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 "" -"

      Las opciones sobre la apariencia se encuentran en el menú contextual. Para " -"obtener proporciones de tamaño exactas, seleccione 'Ocultar bordes " -"incorrectos'. Como este modo puede ser muy lento, quizá sea mejor que " -"limite el número máximo de dibujos anidados previamente. 'Mejor' determina la " -"dirección de división de los hijos a partir de las proporciones del padre. " -"'Siempre mejor' decide sobre el espacio restante en cada hermano. 'Ignorar " -"proporciones' toma espacio para el nombre de la función dibujándolo " -"antes que a los hijos. Tenga en cuenta que las proporciones de tamaño " -"pueden llegar a estar muy equivocadas.

      " -"

      Este es un componente gráfico de tipo TreeMap" -". Está disponible la navegación con teclado con los cursores izquierdo y " -"derecho para cambiar de hermano, y superior e inferior para ascender o " -"descender en los niveles de la jerarquía. Intro " -"activa el elemento actual.

      " - -#: callmapview.cpp:167 -msgid "Go To" -msgstr "Ir a" - -#: callmapview.cpp:184 -msgid "Stop at Depth" -msgstr "Detenerse en la profundidad" - -#: callmapview.cpp:190 -msgid "Depth 10" -msgstr "Profundidad 10" - -#: callmapview.cpp:192 -msgid "Depth 15" -msgstr "Profundidad 15" - -#: callmapview.cpp:194 -msgid "Depth 20" -msgstr "Profundidad 20" - -#: callmapview.cpp:204 -msgid "Decrement Depth (to %1)" -msgstr "Decrementar profundidad (a %1)" - -#: callmapview.cpp:205 -msgid "Increment Depth (to %1)" -msgstr "Incrementar profundidad (a %1)" - -#: callmapview.cpp:209 -msgid "Stop at Function" -msgstr "Detenerse en la función" - -#: callmapview.cpp:210 -msgid "No Function Limit" -msgstr "Sin límite de función" - -#: callmapview.cpp:240 -msgid "Stop at Area" -msgstr "Detenerse en el área" - -#: callmapview.cpp:246 -msgid "50 Pixels" -msgstr "50 Píxeles" - -#: callmapview.cpp:248 -msgid "100 Pixels" -msgstr "100 Píxeles" - -#: callmapview.cpp:250 -msgid "200 Pixels" -msgstr "200 Píxeles" - -#: callmapview.cpp:252 -msgid "500 Pixels" -msgstr "500 Píxeles" - -#: callmapview.cpp:266 -msgid "Half Area Limit (to %1)" -msgstr "Límite de media área (a %1)" - -#: callmapview.cpp:273 -msgid "Visualisation" -msgstr "Visualización" - -#: callmapview.cpp:277 -msgid "Split Direction" -msgstr "Dividir dirección" - -#: callmapview.cpp:279 -msgid "Skip Incorrect Borders" -msgstr "Ignorar bordes incorrectos" - -#: callmapview.cpp:284 -msgid "Border Width" -msgstr "Ancho del borde" - -#: callmapview.cpp:285 -msgid "Border 0" -msgstr "Borde 0" - -#: callmapview.cpp:288 -msgid "Border 1" -msgstr "Borde 1" - -#: callmapview.cpp:290 -msgid "Border 2" -msgstr "Borde 2" - -#: callmapview.cpp:292 -msgid "Border 3" -msgstr "Borde 3" - -#: callmapview.cpp:297 -msgid "Draw Symbol Names" -msgstr "Dibujar nombres de símbolos" - -#: callmapview.cpp:298 -msgid "Draw Cost" -msgstr "Dibujar coste" - -#: callmapview.cpp:299 -msgid "Draw Location" -msgstr "Dibujar ubicación" - -#: callmapview.cpp:300 -msgid "Draw Calls" -msgstr "Dibujar llamadas" - -#: callmapview.cpp:431 -msgid "Call Map: Current is '%1'" -msgstr "Mapa de llamadas: el actual es '%1'" - -#: callmapview.cpp:599 -msgid "(no function)" -msgstr "(ninguna función)" - -#: callmapview.cpp:741 callmapview.cpp:858 -msgid "(no call)" -msgstr "(ninguna llamada)" - -#: cachegrindloader.cpp:141 -msgid "Import filter for Cachegrind/Callgrind generated profile data files" -msgstr "" -"Filtro de importación para archivos de trazas generados por " -"Cachegrind/Callgrind" - -#: cachegrindloader.cpp:738 -#, c-format -msgid "Loading %1" -msgstr "Cargando %1" - -#: callview.cpp:47 callview.cpp:51 -msgid "Count" -msgstr "Cuenta" - -#: 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 de llamantes directos " -"

      Esta lista muestra todas las funciones que llaman la seleccionada " -"actualmente directamente, junto con una contador de llamadas y el coste gastado " -"en la función seleccionada actualmente mientras es llamada por la función de la " -"lista.

      " -"

      Un icono en vez del coste inclusivo especifica que esta es una llamada " -"dentro de un ciclo recursivo. Un coste inclusivo no tiene sentido aquí.

      " -"

      Seleccionar una función provoca que sea la seleccionada actualmente de este " -"panel de información. Si hay dos paneles (modo dividido), se cambia la función " -"del otro panel.

      " - -#: 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 de llamados directos " -"

      Esta lista muestra todas las funciones llamadas por la seleccionada " -"actualmente directamente, junto con una contador de llamadas y el coste gastado " -"en esta función mientras es llamada por la función seleccionada.

      " -"

      Seleccionar una función provoca que sea la seleccionada actualmente de este " -"panel de información. Si hay dos paneles (modo dividido), se cambia la función " -"del otro panel.

      " - -#: costtypeitem.cpp:56 -msgid "Unknown Type" -msgstr "Tipo desconocido" - -#: 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 "" -"

      ...que la ayuda ¿Qué es esto? contiene información\n" -"detallada de todos los elementos gráficos de KCachegrind?\n" -"Es muy recomendable leer estos textos de ayuda la primera vez que\n" -"se utiliza el programa. Para activar la ayuda ¿Qué es esto?\n" -"pulse Mayúsculas+F1 y pulse sobre el 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 "" -"

      ...que puede obtener información del perfil a nivel de instrucciones\n" -"si utiliza la opción --dump-instr=yes al ejecutar Calltree?\n" -"Utilice la Vista de ensamblador para ver las anotaciones de las instrucciones.\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 "" -"

      ...que puede utilizar las teclas Alt-Izquierda/Derecha de su teclado\n" -"para desplazarse por el historial de objetos activos?

      \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 "" -"

      ...que puede navegar en el mapa de llamantes/llamadas utilizando\n" -"los cursores del teclado? Utilice izquierda/derecha para cambiar a los\n" -"hermanos del elemento actual; utilice superior/inferior para moverse en\n" -"los niveles de la jerarquía. Para seleccionar el elemento actual pulse\n" -"Espacio y para activarlo, pulse Intro.\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 "" -"

      ...que puede navegar en la vista del gráfico de llamadas utilizando\n" -"los cursores? Utilice superior/inferior para subir y bajar en los niveles,\n" -"alternando entre llamadas y funciones. Utilice izquierda/derecha para\n" -"cambiar a los hermanos de la llamada selecciona actualmente. Para\n" -"activar el elemento actual, pulse Intro.\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 "" -"

      ...que puede localizar rápidamente una función introduciendo parte de\n" -"su nombre (no distingue mayúsculas) en la línea de edición de la barra\n" -"de herramientas y pulsando Intro?

      \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 "" -"

      ...que puede asignar colores personalizados a los objetos\n" -"ELF/clases de C++/archivos fuente para colorear los gráficos\n" -"en Preferencias->Configurar 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 "" -"

      ...que puede ver está disponible la información de depuración de una\n" -"función seleccionada mirando en la etiqueta de ubicación de la pestaña de\n" -"información o en la cabecera del lista del código fuente en la pestaña de " -"fuente?

      \n" -"

      Debe estar el nombre del archivo fuente (con extensión).\n" -"Si KCachegrind no muestra el código fuente, asegúrese de que ha\n" -"añadido el directorio del código fuente en la lista\n" -"Directorios fuente en la configuración.\n" - -#: tips.cpp:69 -msgid "" -"

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

      \n" -msgstr "" -"

      ...que puede configurar si KCachegrind debe mostrar\n" -"los contadores de eventos absolutos o relativos (porcentajes)?

      \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 "" -"

      ...que puede configurar el número máximo de elementos\n" -"de todas las listas de funciones en KCachegrind? Limitar el número\n" -"de elementos sirve para obtener una respuesta más rápida del entorno\n" -"gráfico. El último elemento de la lista muestra el número de funciones\n" -"obviadas, juntos la condición de coste de dichas funciones.

      \n" -"

      Para activar una función con costes pequeños, búsquela y\n" -"selecciónela en el perfil plano. La selección de funciones de coste\n" -"pequeño las añadirá temporalmente a la lista de perfil plano.

      \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 "" -"

      ...que la pestaña Cobertura, en contraste con la pestaña de listas de\n" -"llamadas, muestra todas las funciones que llaman a la función\n" -"seleccionada (en la parte superior) y todas a las que llama dicha función\n" -"(en la parte inferior), independientemente de cuantas funciones interpuestas\n" -"haya en la pila?

      \n" -"

      Ejemplos:

      \n" -"

      Una entrada en la lista superior para la función foo1() con un valor de 50%\n" -"con la función bar() seleccionada, significa que el 50% del coste total de la\n" -"función bar() se produjo mientras era llamada desde la función foo1().

      \n" -"

      Una entrada en la lista inferior para la función foo2() con un valor de 50%\n" -"con la función bar() seleccionada significa que el 50% del coste total de la\n" -"función bar() se produjo mientras esta llamada a foo2().

      \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 "" -"

      ...que esperar al marco de ayuda dentro de un mapa de árbol\n" -"muestra la lista de los nombres de los rectángulos anidados sobre los\n" -"que está el puntero del ratón?

      \n" -"

      Entonces es posible seleccionar los elementos de la lista pulsando\n" -"el botón derecho del ratón.

      \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 "" -"

      ...que puede contraer los contadores de coste para mostrar sólo algunas\n" -"partes de todo el trazado seleccionando esas partes en el elemento\n" -"\"Selección de traza\"?

      \n" -"

      Para generar múltiples partes en la ejecución de perfilado con\n" -"cachegrind, utilice, por ejemplo, la opción --cachedumps=xxx para obtener\n" -"partes con una longitud de xxx bloques básicos (un bloque básico es\n" -"la ejecución de sentencias de ensamblador sin ramas dentro del código\n" -"del programa.

      \n" - -#: configdlg.cpp:60 -msgid "Source Files" -msgstr "Archivos fuente" - -#: configdlg.cpp:61 -msgid "C++ Classes" -msgstr "Clases C++" - -#: configdlg.cpp:62 -msgid "Function (no Grouping)" -msgstr "Funciones (sin agrupar)" - -#: configdlg.cpp:157 configdlg.cpp:350 configdlg.cpp:371 -msgid "(always)" -msgstr "(siempre)" - -#: configdlg.cpp:210 -msgid "KCachegrind Configuration" -msgstr "Configuración de 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 "" -"El número máximo de elementos de la lista debe ser inferior a 500. Se utilizará " -"el valor anterior (%1)." - -#: configdlg.cpp:384 -msgid "Choose Source Folder" -msgstr "Elegir carpeta fuente" - -#: partgraph.cpp:167 -#, c-format -msgid "Profile Part %1" -msgstr "Perfil de Part %1" - -#: partgraph.cpp:226 -msgid "(no trace)" -msgstr "(ninguna traza)" - -#: partgraph.cpp:229 -msgid "(no part)" -msgstr "(ningún part)" - -#: partview.cpp:51 -msgid "Comment" -msgstr "Comentario" - -#: 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 secciones de traza

      " -"

      Esta lista muestra todas las secciones de traza para la traza cargada. Para " -"cada parte, se muestra el coste propio/inclusivo de la función seleccionada " -"actual; los costes en porcentaje son siempre relativos al coste total " -"de la sección (no a la traza entera como en la vista de secciones de " -"traza). También se muestran la llamadas que ocurren a/desde la función " -"seleccionada actualmente dentro de la sección de traza.

      " -"

      Al elegir una o más secciones de traza de la lista, el coste mostrado en " -"todo KCachegrind será solo de los gastados en las secciones seleccionadas. Si " -"no se lista ninguna selección, en realidad están seleccionadas " -"implícitamente.

      " -"

      Esta es una lista de múltiple selección. Puede seleccionar rangos " -"arrastrando el ratón o usando los modificadores SHIFT/CRTL. La selección o " -"deselección puede hacerse también desde la \"Vista secciones de trazas " -"anclable\". Esta también permite selección múltiple.

      " -"

      Note que la lista está oculta si solo una traza está cargada.

      " - -#: partview.cpp:106 -msgid "Select '%1'" -msgstr "Seleccionar '%1'" - -#: partview.cpp:107 -msgid "Hide '%1'" -msgstr "Ocultar '%1'" - -#: partview.cpp:111 -msgid "Hide Selected" -msgstr "Ocultar seleccionado" - -#: partview.cpp:112 -msgid "Show All" -msgstr "Mostrar todo" diff --git a/tde-i18n-es/messages/tdesdk/tdecachegrind.po b/tde-i18n-es/messages/tdesdk/tdecachegrind.po new file mode 100644 index 00000000000..956786782d3 --- /dev/null +++ b/tde-i18n-es/messages/tdesdk/tdecachegrind.po @@ -0,0 +1,2950 @@ +# translation of tdecachegrind.po to +# translation of tdecachegrind.po to Spanish +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# Marcos Fouces Lago , 2004. +# Pablo de Vicente , 2005. +# Rafael Rodríguez Martín , 2005. +# Jaime Robles , 2005. +# Matias Costa , 2005. +# Pablo de Vicente , 2005. +# Eloy Cuadra , 2005. +msgid "" +msgstr "" +"Project-Id-Version: tdecachegrind\n" +"POT-Creation-Date: 2008-07-08 01:21+0200\n" +"PO-Revision-Date: 2005-12-29 13:12+0100\n" +"Last-Translator: Eloy Cuadra \n" +"Language-Team: Spanish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11\n" + +#: instritem.cpp:106 sourceitem.cpp:86 +msgid "Active call to '%1'" +msgstr "Llamada activa a '%1'" + +#: instritem.cpp:108 sourceitem.cpp:88 +msgid "" +"_n: %n call to '%1'\n" +"%n calls to '%1'" +msgstr "" +"%n llamada a '%1'\n" +"%n llamadas a '%1'" + +#: instritem.cpp:137 +msgid "Jump %1 of %2 times to 0x%3" +msgstr "Salto %1 de %2 veces a 0x%3" + +#: instritem.cpp:142 +msgid "Jump %1 times to 0x%2" +msgstr "Salto de %1 veces 0x%2" + +#: instritem.cpp:185 sourceitem.cpp:169 +msgid "(cycle)" +msgstr "(ciclo)" + +#: tracedata.cpp:157 +msgid "Abstract Item" +msgstr "Elemento abstracto" + +#: tracedata.cpp:158 +msgid "Cost Item" +msgstr "Elemento de coste" + +#: tracedata.cpp:159 +msgid "Part Source Line" +msgstr "Línea de fuente de Part" + +#: tracedata.cpp:160 +msgid "Source Line" +msgstr "Línea de fuente" + +#: tracedata.cpp:161 +msgid "Part Line Call" +msgstr "Llamada a línea de Part" + +#: tracedata.cpp:162 +msgid "Line Call" +msgstr "Llamada a línea" + +#: tracedata.cpp:163 +msgid "Part Jump" +msgstr "Salto a Part" + +#: tracedata.cpp:164 +msgid "Jump" +msgstr "Salto" + +#: tracedata.cpp:165 +msgid "Part Instruction" +msgstr "Introducción de Part" + +#: tracedata.cpp:166 +msgid "Instruction" +msgstr "Instrucción" + +#: tracedata.cpp:167 +msgid "Part Instruction Jump" +msgstr "Salto a instrucción de Part" + +#: tracedata.cpp:168 +msgid "Instruction Jump" +msgstr "Salto a instrucción" + +#: tracedata.cpp:169 +msgid "Part Instruction Call" +msgstr "Llamada a instrucción de Part" + +#: tracedata.cpp:170 +msgid "Instruction Call" +msgstr "Llamada a instrucción" + +#: tracedata.cpp:171 +msgid "Part Call" +msgstr "Llamada a Part" + +#: tracedata.cpp:172 +msgid "Call" +msgstr "Llamada" + +#: tracedata.cpp:173 +msgid "Part Function" +msgstr "Función de Part" + +#: tracedata.cpp:174 +msgid "Function Source File" +msgstr "Archivo fuente de función" + +#. 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 "Función" + +#: tracedata.cpp:176 +msgid "Function Cycle" +msgstr "Ciclo de función" + +#: tracedata.cpp:177 +msgid "Part Class" +msgstr "Clase de Part" + +#: tracedata.cpp:178 +msgid "Class" +msgstr "Clase" + +#: tracedata.cpp:179 +msgid "Part Source File" +msgstr "Archivo fuente de Part" + +#: tracedata.cpp:180 +msgid "Source File" +msgstr "Archivo fuente" + +#: tracedata.cpp:181 +msgid "Part ELF Object" +msgstr "Objeto ELF de Part" + +#: tracedata.cpp:182 +msgid "ELF Object" +msgstr "Objeto ELF" + +#: partview.cpp:46 tracedata.cpp:183 +msgid "Profile Part" +msgstr "Perfil de Part" + +#: tracedata.cpp:184 +msgid "Program Trace" +msgstr "Trazado del programa" + +#: tracedata.cpp:245 +msgid "%1 from %2" +msgstr "%1 desde %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 "(desconocido)" + +#: tracedata.cpp:2587 +msgid "(no caller)" +msgstr "(sin llamante)" + +#: tracedata.cpp:2594 tracedata.cpp:2613 +msgid "%1 via %2" +msgstr "%1 vía %2" + +#: tracedata.cpp:2603 +msgid "(no callee)" +msgstr "(sin llamado)" + +#: tracedata.cpp:4471 +msgid "(not found)" +msgstr "(no encontrado)" + +#: tracedata.cpp:5021 +msgid "Recalculating Function Cycles..." +msgstr "Recalculando ciclos de función..." + +#. i18n: file dumpselectionbase.ui line 550 +#: callmapview.cpp:59 partselection.cpp:58 rc.cpp:192 +#, no-c-format +msgid "Name" +msgstr "Nombre" + +#. 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 "Coste" + +#: partselection.cpp:151 +msgid "Profile Part Overview: Current is '%1'" +msgstr "Vista general del trazado de Part: Actual es '%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 las secciones" + +#: partselection.cpp:294 +msgid "Visible Parts" +msgstr "Secciones visibles" + +#: partselection.cpp:296 +msgid "Hide Selected Parts" +msgstr "Ocultar las secciones seleccionadas" + +#: partselection.cpp:297 +msgid "Unhide Hidden Parts" +msgstr "Mostrar las secciones ocultas" + +#: partselection.cpp:302 toplevel.cpp:1692 +msgid "Go Back" +msgstr "Retrodecer" + +#: callgraphview.cpp:2571 partselection.cpp:320 +msgid "Visualization" +msgstr "Visualización" + +#: partselection.cpp:322 +msgid "Partitioning Mode" +msgstr "Modo de particionado" + +#: partselection.cpp:323 +msgid "Diagram Mode" +msgstr "Modo de diagrama" + +#: partselection.cpp:324 +msgid "Zoom Function" +msgstr "Función de ampliación" + +#: partselection.cpp:325 +msgid "Show Direct Calls" +msgstr "Mostrar llamadas directas" + +#: partselection.cpp:326 +msgid "Increment Shown Call Levels" +msgstr "Incrementar los niveles de llamada mostrador" + +#: partselection.cpp:340 +msgid "Draw Names" +msgstr "Dibujar nombres" + +#: partselection.cpp:341 +msgid "Draw Costs" +msgstr "Dibujar costes" + +#: callmapview.cpp:303 partselection.cpp:342 +msgid "Ignore Proportions" +msgstr "Ignorar proporciones" + +#: partselection.cpp:343 +msgid "Draw Frames" +msgstr "Dibujar marcos" + +#: callmapview.cpp:304 partselection.cpp:344 treemap.cpp:2887 +msgid "Allow Rotation" +msgstr "Permitir rotación" + +#: partselection.cpp:359 +msgid "Hide Info" +msgstr "Ocultar información" + +#: partselection.cpp:361 +msgid "Show Info" +msgstr "Mostrar información" + +#: partselection.cpp:541 +msgid "(no trace loaded)" +msgstr "(ninguna traza cargada)" + +#: 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 "Propio" + +#: costtypeview.cpp:45 +msgid "Short" +msgstr "Corto" + +#: 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 de coste de tipos " +"

      Esta lista muestra todos los tipos de coste disponibles y cuales son los " +"costes propios/inclusivos de la función seleccionada para ese tipo de coste.

      " +"

      Al elegir un tipo de coste en la lista, cambia el tipo de coste mostrado en " +"todo KCachegrind al seleccionado.

      " + +#: costtypeview.cpp:98 +msgid "Set Secondary Event Type" +msgstr "Definir tipo de evento secundario" + +#: costtypeview.cpp:100 +msgid "Remove Secondary Event Type" +msgstr "Eliminar tipo de evento secundario" + +#: costtypeview.cpp:105 +msgid "Edit Long Name" +msgstr "Editar nombre largo" + +#: costtypeview.cpp:106 +msgid "Edit Short Name" +msgstr "Editar nombre corto" + +#: costtypeview.cpp:107 +msgid "Edit Formula" +msgstr "Editar fórmula" + +#: costtypeview.cpp:115 +msgid "New Cost Type ..." +msgstr "Nuevo tipo de coste..." + +#: costtypeview.cpp:149 costtypeview.cpp:154 +#, c-format +msgid "New%1" +msgstr "Nuevo%1" + +#: costtypeview.cpp:155 +#, c-format +msgid "New Cost Type %1" +msgstr "Nuevo tipo de coste %1" + +#: sourceitem.cpp:125 +msgid "Jump %1 of %2 times to %3" +msgstr "Salto %1 de %2 veces a %3" + +#: sourceitem.cpp:130 +msgid "Jump %1 times to %2" +msgstr "Salto %1 veces a %2" + +#: costlistitem.cpp:60 +#, c-format +msgid "" +"_n: (%n item skipped)\n" +"(%n items skipped)" +msgstr "" +"(%n elemento ignorado)\n" +"(%n elementos ignorados)" + +#: traceitemview.cpp:53 +msgid "No description available" +msgstr "Ninguna descripción disponible" + +#. i18n: file partselectionbase.ui line 16 +#: rc.cpp:324 toplevel.cpp:281 toplevel.cpp:581 +#, no-c-format +msgid "Parts Overview" +msgstr "Vista de secciones de traza" + +#: 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 "" +"

      La vista de secciones de traza

      " +"

      Una traza consiste en múltiples secciones de trazas cuando hay varios " +"archivos de datos de perfiles de un ejecución de perfilado. La vista de " +"secciones de traza anclable las muestra, ordenadas horizontalmente respecto a " +"su tiempo de ejecución; los tamaños de los rectángulos son proporcionales al " +"coste total gastado en la sección. Puede seleccionar una o varias secciones " +"para mostrar todos los costes solo de estas secciones.

      " +"

      Las secciones están a su vez subdivididas: Hay modos de división por " +"particionado y por llamado: " +"

        " +"
      • Particionado: ve la partición en grupos, para una sección de traza, de " +"acuerdo con el tipo de grupo seleccionado. Ej: Si grupos de objetos ELF están " +"seleccionados, verá rectángulos coloreados para cada objeto ELF usado " +"(biblioteca compartida o ejecutable), dimensionado respecto al coste gastado en " +"el.
      • " +"
      • Llamado: Un rectángulo muestra el coste inclusivo de la función " +"seleccionada en la sección de traza. Esto se divide en rectángulos más pequeños " +"para mostrar los costes de sus llamantes.

      " + +#: toplevel.cpp:318 +msgid "Top Cost Call Stack" +msgstr "Pila de llamadas de coste superior" + +#: 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 "" +"La pila de llamadas de coste superior " +"

      Se trata de una pila totalmente ficticia de llamadas 'más probables'. Se " +"construye comenzando con la función seleccionada actualmente y añade a los " +"llamantes/llamados con mayor coste en la parte superior y hacia abajo.

      " +"

      Las columnas de coste y llamadas muestra el coste utilizado " +"para todas las llamadas de la función de la línea superior.

      " + +#: toplevel.cpp:333 +msgid "Flat Profile" +msgstr "Perfil plano" + +#: 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 "" +"El perfil plano" +"

      El perfil plano contiene una lista de selección de funciones y grupos. La " +"lista de grupos contiene todos los grupos en los que se gastan los costes, " +"dependiendo del tipo de grupo elegido. La lista de grupos permanece oculta " +"cuando se selecciona el tipo 'Función'." +"

      " +"

      La lista de funciones contiene las funciones del grupo seleccionado (o todas " +"cuando el tipo de grupo es 'Función'), ordenadas según los costes. Las " +"funciones con costes inferiores al 1% están ocultas de forma predeterminada.

      " + +#. i18n: file dumpselectionbase.ui line 16 +#: rc.cpp:84 toplevel.cpp:357 toplevel.cpp:609 +#, no-c-format +msgid "Profile Dumps" +msgstr "Volcados de perfil" + +#: 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 "" +"Volcados de perfil " +"

      Este diálogo anclable muestra en la parte superior la lista de volcados de " +"perfiles cargables en todos los subdirectorios de: " +"

        " +"
      • el directorio de trabajo de KCachegrind, es decir, desde donde ha sido " +"iniciado, y " +"
      • el directorio de volcados de perfiles predeterminado según la " +"configuración.
      La lista está ordenada de acuerdo con la orden de destino " +"perfilada en el volcado correspondiente.

      " +"

      Al seleccionar un volcado de perfil, se muestra su información en la parte " +"inferior del diálogo anclable: " +"

        " +"
      • Las Opciones le permiten ver la orden perfilada y las opciones del " +"perfil de este volcado. Si cambia cualquier elemento se creará una nueva " +"plantilla de perfil (hasta entonces inexistente). Pulse Ejecutar perfil " +"para iniciar una ejecución de un perfil en segundo plano con esas opciones. " +"
      • Información proporciona información detallada sobre el volcado " +"actual, como el sumario de costes de eventos y las propiedades del caché " +"simulado. " +"
      • Estado está disponible únicamente cuando se ejecutan los perfiles. " +"Pulse Actualizar para ver los diferentes contadores de la ejecución, y " +"una traza de la pila de la posición actual en el programa perfilado. Compruebe " +"que la opción Cada permite a KCachegrind actualizar regularmente esta " +"información. Active la opción Sincronizar para que el diálogo anclable " +"active la función superior del volcado cargado actualmente.

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

      Make a copy of the current layout.

      " +msgstr "" +"Duplicar la actual disposición" +"

      Crea una copia de la actual disposición

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

      Delete current layout and make the previous active.

      " +msgstr "" +"Eliminar actual disposición " +"

      Elimina la actual disposición y activa la anterior

      " + +#: toplevel.cpp:470 +msgid "&Go to Next" +msgstr "&Ir a siguiente" + +#: toplevel.cpp:474 +msgid "Go to Next Layout" +msgstr "Ir a la disposición siguiente" + +#: toplevel.cpp:477 +msgid "&Go to Previous" +msgstr "&Ir a anterior" + +#: toplevel.cpp:481 +msgid "Go to Previous Layout" +msgstr "Ir a la disposición anterior" + +#: toplevel.cpp:484 +msgid "&Restore to Default" +msgstr "&Restaurar a predeterminado" + +#: toplevel.cpp:487 +msgid "Restore Layouts to Default" +msgstr "Volver a la disposición predeterminada" + +#: toplevel.cpp:490 +msgid "&Save as Default" +msgstr "&Guardar por omisión" + +#: toplevel.cpp:493 +msgid "Save Layouts as Default" +msgstr "Guardar la disposición como predeterminada" + +#: toplevel.cpp:504 +msgid "New

      Open new empty KCachegrind window.

      " +msgstr "Nuevo

      Abrir una nueva ventada de KCachegrind vacía.

      " + +#: toplevel.cpp:507 +msgid "&Add..." +msgstr "&Añadir..." + +#: toplevel.cpp:510 +msgid "" +"Add Profile Data" +"

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

      " +msgstr "" +"Añadir traza " +"

      Esto abre un archivo adicional con trazas en la ventana actual.

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

      This loads any new created parts, too.

      " +msgstr "" +"Recargar traza" +"

      También carga cualquier part de nueva creación.

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

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

      " +msgstr "" +"Exportar gráfico de llamadas" +"

      Genera un archivo de extensión .dot para las herramientas del paquete " +"GraphViz.

      " + +#: toplevel.cpp:536 +msgid "&Force Dump" +msgstr "&Forzar volcado" + +#: 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 "" +"Forzar volcado " +"

      Esto fuerza un volcado para una ejecución de perfilado en el directorio " +"actual. Esta acción está activada mientras KCachegrind busca el volcado. Si el " +"volcado acaba, automáticamente se refresca la traza actual. Si este es la del " +"Callgrind en ejecución, la nueva traza creada se carga también.

      " +"

      Forzar un volcado crea un archivo llamado 'callgrind.cmd', y se comprueba " +"cada segundo su existencia. Un Callgrind en ejecución detecta su existencia, " +"vuelca una sección de traza, y elimina 'callgrind.cmd'. KCachegrind detecta la " +"eliminación, y provoca una recarga. Si no hay un Callgrind en " +"ejecución, pulse 'Forzar volcado' de nuevo para cancelar la petición de " +"volcado. Esto elimina 'callgrind.cmd' y para de buscar un nuevo volcado.

      " +"

      Nota: una ejecución de Callgrind solo detecta la existencia de " +"'callgrind.cmd' cuando se ejecuta activamente al menos unos pocos milisegundos, " +"ej: no durmiendo. Truco: para el perfilado de un programa con GUI, " +"puede despertar Callgrind redimensinando la ventana.

      " + +#: toplevel.cpp:570 +msgid "" +"Open Profile Data" +"

      This opens a profile data file, with possible multiple parts

      " +msgstr "" +"Abrir traza " +"

      Abre una traza, con posibilidad de varias secciones

      " + +#: toplevel.cpp:586 +msgid "Show/Hide the Parts Overview Dockable" +msgstr "Mostrar/Ocultar la vista general de parts anclable" + +#: toplevel.cpp:590 +msgid "Call Stack" +msgstr "Pila de llamadas" + +#: toplevel.cpp:595 +msgid "Show/Hide the Call Stack Dockable" +msgstr "Mostrar/Ocultar la pila superior de llamadas anclable" + +#. i18n: file functionselectionbase.ui line 16 +#: rc.cpp:297 toplevel.cpp:599 +#, no-c-format +msgid "Function Profile" +msgstr "Perfil de función" + +#: toplevel.cpp:604 +msgid "Show/Hide the Function Profile Dockable" +msgstr "Mostrar/Ocultar el perfil de la función anclable" + +#: toplevel.cpp:614 +msgid "Show/Hide the Profile Dumps Dockable" +msgstr "Mostrar/Ocultar los volcados de perfil anclable" + +#: toplevel.cpp:619 +msgid "Show Relative Costs" +msgstr "Mostrar costes relativos" + +#: toplevel.cpp:626 +msgid "Show Absolute Costs" +msgstr "Mostrar costes absolutos" + +#: toplevel.cpp:629 +msgid "Show relative instead of absolute costs" +msgstr "Mostrar costes relativos en vez de absolutos" + +#: toplevel.cpp:633 +msgid "Percentage Relative to Parent" +msgstr "Porcentaje relativo al padre" + +#: toplevel.cpp:639 +msgid "Show percentage costs relative to parent" +msgstr "Mostrar costes de porcentaje relativos al padre" + +#: 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 los costes en porcentaje relativos al padre" +"

        Si esta opción se desactiva, los costes en porcentaje se muestran siempre en " +"relación al coste total de las partes del perfil que se están viendo " +"actualmente. Al activar esta opción, los costes en porcentaje de los elementos " +"de coste mostrados serán relativos al elemento de coste padre." +"

          " +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"
          Tipo de costeCoste padre
          Acumulador de funcionesTotal
          Misma funciónGrupo de funciones (*) / Total
          LlamadaAcumulador de funciones
          Línea fuenteAcumulador de funciones
          " +"

          (*) Únicamente si se activa la agrupación de funciones (p.e. grupos de " +"objetos ELF)." + +#: toplevel.cpp:658 +msgid "Do Cycle Detection" +msgstr "Realizar detección de ciclo" + +#: toplevel.cpp:664 +msgid "Skip Cycle Detection" +msgstr "Saltar detección de ciclo" + +#: 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 ciclos recursivos" +"

          Si esta opción se desactiva, el dibujo del mapa de árbol mostrará zonas " +"negras cuando se realice una llamada recursiva en vez de dibujar la recusión " +"hasta el infinito. Tenga en cuenta que el tamaño de las zonas negras " +"probablemente no será correcto, pues al estar dentro de los ciclos recursivos " +"no se podrá determinar el coste de las llamadas. Sin embargo, el error es " +"pequeño en los ciclos falsos (ver la documentación)." +"

          El manejo correcto de los ciclos consiste en detectarlos y contraer todas " +"las funciones de un ciclo dentro de una función virtual. Esto se hace cuando " +"esta opción está activado. Lamentablemente, en el caso de las aplicaciones " +"gráficas, esto llevará en ocasiones a ciclos falsos desmesurados, haciendo que " +"el análisis sea imposible. Por eso existe la posibilidad de desactivar la " +"opción." + +#: toplevel.cpp:689 toplevel.cpp:729 +msgid "Go back in function selection history" +msgstr "Retroceder en el historial de selección de funciones" + +#: toplevel.cpp:695 toplevel.cpp:741 +msgid "Go forward in function selection history" +msgstr "Avanzar en el historial de selección de funciones" + +#: 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 al último llamante seleccionado de la función actual. Si no se ha visita " +"a ningún llamante, utilizar el de coste más alto.

          " + +#: toplevel.cpp:707 +msgid "&Up" +msgstr "S&ubir" + +#: toplevel.cpp:746 toplevel.cpp:1651 +msgid "Primary Event Type" +msgstr "Tipo de evento primario" + +#: toplevel.cpp:748 +msgid "Select primary event type of costs" +msgstr "Seleccionar tipo de evento primario de costes" + +#: toplevel.cpp:758 toplevel.cpp:1654 +msgid "Secondary Event Type" +msgstr "Tipo de evento secundario" + +#: toplevel.cpp:760 +msgid "Select secondary event type for cost e.g. shown in annotations" +msgstr "" +"Seleccionar tipo de evento secundario por coste, ej. mostrar en anotaciones" + +#: functionselection.cpp:243 toplevel.cpp:768 +msgid "Grouping" +msgstr "Agrupación" + +#: toplevel.cpp:771 +msgid "Select how functions are grouped into higher level cost items" +msgstr "" +"Seleccionar cómo se agrupan las funciones en los elementos de coste de nivel " +"superior" + +#: functionselection.cpp:52 toplevel.cpp:777 +msgid "(No Grouping)" +msgstr "(Sin agrupación)" + +#: toplevel.cpp:787 +msgid "Split" +msgstr "Dividir" + +#: toplevel.cpp:791 +msgid "Show two information panels" +msgstr "Mostrar dos paneles de información" + +#: toplevel.cpp:795 +msgid "Split Horizontal" +msgstr "Dividir horizontalmente" + +#: toplevel.cpp:800 +msgid "Change Split Orientation when main window is split." +msgstr "" +"Cambiar orientación de división cuando la ventana principal esta dividida." + +#: toplevel.cpp:808 +msgid "Tip of the &Day..." +msgstr "El consejo del &día..." + +#: toplevel.cpp:809 +msgid "Show \"Tip of the Day\"" +msgstr "Mostrar \"El consejo del día\"" + +#: toplevel.cpp:1012 toplevel.cpp:1061 +msgid "" +"cachegrind.out* callgrind.out*|Callgrind Profile Data\n" +"*|All Files" +msgstr "" +"cachegrind.out* callgrind.out*|Datos de perfilado de Callgrind\n" +"*|All Files" + +#: toplevel.cpp:1014 +msgid "Select Callgrind Profile Data" +msgstr "Seleccione datos de perfilado de Callgrind (Callgrind Profile Data)" + +#: toplevel.cpp:1063 +msgid "Add Callgrind Profile Data" +msgstr "Añadir datos de perfilado de Callgrind" + +#: toplevel.cpp:1221 toplevel.cpp:1574 +msgid "(Hidden)" +msgstr "(Oculto)" + +#: toplevel.cpp:1626 +msgid "Hide" +msgstr "Ocultar" + +#: toplevel.cpp:1659 +msgid "Show Absolute Cost" +msgstr "Mostrar coste absoluto" + +#: toplevel.cpp:1662 +msgid "Show Relative Cost" +msgstr "Mostrar coste relativo" + +#: toplevel.cpp:1693 +msgid "Go Forward" +msgstr "Avanzar" + +#: toplevel.cpp:1694 +msgid "Go Up" +msgstr "Subir" + +#: toplevel.cpp:1926 +#, c-format +msgid "Layout Count: %1" +msgstr "Cuenta de distribuciones: %1" + +#: toplevel.cpp:1933 +msgid "No profile data file loaded." +msgstr "Ningun archivo de traza cargado." + +#: toplevel.cpp:1942 +msgid "Total %1 Cost: %2" +msgstr "Total %1 Coste: %2" + +#: toplevel.cpp:1954 +msgid "No event type selected" +msgstr "Ningún tipo de evento seleccionado" + +#: toplevel.cpp:2199 toplevel.cpp:2235 toplevel.cpp:2271 +msgid "(No Stack)" +msgstr "(Ninguna pila)" + +#: toplevel.cpp:2205 +msgid "(No next function)" +msgstr "(No hay siguiente función)" + +#: toplevel.cpp:2241 +msgid "(No previous function)" +msgstr "(No hay anterior función)" + +#: toplevel.cpp:2276 +msgid "(No Function Up)" +msgstr "(No hay función superior)" + +#. 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 "Coste 2" + +#: instrview.cpp:129 +msgid "Hex" +msgstr "Hex" + +#: instrview.cpp:131 tabview.cpp:313 +msgid "Assembler" +msgstr "Ensamblador" + +#: instrview.cpp:132 +msgid "Source Position" +msgstr "Posición del fuente" + +#: 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 "" +"Ensamblador anotado" +"

          La lista de ensamblador anotado muestra las instrucciones del código máquina " +"de la función activa en ese momento, junto con el coste asociado a la ejecución " +"de una instrucción. Si ésta es una llamada, se insertan en el código líneas con " +"detalles sobre la llamada activa: el coste dentro de la llamada, el número de " +"llamadas activas, y el destino de la llamada.

          " +"

          La salida del desensamblador mostrada se genera con la utilidad 'objdump' " +"del paquete 'binutils'.

          " +"

          Seleccione una linea con información de una llamada para hacer activa la " +"función destino de esta llamada.

          " + +#: 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 a '%1'" + +#: instrview.cpp:195 +#, c-format +msgid "Go to Address %1" +msgstr "Ir a la dirección %1" + +#: instrview.cpp:207 +msgid "Hex Code" +msgstr "Código hexadecimal" + +#: instrview.cpp:426 +msgid "There is no instruction info in the profile data file." +msgstr "No hay información de instrucciones en el archivo de traza." + +#: instrview.cpp:428 +msgid "For the Valgrind Calltree Skin, rerun with option" +msgstr "" +"Para utilizar el entorno de árbol de llamadas de Valgrind, vuelva a ejecutar " +"con la opción" + +#: instrview.cpp:429 +msgid " --dump-instr=yes" +msgstr " --dump-instr=yes" + +#: instrview.cpp:430 +msgid "To see (conditional) jumps, additionally specify" +msgstr "Para ver saltos (condicionales), especifique 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 "Hay un error al intentar ejecutar la orden" + +#: instrview.cpp:634 instrview.cpp:900 +msgid "Check that you have installed 'objdump'." +msgstr "Compruebe que tenga instalado 'objdump'" + +#: instrview.cpp:636 instrview.cpp:902 +msgid "This utility can be found in the 'binutils' package." +msgstr "Esta utilidad se puede encontrar en el paquete 'binutils'." + +#: instrview.cpp:739 +msgid "(No Assembler)" +msgstr "(Sin ensamblador)" + +#: 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 "" +"Hay %n línea de coste sin código de ensamblador.\n" +"Hay %n líneas de coste sin código de ensamblador." + +#: instrview.cpp:877 +msgid "This happens because the code of" +msgstr "Esto sucede porque el código de" + +#: instrview.cpp:880 +msgid "does not seem to match the profile data file." +msgstr "no parece corresponderse con el archivo de datos de perfilado." + +#: instrview.cpp:883 +msgid "Are you using an old profile data file or is the above mentioned" +msgstr "¿Está utilizando un archivo de trazas antiguo o es el mencionado " + +#: instrview.cpp:885 +msgid "ELF object from an updated installation/another machine?" +msgstr "objeto ELF de una instalación actualizada o de otra máquina?" + +#: instrview.cpp:893 +msgid "There seems to be an error trying to execute the command" +msgstr "Para que hay un error al intentar ejecutar la orden" + +#: instrview.cpp:898 +msgid "Check that the ELF object used in the command exists." +msgstr "Compruebe que exista el objeto ELF utilizado en la orden" + +#: callgraphview.cpp:306 +#, c-format +msgid "Call(s) from %1" +msgstr "Llamada(s) de %1" + +#: callgraphview.cpp:307 +#, c-format +msgid "Call(s) to %1" +msgstr "Llamada(s) a %1" + +#: callgraphview.cpp:308 +msgid "(unknown call)" +msgstr "(llamada desconocida)" + +#: 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 llamadas entorno a la función activa" +"

          Dependiendo de la configuración, esta vista muestra en gráfico de llamadas " +"del entorno de la función activa. Tenga en cuenta que el coste mostrado " +"corresponde únicamente al producido mientras la función activa estaba en " +"ejecución, es decir, el coste mostrado de main(), si es visible, debería ser el " +"mismo que el coste de la función activa, ya que esa es la parte del coste " +"inclusivo de main() mientras la función activa estaba en ejecución.

          " +"

          En el caso de los ciclos, las flechas de llamada azules indican que se trata " +"de una llamada artificial añadida para un dibujado correcto pero que nunca se " +"ha producido.

          " +"

          Si el gráfico es mayor que el área en pantalla, aparecerá un selector de " +"vista general en uno de los extremos. Hay opciones de visualización similares " +"en el mapa de árbol de llamadas; la función seleccionada aparece resaltada." +"

          " + +#: callgraphview.cpp:1789 +msgid "" +"Warning: a long lasting graph layouting is in progress.\n" +"Reduce node/edge limits for speedup.\n" +msgstr "" +"Aviso: se está generando un gráfico que puede tardar mucho tiempo.\n" +"Reduzca el número de nodos o aristas para agilizar el proceso.\n" + +#: callgraphview.cpp:1792 +msgid "" +"Layouting stopped.\n" +msgstr "" +"Generación detenida.\n" + +#: callgraphview.cpp:1794 +msgid "" +"The call graph has %1 nodes and %2 edges.\n" +msgstr "" +"El gráfico de llamadas tiene %1 nodos y %2 aristas.\n" + +#: callgraphview.cpp:1827 +msgid "No item activated for which to draw the call graph." +msgstr "" +"No se ha activado ningún elemento para el cual dibujar el gráfico de llamadas." + +#: callgraphview.cpp:1838 +msgid "No call graph can be drawn for the active item." +msgstr "" +"No se puede dibujar ningún gráfico de llamadas para el elemento activo." + +#: callgraphview.cpp:1867 +msgid "" +"No call graph is available because the following\n" +"command cannot be run:\n" +"'%1'\n" +msgstr "" +"No hay disponible ningún gráfico de llamadas\n" +"porque la siguiente orden no puede ser ejecutada:\n" +"'%1'\n" + +#: callgraphview.cpp:1870 callgraphview.cpp:2200 +msgid "Please check that 'dot' is installed (package GraphViz)." +msgstr "Compruebe que 'dot' está instalado (paquete GraphViz)" + +#: callgraphview.cpp:2199 +msgid "" +"Error running the graph layouting tool.\n" +msgstr "" +"Error al ejecutar la herramienta de disposición de gráficos.\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 "" +"No hay gráfico de llamada disponible para la función\n" +"\t'%1'\n" +"porque no tiene el costo del tipo de evento seleccionado" + +#: callgraphview.cpp:2428 +msgid "Stop Layouting" +msgstr "Detener generación" + +#: callgraphview.cpp:2436 +msgid "As PostScript" +msgstr "Como postscript" + +#: callgraphview.cpp:2437 +msgid "As Image ..." +msgstr "Como imagen..." + +#: callgraphview.cpp:2439 +msgid "Export Graph" +msgstr "Exportar gráfico" + +#: callgraphview.cpp:2444 callgraphview.cpp:2467 +msgid "Unlimited" +msgstr "Ilimitado" + +#: callgraphview.cpp:2447 callgraphview.cpp:2470 +msgid "None" +msgstr "Ninguno" + +#: 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 "Sin 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 "Igual que el nodo" + +#: callgraphview.cpp:2518 +#, c-format +msgid "50 % of Node" +msgstr "50 % del nodo" + +#: callgraphview.cpp:2519 +#, c-format +msgid "20 % of Node" +msgstr "20 % del nodo" + +#: callgraphview.cpp:2520 +#, c-format +msgid "10 % of Node" +msgstr "10 % del nodo" + +#: callgraphview.cpp:2530 +msgid "Caller Depth" +msgstr "Profundidad del llamante" + +#: callgraphview.cpp:2531 +msgid "Callee Depth" +msgstr "Profundidad del llamante" + +#: callgraphview.cpp:2532 +msgid "Min. Node Cost" +msgstr "Coste mín. del nodo" + +#: callgraphview.cpp:2533 +msgid "Min. Call Cost" +msgstr "Coste mín. de llamada" + +#: callgraphview.cpp:2535 +msgid "Arrows for Skipped Calls" +msgstr "Flechas para llamadas ignoradas" + +#: callgraphview.cpp:2537 +msgid "Inner-cycle Calls" +msgstr "Llamadas de ciclo interno" + +#: callgraphview.cpp:2539 +msgid "Cluster Groups" +msgstr "Clusterizar grupos" + +#: 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 "De arriba a abajo" + +#: callgraphview.cpp:2552 +msgid "Left to Right" +msgstr "De izquierda a derecha" + +#: callgraphview.cpp:2553 +msgid "Circular" +msgstr "Circular" + +#: callgraphview.cpp:2559 +msgid "TopLeft" +msgstr "Superior izquierda" + +#: callgraphview.cpp:2560 +msgid "TopRight" +msgstr "Superior derecha" + +#: callgraphview.cpp:2561 +msgid "BottomLeft" +msgstr "Inferior izquierda" + +#: callgraphview.cpp:2562 +msgid "BottomRight" +msgstr "Inferior derecha" + +#. 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 de pájaro" + +#: _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Pablo de Vicente" + +#: _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "p.devicente@wanadoo.es" + +#: coverageitem.cpp:65 coverageitem.cpp:205 functionitem.cpp:72 +#, c-format +msgid "" +"_n: (%n function skipped)\n" +"(%n functions skipped)" +msgstr "" +"(%n función ignorada)\n" +"(%n funciones ignoradas)" + +#: main.cpp:38 +msgid "Run under cachegrind" +msgstr "Ejecutar en cachegrind." + +#: main.cpp:39 +msgid "Show information of this trace" +msgstr "Mostrar información de esta traza" + +#: main.cpp:46 +msgid "KCachegrind" +msgstr "KCachegrind" + +#: main.cpp:48 +msgid "KDE Frontend for Cachegrind" +msgstr "Entorno de KDE para Cachegrind" + +#: main.cpp:50 +msgid "(C) 2002, 2003, 2004" +msgstr "(C) 2002, 2003, 2004" + +#: main.cpp:53 +msgid "Author/Maintainer" +msgstr "Autor/mantenedor" + +#: tabview.cpp:64 +msgid "Move to Top" +msgstr "Mover arriba" + +#: tabview.cpp:68 +msgid "Move to Right" +msgstr "Mover a la derecha" + +#: tabview.cpp:72 +msgid "Move to Bottom" +msgstr "Mover abajo" + +#: tabview.cpp:76 +msgid "Move to Bottom Left" +msgstr "Mover a la izquierda" + +#: tabview.cpp:77 tabview.cpp:94 treemap.cpp:2908 +msgid "Bottom Left" +msgstr "Inferior izquierda" + +#: tabview.cpp:79 +msgid "Move Area To" +msgstr "Mover área a" + +#: tabview.cpp:81 +msgid "Hide This Tab" +msgstr "Ocultar esta pestaña" + +#: tabview.cpp:82 +msgid "Hide Area" +msgstr "Ocultar área" + +#: tabview.cpp:95 +msgid "Show Hidden On" +msgstr "Activar mostrar oculto" + +#: tabview.cpp:242 +msgid "(No profile data file loaded)" +msgstr "(Ningún archivo de traza cargado)" + +#: tabview.cpp:281 +msgid "Types" +msgstr "Tipos" + +#: tabview.cpp:284 +msgid "Callers" +msgstr "Llamantes" + +#: tabview.cpp:287 +msgid "All Callers" +msgstr "Todos los llamantes" + +#: tabview.cpp:290 +msgid "Caller Map" +msgstr "Mapa del llamante" + +#: tabview.cpp:293 +msgid "Source" +msgstr "Fuente" + +#: tabview.cpp:297 +msgid "Parts" +msgstr "Parts" + +#: tabview.cpp:300 +msgid "Call Graph" +msgstr "Gráfico de llamadas" + +#: tabview.cpp:303 +msgid "Callees" +msgstr "Llamantes" + +#: tabview.cpp:306 +msgid "All Callees" +msgstr "Todos los llamantes" + +#: tabview.cpp:310 +msgid "Callee Map" +msgstr "Mapa de llamante" + +#: 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 "" +"Pestañas de información" +"

          Este elemento muestra información para la función seleccionada en pestañas " +"diferentes: " +"

            " +"
          • La pestaña «Costes» muestra una lista de los tipos de eventos disponibles y " +"los costes inclusivos y propios referentes a estos tipos.
          • " +"
          • La pestaña «Secciones» muestra una lista de secciones si la traza consta de " +"más de una sección (en caso contrario esta pestaña está oculta). Muestra el " +"coste de la función seleccionada gastada en las diferentes secciones junto a " +"las llamadas.
          • " +"
          • La pestaña «Lista de llamadas» muestra llamantes y llamados directos de la " +"función con más detalle.
          • " +"
          • La pestaña «Cobertura» muestra lo mismo que la pestaña «Lista de llamadas», " +"pero no solo llamantes y llamados directos, sino también los indirectos.
          • " +"
          • La pestaña «Gráfica de llamadas» muestra una visualización gráfica de las " +"llamadas hechas por esta función.
          • " +"
          • La pestaña «Fuente» muestra código fuente anotado, si está disponible y " +"existe información de depurado.
          • " +"
          • La pestaña «Ensamblador» muestra código ensamblador anotado si la " +"información de trazado a nivel de instrucción esta disponible." +"
          Para más información, vea la ayuda ¿Que es esto? " +"de la pestaña correspondiente.

          " + +#: tabview.cpp:630 +msgid "(No Data loaded)" +msgstr "(Ninguna información cargada)" + +#: tabview.cpp:631 +msgid "(No function selected)" +msgstr "(Ninguna función seleccionada)" + +#: sourceview.cpp:54 sourceview.cpp:554 +msgid "Source (unknown)" +msgstr "Fuente (desconocido)" + +#: 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 "" +"Fuente anotada" +"

          Las fuentes anotadas muestran las instrucciones del código de la función " +"seleccionada en este momento junto con el (propio) coste asociado a la " +"ejecución de esta línea de código. Si hay una llamada, se insertan algunas " +"líneas en el código con detalles acerca de la misma: el coste gastado dentro de " +"la llamada, el número de llamadas que ocurren y el destino de la llamada.

          " +"

          Seleccione una información de llamada insertada para hacer actual la función " +"destino.

          " + +#: sourceview.cpp:120 +#, c-format +msgid "Go to Line %1" +msgstr "Ir a la línea %1" + +#: sourceview.cpp:293 +msgid "(No Source)" +msgstr "(Sin fuente)" + +#: sourceview.cpp:512 +msgid "There is no cost of current selected type associated" +msgstr "No hay ningún coste del tipo seleccionado asociado" + +#: sourceview.cpp:514 +msgid "with any source line of this function in file" +msgstr "con ninguna línea del código fuente de está función en el archivo" + +#: sourceview.cpp:518 +msgid "Thus, no annotated source can be shown." +msgstr "Por lo que no se puede mostrar ninguna fuente anotada." + +#: sourceview.cpp:553 +msgid "Source ('%1')" +msgstr "Fuente ('%1')" + +#: sourceview.cpp:559 +msgid "--- Inlined from '%1' ---" +msgstr "--- Incorporada desde '%1' ---" + +#: sourceview.cpp:560 +msgid "--- Inlined from unknown source ---" +msgstr "--- Incorporada desde fuente desconocida ---" + +#: sourceview.cpp:565 +msgid "There is no source available for the following function:" +msgstr "No hay código fuente disponible para la siguiente función:" + +#: sourceview.cpp:570 +msgid "This is because no debug information is present." +msgstr "Esto es porque no se encuentra información de depuración." + +#: sourceview.cpp:572 +msgid "Recompile source and redo the profile run." +msgstr "Recompilar fuentes y rehacer la ejecución del perfil." + +#: sourceview.cpp:575 +msgid "The function is located in this ELF object:" +msgstr "La función está ubicada en el objeto ELF:" + +#: sourceview.cpp:583 +msgid "This is because its source file cannot be found:" +msgstr "Esto es porque su archivo fuente no se pudo encontrar:" + +#: sourceview.cpp:587 +msgid "Add the folder of this file to the source folder list." +msgstr "Añada la carpeta de este archivo a lista de carpetas fuentes" + +#: sourceview.cpp:589 +msgid "The list can be found in the configuration dialog." +msgstr "La lista se puede encontrar en el diálogo de configuración." + +#: partlistitem.cpp:49 +msgid " (Thread %1)" +msgstr " (Hilo %1)" + +#: partlistitem.cpp:56 +msgid "(none)" +msgstr "(ninguno)" + +#: callitem.cpp:82 partlistitem.cpp:152 +msgid "(active)" +msgstr "(activo)" + +#: functionselection.cpp:176 +#, c-format +msgid "Go to %1" +msgstr "Ir a %1" + +#: functionselection.cpp:203 +msgid "Show All Items" +msgstr "Mostrar todos los elementos" + +#: functionselection.cpp:226 +msgid "No Grouping" +msgstr "Sin agrupación" + +#: coverageview.cpp:48 coverageview.cpp:54 +msgid "Distance" +msgstr "Distancia" + +#. i18n: file dumpselectionbase.ui line 928 +#: coverageview.cpp:49 partview.cpp:49 rc.cpp:270 rc.cpp:315 +#, no-c-format +msgid "Called" +msgstr "Llamado" + +#: callview.cpp:48 coverageview.cpp:50 +msgid "Caller" +msgstr "Llamante" + +#: coverageview.cpp:55 +msgid "Calling" +msgstr "Llamando" + +#: callview.cpp:52 coverageview.cpp:56 +msgid "Callee" +msgstr "Llamante" + +#: 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 los llamantes " +"

          Esta lista muestra todas las funciones que llaman a la seleccionada " +"actualmente, bien directamente o con varias funciones de por medio en la pila. " +"El numero de funciones de por medio más uno se llama distancia " +"(ej: Para las funciones A,B,C existen llamadas de A a C cuando A llama a B y B " +"llama a C, ej: A => B => C. La distancia aquí es 2).

          " +"

          El coste absoluto mostrado es el coste gastado en la función seleccionada " +"mientras una función listada esta activa; coste relativo es el porcentaje de " +"todo coste gastado en la función seleccionada mientras la listada está activa. " +"La gráfica del coste muestra porcentaje logarítmico con un color distinto para " +"cada distancia.

          " + +#: 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 los llamados " +"

          Esta lista muestra todas las funciones llamadas por la seleccionada " +"actualmente, bien directamente o con varias funciones de por medio en la pila. " +"El numero de funciones de por medio más uno se llama distancia " +"(ej: Para las funciones A,B,C existen llamadas de A a C cuando A llama a B y B " +"llama a C, ej: A => B => C. La distancia aquí es 2).

          " +"

          El coste absoluto mostrado es el coste gastado en la función seleccionada " +"mientras la función seleccionada esta activa; coste relativo es el porcentaje " +"de todo coste gastado en la función listada mientras la seleccionada está " +"activa. La gráfica del coste muestra porcentaje logarítmico con un color " +"distinto para cada distancia.

          " + +#: configuration.cpp:63 +msgid "Instruction Fetch" +msgstr "Búsqueda de instrucción" + +#: configuration.cpp:64 +msgid "Data Read Access" +msgstr "Acceso de lectura de datos" + +#: configuration.cpp:65 +msgid "Data Write Access" +msgstr "Acceso de escritura de datos" + +#: configuration.cpp:66 +msgid "L1 Instr. Fetch Miss" +msgstr "Fallo en la búsqueda de instr. L1" + +#: configuration.cpp:67 +msgid "L1 Data Read Miss" +msgstr "Falla en la lectura de datos L1" + +#: configuration.cpp:68 +msgid "L1 Data Write Miss" +msgstr "Falla en la escritura de datos L1" + +#: configuration.cpp:69 +msgid "L2 Instr. Fetch Miss" +msgstr "Falla en la búsqueda de instr. L2" + +#: configuration.cpp:70 +msgid "L2 Data Read Miss" +msgstr "Falla en la lectura de datos L2" + +#: configuration.cpp:71 +msgid "L2 Data Write Miss" +msgstr "Falla en la escritura de datos L2" + +#: configuration.cpp:72 +msgid "Samples" +msgstr "Ejemplos" + +#: configuration.cpp:73 +msgid "System Time" +msgstr "Hora del sistema" + +#: configuration.cpp:74 +msgid "User Time" +msgstr "Hora del usuario" + +#: configuration.cpp:75 +msgid "L1 Miss Sum" +msgstr "Falla suma L1" + +#: configuration.cpp:76 +msgid "L2 Miss Sum" +msgstr "Falla suma L2" + +#: configuration.cpp:77 +msgid "Cycle Estimation" +msgstr "Estimación del ciclo" + +#. i18n: file tdecachegrindui.rc line 15 +#: rc.cpp:9 +#, no-c-format +msgid "&Layout" +msgstr "&Distribución" + +#. i18n: file tdecachegrindui.rc line 32 +#: rc.cpp:12 +#, no-c-format +msgid "Sidebars" +msgstr "Barras laterales" + +#. i18n: file tdecachegrindui.rc line 54 +#: rc.cpp:18 +#, no-c-format +msgid "State Toolbar" +msgstr "Barra de herramientas de estado" + +#. i18n: file configdlgbase.ui line 37 +#: rc.cpp:24 +#, no-c-format +msgid "General" +msgstr "General" + +#. i18n: file configdlgbase.ui line 69 +#: rc.cpp:27 +#, no-c-format +msgid "Truncated when more/longer than:" +msgstr "Truncado si es más largo que:" + +#. i18n: file configdlgbase.ui line 77 +#: rc.cpp:30 +#, no-c-format +msgid "Precision of percentage values:" +msgstr "Precisión de los valores porcentuales:" + +#. i18n: file configdlgbase.ui line 85 +#: rc.cpp:33 +#, no-c-format +msgid "Symbols in tooltips and context menus" +msgstr "Símbolos en las sugerencias y menús contextuales" + +#. 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 elementos en las listas:" + +#. i18n: file configdlgbase.ui line 162 +#: rc.cpp:39 +#, no-c-format +msgid "Cost Item Colors" +msgstr "Colores de los elementos de coste" + +#. i18n: file configdlgbase.ui line 254 +#: rc.cpp:45 +#, no-c-format +msgid "Object:" +msgstr "Objeto:" + +#. i18n: file configdlgbase.ui line 262 +#: rc.cpp:48 +#, no-c-format +msgid "Class:" +msgstr "Clase:" + +#. i18n: file configdlgbase.ui line 310 +#: rc.cpp:57 +#, no-c-format +msgid "File:" +msgstr "Archivo:" + +#. i18n: file configdlgbase.ui line 376 +#: rc.cpp:60 +#, no-c-format +msgid "Annotations" +msgstr "Anotaciones" + +#. i18n: file configdlgbase.ui line 395 +#: rc.cpp:63 +#, no-c-format +msgid "Context lines in annotations:" +msgstr "Líneas de contexto en anotaciones:" + +#. i18n: file configdlgbase.ui line 423 +#: rc.cpp:66 +#, no-c-format +msgid "Source Folders" +msgstr "Carpetas fuente" + +#. i18n: file configdlgbase.ui line 454 +#: rc.cpp:69 +#, no-c-format +msgid "Object / Related Source Base" +msgstr "Base de fuente del objeto o relacionada" + +#. i18n: file configdlgbase.ui line 483 +#: rc.cpp:72 +#, no-c-format +msgid "Add..." +msgstr "Añadir..." + +#. i18n: file dumpselectionbase.ui line 32 +#: rc.cpp:87 +#, no-c-format +msgid "Target" +msgstr "Objetivo" + +#. i18n: file dumpselectionbase.ui line 54 +#: rc.cpp:90 +#, no-c-format +msgid "Time" +msgstr "Hora" + +#. i18n: file dumpselectionbase.ui line 65 +#: rc.cpp:93 +#, no-c-format +msgid "Path" +msgstr "Ruta" + +#. i18n: file dumpselectionbase.ui line 106 +#: rc.cpp:99 +#, no-c-format +msgid "Target command:" +msgstr "Orden objetivo:" + +#. i18n: file dumpselectionbase.ui line 119 +#: rc.cpp:102 +#, no-c-format +msgid "Profiler options:" +msgstr "Opciones de perfilado:" + +#. i18n: file dumpselectionbase.ui line 125 +#: rc.cpp:105 +#, no-c-format +msgid "Option" +msgstr "Opción" + +#. 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 "Traza" + +#. 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 "Instrucciones" + +#. 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 "Caché completa" + +#. i18n: file dumpselectionbase.ui line 216 +#: rc.cpp:126 +#, no-c-format +msgid "Custom" +msgstr "Personalizado" + +#. i18n: file dumpselectionbase.ui line 231 +#: rc.cpp:129 +#, no-c-format +msgid "Collect" +msgstr "Recoger" + +#. i18n: file dumpselectionbase.ui line 244 +#: rc.cpp:132 +#, no-c-format +msgid "At Startup" +msgstr "En el inicio" + +#. i18n: file dumpselectionbase.ui line 258 +#: rc.cpp:135 +#, no-c-format +msgid "While In" +msgstr "Mientras esté en" + +#. 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 "Volcar perfilado" + +#. i18n: file dumpselectionbase.ui line 328 +#: rc.cpp:150 +#, no-c-format +msgid "Every BBs" +msgstr "Cada BBs" + +#. i18n: file dumpselectionbase.ui line 342 +#: rc.cpp:153 rc.cpp:162 +#, no-c-format +msgid "On Entering" +msgstr "Al entrar en" + +#. i18n: file dumpselectionbase.ui line 356 +#: rc.cpp:156 +#, no-c-format +msgid "On Leaving" +msgstr "Al salir de" + +#. i18n: file dumpselectionbase.ui line 371 +#: rc.cpp:159 +#, no-c-format +msgid "Zero Events" +msgstr "Cero 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 "Hilos" + +#. i18n: file dumpselectionbase.ui line 426 +#: rc.cpp:171 +#, no-c-format +msgid "Recursions" +msgstr "Recursiones" + +#. i18n: file dumpselectionbase.ui line 440 +#: rc.cpp:174 +#, no-c-format +msgid "Call Chain" +msgstr "Cadena de llamadas" + +#. i18n: file dumpselectionbase.ui line 470 +#: rc.cpp:177 +#, no-c-format +msgid "Custom profiler options:" +msgstr "Opciones personalizadas del perfilador:" + +#. i18n: file dumpselectionbase.ui line 508 +#: rc.cpp:180 +#, no-c-format +msgid "Run New Profile" +msgstr "Ejecutar nuevo perfil" + +#. i18n: file dumpselectionbase.ui line 520 +#: rc.cpp:183 +#, no-c-format +msgid "Info" +msgstr "Información" + +#. i18n: file dumpselectionbase.ui line 531 +#: rc.cpp:186 +#, no-c-format +msgid "Dump reason:" +msgstr "Razón del volcado:" + +#. i18n: file dumpselectionbase.ui line 544 +#: rc.cpp:189 +#, no-c-format +msgid "Event summary:" +msgstr "Sumario de eventos:" + +#. i18n: file dumpselectionbase.ui line 561 +#: rc.cpp:195 +#, no-c-format +msgid "Sum" +msgstr "Suma" + +#. i18n: file dumpselectionbase.ui line 579 +#: rc.cpp:198 +#, no-c-format +msgid "Miscellaneous:" +msgstr "Varios:" + +#. 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 "Actualizar" + +#. i18n: file dumpselectionbase.ui line 664 +#: rc.cpp:213 +#, no-c-format +msgid "Every [s]:" +msgstr "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 "Volcados hechos" + +#. i18n: file dumpselectionbase.ui line 713 +#: rc.cpp:225 +#, no-c-format +msgid "Is Collecting" +msgstr "Está recogiendo" + +#. i18n: file dumpselectionbase.ui line 727 +#: rc.cpp:228 +#, no-c-format +msgid "Executed" +msgstr "Ejecutado" + +#. i18n: file dumpselectionbase.ui line 740 +#: rc.cpp:231 +#, no-c-format +msgid "Basic Blocks" +msgstr "Bloques básicos" + +#. i18n: file dumpselectionbase.ui line 754 +#: callmapview.cpp:63 rc.cpp:234 rc.cpp:339 +#, no-c-format +msgid "Calls" +msgstr "Llamadas" + +#. 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 "Distinguir" + +#. i18n: file dumpselectionbase.ui line 824 +#: configdlg.cpp:58 rc.cpp:249 +#, no-c-format +msgid "ELF Objects" +msgstr "Objetos ELF" + +#. i18n: file dumpselectionbase.ui line 838 +#: rc.cpp:252 +#, no-c-format +msgid "Functions" +msgstr "Funciones" + +#. 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 "Traza de la pila:" + +#. i18n: file dumpselectionbase.ui line 898 +#: rc.cpp:261 +#, no-c-format +msgid "Sync." +msgstr "Sincronizar" + +#. i18n: file dumpselectionbase.ui line 950 +#: callmapview.cpp:61 rc.cpp:276 rc.cpp:321 +#, no-c-format +msgid "Location" +msgstr "Localización" + +#. i18n: file dumpselectionbase.ui line 976 +#: rc.cpp:279 +#, no-c-format +msgid "Start" +msgstr "Inicio" + +#. i18n: file dumpselectionbase.ui line 1001 +#: rc.cpp:282 +#, no-c-format +msgid "Zero" +msgstr "Cero" + +#. i18n: file dumpselectionbase.ui line 1009 +#: rc.cpp:285 +#, no-c-format +msgid "Dump" +msgstr "Volcado" + +#. i18n: file dumpselectionbase.ui line 1021 +#: rc.cpp:288 +#, no-c-format +msgid "Messages" +msgstr "Mensajes" + +#. i18n: file dumpselectionbase.ui line 1045 +#: rc.cpp:291 +#, no-c-format +msgid "Kill Run" +msgstr "Detener ejecución" + +#. i18n: file functionselectionbase.ui line 41 +#: rc.cpp:300 +#, no-c-format +msgid "&Search:" +msgstr "&Buscar:" + +#. 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 "(sin partes para trazar)" + +#. i18n: file stackselectionbase.ui line 16 +#: rc.cpp:330 +#, no-c-format +msgid "Stack Selection" +msgstr "Selección de pila" + +#. i18n: file stackselectionbase.ui line 42 +#: rc.cpp:336 +#, no-c-format +msgid "Cost2" +msgstr "Coste2" + +#: treemap.cpp:1281 +#, c-format +msgid "Text %1" +msgstr "Texto %1" + +#: treemap.cpp:2809 +msgid "Recursive Bisection" +msgstr "Bisección recursiva" + +#: treemap.cpp:2810 +msgid "Columns" +msgstr "Columnas" + +#: treemap.cpp:2811 +msgid "Rows" +msgstr "Filas" + +#: treemap.cpp:2812 +msgid "Always Best" +msgstr "Siempre mejor" + +#: treemap.cpp:2813 +msgid "Best" +msgstr "Mejor" + +#: treemap.cpp:2814 +msgid "Alternate (V)" +msgstr "Alternar (V)" + +#: treemap.cpp:2815 +msgid "Alternate (H)" +msgstr "Alternar (H)" + +#: treemap.cpp:2872 +msgid "Nesting" +msgstr "Anidar" + +#: treemap.cpp:2875 +msgid "Correct Borders Only" +msgstr "Sólo bordes correctos" + +#: treemap.cpp:2877 treemap.cpp:2878 treemap.cpp:2879 treemap.cpp:2880 +#, c-format +msgid "Width %1" +msgstr "Anchura %1" + +#: callmapview.cpp:321 treemap.cpp:2889 +msgid "Shading" +msgstr "Sombreado" + +#: treemap.cpp:2902 +msgid "Visible" +msgstr "Visible" + +#: treemap.cpp:2903 +msgid "Take Space From Children" +msgstr "Tomar espacio de los hijos" + +#: treemap.cpp:2905 +msgid "Top Left" +msgstr "Superior izquierda" + +#: treemap.cpp:2906 +msgid "Top Center" +msgstr "Superior centro" + +#: treemap.cpp:2907 +msgid "Top Right" +msgstr "Superior derecha" + +#: treemap.cpp:2909 +msgid "Bottom Center" +msgstr "Inferior centro" + +#: treemap.cpp:2910 +msgid "Bottom Right" +msgstr "Inferior derecha" + +#: treemap.cpp:2987 +msgid "No %1 Limit" +msgstr "Sin límite de %1" + +#: callmapview.cpp:243 treemap.cpp:3039 +msgid "No Area Limit" +msgstr "Sin límite 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 "" +"1 Píxel\n" +"%n Píxeles" + +#: callmapview.cpp:264 treemap.cpp:3071 +msgid "Double Area Limit (to %1)" +msgstr "Límite de doble área (a %1)" + +#: treemap.cpp:3073 +msgid "Halve Area Limit (to %1)" +msgstr "Limitar área a la mitad (a %1)" + +#: callmapview.cpp:187 treemap.cpp:3101 +msgid "No Depth Limit" +msgstr "Sin límite de profundidad" + +#: callmapview.cpp:198 treemap.cpp:3107 +msgid "Depth of '%1' (%2)" +msgstr "Profundidad de '%1' (%2)" + +#: treemap.cpp:3118 +#, c-format +msgid "Depth %1" +msgstr "Profundidad %1" + +#: treemap.cpp:3122 +msgid "Decrement (to %1)" +msgstr "Decrementar (a %1)" + +#: treemap.cpp:3124 +msgid "Increment (to %1)" +msgstr "Incrementar (a %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 de llamantes" +"

          Este gráfico muestra la jerarquía anidada de todos los llamantes a la " +"función activa. Cada rectángulo coloreado representa una función y su tamaño " +"trata de ser proporcional al coste producido mientras la función activa está en " +"ejecución (sin embargo hay limitaciones en los dibujos).

          " + +#: 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 de llamadas" +"

          Este gráfico muestra la jerarquía anidada de todas las llamadas producidas " +"por la función activa. Cada rectángulo coloreado representa una función y su " +"tamaño trata de ser proporcional al coste producido mientras la función activa " +"está en ejecución (sin embargo hay limitaciones en los dibujos).

          " + +#: 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 "" +"

          Las opciones sobre la apariencia se encuentran en el menú contextual. Para " +"obtener proporciones de tamaño exactas, seleccione 'Ocultar bordes " +"incorrectos'. Como este modo puede ser muy lento, quizá sea mejor que " +"limite el número máximo de dibujos anidados previamente. 'Mejor' determina la " +"dirección de división de los hijos a partir de las proporciones del padre. " +"'Siempre mejor' decide sobre el espacio restante en cada hermano. 'Ignorar " +"proporciones' toma espacio para el nombre de la función dibujándolo " +"antes que a los hijos. Tenga en cuenta que las proporciones de tamaño " +"pueden llegar a estar muy equivocadas.

          " +"

          Este es un componente gráfico de tipo TreeMap" +". Está disponible la navegación con teclado con los cursores izquierdo y " +"derecho para cambiar de hermano, y superior e inferior para ascender o " +"descender en los niveles de la jerarquía. Intro " +"activa el elemento actual.

          " + +#: callmapview.cpp:167 +msgid "Go To" +msgstr "Ir a" + +#: callmapview.cpp:184 +msgid "Stop at Depth" +msgstr "Detenerse en la profundidad" + +#: callmapview.cpp:190 +msgid "Depth 10" +msgstr "Profundidad 10" + +#: callmapview.cpp:192 +msgid "Depth 15" +msgstr "Profundidad 15" + +#: callmapview.cpp:194 +msgid "Depth 20" +msgstr "Profundidad 20" + +#: callmapview.cpp:204 +msgid "Decrement Depth (to %1)" +msgstr "Decrementar profundidad (a %1)" + +#: callmapview.cpp:205 +msgid "Increment Depth (to %1)" +msgstr "Incrementar profundidad (a %1)" + +#: callmapview.cpp:209 +msgid "Stop at Function" +msgstr "Detenerse en la función" + +#: callmapview.cpp:210 +msgid "No Function Limit" +msgstr "Sin límite de función" + +#: callmapview.cpp:240 +msgid "Stop at Area" +msgstr "Detenerse en el área" + +#: callmapview.cpp:246 +msgid "50 Pixels" +msgstr "50 Píxeles" + +#: callmapview.cpp:248 +msgid "100 Pixels" +msgstr "100 Píxeles" + +#: callmapview.cpp:250 +msgid "200 Pixels" +msgstr "200 Píxeles" + +#: callmapview.cpp:252 +msgid "500 Pixels" +msgstr "500 Píxeles" + +#: callmapview.cpp:266 +msgid "Half Area Limit (to %1)" +msgstr "Límite de media área (a %1)" + +#: callmapview.cpp:273 +msgid "Visualisation" +msgstr "Visualización" + +#: callmapview.cpp:277 +msgid "Split Direction" +msgstr "Dividir dirección" + +#: callmapview.cpp:279 +msgid "Skip Incorrect Borders" +msgstr "Ignorar bordes incorrectos" + +#: callmapview.cpp:284 +msgid "Border Width" +msgstr "Ancho del borde" + +#: callmapview.cpp:285 +msgid "Border 0" +msgstr "Borde 0" + +#: callmapview.cpp:288 +msgid "Border 1" +msgstr "Borde 1" + +#: callmapview.cpp:290 +msgid "Border 2" +msgstr "Borde 2" + +#: callmapview.cpp:292 +msgid "Border 3" +msgstr "Borde 3" + +#: callmapview.cpp:297 +msgid "Draw Symbol Names" +msgstr "Dibujar nombres de símbolos" + +#: callmapview.cpp:298 +msgid "Draw Cost" +msgstr "Dibujar coste" + +#: callmapview.cpp:299 +msgid "Draw Location" +msgstr "Dibujar ubicación" + +#: callmapview.cpp:300 +msgid "Draw Calls" +msgstr "Dibujar llamadas" + +#: callmapview.cpp:431 +msgid "Call Map: Current is '%1'" +msgstr "Mapa de llamadas: el actual es '%1'" + +#: callmapview.cpp:599 +msgid "(no function)" +msgstr "(ninguna función)" + +#: callmapview.cpp:741 callmapview.cpp:858 +msgid "(no call)" +msgstr "(ninguna llamada)" + +#: cachegrindloader.cpp:141 +msgid "Import filter for Cachegrind/Callgrind generated profile data files" +msgstr "" +"Filtro de importación para archivos de trazas generados por " +"Cachegrind/Callgrind" + +#: cachegrindloader.cpp:738 +#, c-format +msgid "Loading %1" +msgstr "Cargando %1" + +#: callview.cpp:47 callview.cpp:51 +msgid "Count" +msgstr "Cuenta" + +#: 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 de llamantes directos " +"

          Esta lista muestra todas las funciones que llaman la seleccionada " +"actualmente directamente, junto con una contador de llamadas y el coste gastado " +"en la función seleccionada actualmente mientras es llamada por la función de la " +"lista.

          " +"

          Un icono en vez del coste inclusivo especifica que esta es una llamada " +"dentro de un ciclo recursivo. Un coste inclusivo no tiene sentido aquí.

          " +"

          Seleccionar una función provoca que sea la seleccionada actualmente de este " +"panel de información. Si hay dos paneles (modo dividido), se cambia la función " +"del otro panel.

          " + +#: 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 de llamados directos " +"

          Esta lista muestra todas las funciones llamadas por la seleccionada " +"actualmente directamente, junto con una contador de llamadas y el coste gastado " +"en esta función mientras es llamada por la función seleccionada.

          " +"

          Seleccionar una función provoca que sea la seleccionada actualmente de este " +"panel de información. Si hay dos paneles (modo dividido), se cambia la función " +"del otro panel.

          " + +#: costtypeitem.cpp:56 +msgid "Unknown Type" +msgstr "Tipo desconocido" + +#: 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 "" +"

          ...que la ayuda ¿Qué es esto? contiene información\n" +"detallada de todos los elementos gráficos de KCachegrind?\n" +"Es muy recomendable leer estos textos de ayuda la primera vez que\n" +"se utiliza el programa. Para activar la ayuda ¿Qué es esto?\n" +"pulse Mayúsculas+F1 y pulse sobre el 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 "" +"

          ...que puede obtener información del perfil a nivel de instrucciones\n" +"si utiliza la opción --dump-instr=yes al ejecutar Calltree?\n" +"Utilice la Vista de ensamblador para ver las anotaciones de las instrucciones.\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 "" +"

          ...que puede utilizar las teclas Alt-Izquierda/Derecha de su teclado\n" +"para desplazarse por el historial de objetos activos?

          \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 "" +"

          ...que puede navegar en el mapa de llamantes/llamadas utilizando\n" +"los cursores del teclado? Utilice izquierda/derecha para cambiar a los\n" +"hermanos del elemento actual; utilice superior/inferior para moverse en\n" +"los niveles de la jerarquía. Para seleccionar el elemento actual pulse\n" +"Espacio y para activarlo, pulse Intro.\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 "" +"

          ...que puede navegar en la vista del gráfico de llamadas utilizando\n" +"los cursores? Utilice superior/inferior para subir y bajar en los niveles,\n" +"alternando entre llamadas y funciones. Utilice izquierda/derecha para\n" +"cambiar a los hermanos de la llamada selecciona actualmente. Para\n" +"activar el elemento actual, pulse Intro.\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 "" +"

          ...que puede localizar rápidamente una función introduciendo parte de\n" +"su nombre (no distingue mayúsculas) en la línea de edición de la barra\n" +"de herramientas y pulsando Intro?

          \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 "" +"

          ...que puede asignar colores personalizados a los objetos\n" +"ELF/clases de C++/archivos fuente para colorear los gráficos\n" +"en Preferencias->Configurar 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 "" +"

          ...que puede ver está disponible la información de depuración de una\n" +"función seleccionada mirando en la etiqueta de ubicación de la pestaña de\n" +"información o en la cabecera del lista del código fuente en la pestaña de " +"fuente?

          \n" +"

          Debe estar el nombre del archivo fuente (con extensión).\n" +"Si KCachegrind no muestra el código fuente, asegúrese de que ha\n" +"añadido el directorio del código fuente en la lista\n" +"Directorios fuente en la configuración.\n" + +#: tips.cpp:69 +msgid "" +"

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

          \n" +msgstr "" +"

          ...que puede configurar si KCachegrind debe mostrar\n" +"los contadores de eventos absolutos o relativos (porcentajes)?

          \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 "" +"

          ...que puede configurar el número máximo de elementos\n" +"de todas las listas de funciones en KCachegrind? Limitar el número\n" +"de elementos sirve para obtener una respuesta más rápida del entorno\n" +"gráfico. El último elemento de la lista muestra el número de funciones\n" +"obviadas, juntos la condición de coste de dichas funciones.

          \n" +"

          Para activar una función con costes pequeños, búsquela y\n" +"selecciónela en el perfil plano. La selección de funciones de coste\n" +"pequeño las añadirá temporalmente a la lista de perfil plano.

          \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 "" +"

          ...que la pestaña Cobertura, en contraste con la pestaña de listas de\n" +"llamadas, muestra todas las funciones que llaman a la función\n" +"seleccionada (en la parte superior) y todas a las que llama dicha función\n" +"(en la parte inferior), independientemente de cuantas funciones interpuestas\n" +"haya en la pila?

          \n" +"

          Ejemplos:

          \n" +"

          Una entrada en la lista superior para la función foo1() con un valor de 50%\n" +"con la función bar() seleccionada, significa que el 50% del coste total de la\n" +"función bar() se produjo mientras era llamada desde la función foo1().

          \n" +"

          Una entrada en la lista inferior para la función foo2() con un valor de 50%\n" +"con la función bar() seleccionada significa que el 50% del coste total de la\n" +"función bar() se produjo mientras esta llamada a foo2().

          \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 "" +"

          ...que esperar al marco de ayuda dentro de un mapa de árbol\n" +"muestra la lista de los nombres de los rectángulos anidados sobre los\n" +"que está el puntero del ratón?

          \n" +"

          Entonces es posible seleccionar los elementos de la lista pulsando\n" +"el botón derecho del ratón.

          \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 "" +"

          ...que puede contraer los contadores de coste para mostrar sólo algunas\n" +"partes de todo el trazado seleccionando esas partes en el elemento\n" +"\"Selección de traza\"?

          \n" +"

          Para generar múltiples partes en la ejecución de perfilado con\n" +"cachegrind, utilice, por ejemplo, la opción --cachedumps=xxx para obtener\n" +"partes con una longitud de xxx bloques básicos (un bloque básico es\n" +"la ejecución de sentencias de ensamblador sin ramas dentro del código\n" +"del programa.

          \n" + +#: configdlg.cpp:60 +msgid "Source Files" +msgstr "Archivos fuente" + +#: configdlg.cpp:61 +msgid "C++ Classes" +msgstr "Clases C++" + +#: configdlg.cpp:62 +msgid "Function (no Grouping)" +msgstr "Funciones (sin agrupar)" + +#: configdlg.cpp:157 configdlg.cpp:350 configdlg.cpp:371 +msgid "(always)" +msgstr "(siempre)" + +#: configdlg.cpp:210 +msgid "KCachegrind Configuration" +msgstr "Configuración de 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 "" +"El número máximo de elementos de la lista debe ser inferior a 500. Se utilizará " +"el valor anterior (%1)." + +#: configdlg.cpp:384 +msgid "Choose Source Folder" +msgstr "Elegir carpeta fuente" + +#: partgraph.cpp:167 +#, c-format +msgid "Profile Part %1" +msgstr "Perfil de Part %1" + +#: partgraph.cpp:226 +msgid "(no trace)" +msgstr "(ninguna traza)" + +#: partgraph.cpp:229 +msgid "(no part)" +msgstr "(ningún part)" + +#: partview.cpp:51 +msgid "Comment" +msgstr "Comentario" + +#: 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 secciones de traza

          " +"

          Esta lista muestra todas las secciones de traza para la traza cargada. Para " +"cada parte, se muestra el coste propio/inclusivo de la función seleccionada " +"actual; los costes en porcentaje son siempre relativos al coste total " +"de la sección (no a la traza entera como en la vista de secciones de " +"traza). También se muestran la llamadas que ocurren a/desde la función " +"seleccionada actualmente dentro de la sección de traza.

          " +"

          Al elegir una o más secciones de traza de la lista, el coste mostrado en " +"todo KCachegrind será solo de los gastados en las secciones seleccionadas. Si " +"no se lista ninguna selección, en realidad están seleccionadas " +"implícitamente.

          " +"

          Esta es una lista de múltiple selección. Puede seleccionar rangos " +"arrastrando el ratón o usando los modificadores SHIFT/CRTL. La selección o " +"deselección puede hacerse también desde la \"Vista secciones de trazas " +"anclable\". Esta también permite selección múltiple.

          " +"

          Note que la lista está oculta si solo una traza está cargada.

          " + +#: partview.cpp:106 +msgid "Select '%1'" +msgstr "Seleccionar '%1'" + +#: partview.cpp:107 +msgid "Hide '%1'" +msgstr "Ocultar '%1'" + +#: partview.cpp:111 +msgid "Hide Selected" +msgstr "Ocultar seleccionado" + +#: partview.cpp:112 +msgid "Show All" +msgstr "Mostrar todo" -- cgit v1.2.1