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-da/docs/tdesdk/kcachegrind/Makefile.am | 4 - tde-i18n-da/docs/tdesdk/kcachegrind/Makefile.in | 635 ----- .../docs/tdesdk/kcachegrind/index.cache.bz2 | Bin 15990 -> 0 bytes tde-i18n-da/docs/tdesdk/kcachegrind/index.docbook | 1022 ------- tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.am | 4 + tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.in | 635 +++++ .../docs/tdesdk/tdecachegrind/index.cache.bz2 | Bin 0 -> 15990 bytes .../docs/tdesdk/tdecachegrind/index.docbook | 1022 +++++++ tde-i18n-da/messages/tdesdk/kcachegrind.po | 2938 -------------------- tde-i18n-da/messages/tdesdk/tdecachegrind.po | 2938 ++++++++++++++++++++ 10 files changed, 4599 insertions(+), 4599 deletions(-) delete mode 100644 tde-i18n-da/docs/tdesdk/kcachegrind/Makefile.am delete mode 100644 tde-i18n-da/docs/tdesdk/kcachegrind/Makefile.in delete mode 100644 tde-i18n-da/docs/tdesdk/kcachegrind/index.cache.bz2 delete mode 100644 tde-i18n-da/docs/tdesdk/kcachegrind/index.docbook create mode 100644 tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.am create mode 100644 tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.in create mode 100644 tde-i18n-da/docs/tdesdk/tdecachegrind/index.cache.bz2 create mode 100644 tde-i18n-da/docs/tdesdk/tdecachegrind/index.docbook delete mode 100644 tde-i18n-da/messages/tdesdk/kcachegrind.po create mode 100644 tde-i18n-da/messages/tdesdk/tdecachegrind.po (limited to 'tde-i18n-da') diff --git a/tde-i18n-da/docs/tdesdk/kcachegrind/Makefile.am b/tde-i18n-da/docs/tdesdk/kcachegrind/Makefile.am deleted file mode 100644 index 29f2e0115ae..00000000000 --- a/tde-i18n-da/docs/tdesdk/kcachegrind/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -KDE_LANG = da -SUBDIRS = $(AUTODIRS) -KDE_DOCS = AUTO -KDE_MANS = AUTO diff --git a/tde-i18n-da/docs/tdesdk/kcachegrind/Makefile.in b/tde-i18n-da/docs/tdesdk/kcachegrind/Makefile.in deleted file mode 100644 index b85eb65f72b..00000000000 --- a/tde-i18n-da/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 = da -#>- 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-da/docs/tdesdk/kcachegrind/index.cache.bz2 b/tde-i18n-da/docs/tdesdk/kcachegrind/index.cache.bz2 deleted file mode 100644 index 5f0d1c8bd4c..00000000000 Binary files a/tde-i18n-da/docs/tdesdk/kcachegrind/index.cache.bz2 and /dev/null differ diff --git a/tde-i18n-da/docs/tdesdk/kcachegrind/index.docbook b/tde-i18n-da/docs/tdesdk/kcachegrind/index.docbook deleted file mode 100644 index aa8318c7ffa..00000000000 --- a/tde-i18n-da/docs/tdesdk/kcachegrind/index.docbook +++ /dev/null @@ -1,1022 +0,0 @@ - -KCachegrind'> - Cachegrind"> - Calltree"> - Callgrind"> - Valgrind"> - OProfile"> - - - - -]> - - - - - - -&tdecachegrind;-håndbogen - - -Josef Weidendorfer
Josef.Weidendorfer@gmx.de
-
-
- -&rune.laursen.role; - -
- - -2002-2004 -Josef Weidendorfer - -&FDLNotice; - -2004-07-27 -0.4.6 - - -&tdecachegrind; er et værtøj til visualisering af profileringsdata, skrevet til &kde;-miljøet. - - - -KDE -tdesdk -Cachegrind -Callgrind -Valgrind -Profilering - - -
- - - -Indledning - -&kappname; er en browser til data produceret af profileringsværktøjer. Dette kapitel forklarer hvad profilering er til for, hvordan det gøres og giver nogle eksempler på nogle profileringsværktøjer der er til rådighed. - - -Profilering - -Når du udvikler et program, er et af de sidste skridt, at gøre det så hurtigt som muligt (men stadigvæk rigtigt). Du vil ikke sløse tiden væk på at optimere funktioner som sjældent bruges. Derfor skal du vide i hvilke dele af programmet den største del af tiden bruges. - -For sekventiel kode er det ofte tilstrækkeligt at samle statistiske data om programmets karakteristika ved kørselstidspunktet, som f.eks. tiden der forbruges i funktioner og kodelinjer. Dette kaldes profilering. Programmet køres under kontrol af et profileringsværktøj, som giver en opsummering i slutningen af programkørslen. I modsætning til dette skyldes ydelsesproblemer i parallel kode, ofte at en processor venter på data fra en anden. Da denne ventetid er svær at henføre til programkode, er det bedre at generere tidsstemplede begivenhedsspor. KCachegrind kan ikke visualisere denne type af data. - -Efter en analyse af de producerede profileringsdata, er det nemt at finde problemfyldte områder og flaskehalse i koden. F.eks kan antagelser om antallet af kald kontrolleres og de identificerede kodeområder kan optimeres. Efter ændringen bør optimeringens effekt verificeres på ny, med endnu en profileringskørsel. - - - -Profileringsmetoder - -For præcist at kunne måle den forbrugte tid eller begivenheder der sker i et kodeområde, f.eks. en funktion, er det nødvendigt at indsætte yderligere målekode før og efter det givne område. Denne kode læser tiden eller en global begivenhedstæller og beregner forskelle. Derfor skal den oprindelige kode ændres før kørslen. Dette kaldes instrumentering. Instrumentering kan udføres af programmøren selv, oversætteren eller af kørselssystemet. Eftersom interessante kodeområder normalt er indlejrede påvirker selve målingen altid måleresultaterne i sig selv. Derfor skal instrumentering altid udføres selektivt og resultaterne skal fortolkes med forsigtighed. Dette gør naturligvis ydelsesanalyse vha. eksakt måling, til en meget vanskelig proces. - -Præcis måling er mulig fordi hardwaretællere (inklusive tællere der optælles én gang pr. klokpuls), som er til rådighed i moderne processorer, optælles hver gang der sker en begivenhed. Da vi gerne vil henføre begivenheder til kodeområder, ville vi uden tællerne, være nødt til at håndtere hver eneste begivenhed, ved selv at skulle optælle en tæller for kodeområdet. At gøre dette i software er naturligvis ikke muligt. Under antagelsen af at der er en ens fordeling af begivenheder i kildekoden, når man kun ser på hver n'te begivenhed i stedet for hver eneste, har vi konstrueret en målemetode som er mulig at finindstille mht. omkostninger. Dette kaldes at sample. Tidsbaseret sampling benytter en tæller til jævnligt at se på programtælleren til at lave et histogram af programkoden. Begivenhedsbaseret sampling udnytter hardwaretællere i moderne processorer og bruger en tilstand hvor en interrupt håndtering kaldes ved tællerunderløb, hvorved der genereres et histogram af den tilsvarende fordeling f begivenheder. I håndteringen gen-initialiseres begivenhedstælleren altid til samplingmetodens n. Fordelen ved sampling er at koden ikke skal ændres. Det er dog stadig et kompromis. Den ovenstående antagelse bliver mere korrekt når n er et lille tal, men jo mindre værdi af n, jo højere er omkostningerne til interrupthåndteringen. - -Endnu en målemetode er at simulere det der sker i computersystemet når noget given kildekode eksekveres, dvs. kørselsdrevet simulering. Denne simulering er naturligvis altid afledt af en mere eller mindre præcis model af maskinen. Til meget detaljerede modeller, der kommer meget tæt på virkeligheden, kan simuleringstiden i praksis være uacceptabelt stor. Fordelen er at vilkårligt kompleks målings- og simuleringskildekode kan indsættes i noget given kildekode uden at påvirke resultaterne. At gøre dette lige før kørslen (kaldes, kørselstidsinstrumentering), ved at bruge den oprindelige kørbare, er meget komfortabelt for brugeren. Metoden er brugbar når man kun simulerer dele af en maskine og med en simpel model. Desuden er resultater produceret af en simpel model meget lettere at tolke. Problemet med rigtig hardware, er at resultaterne ofte viser overlappende effekter fra forskellige dele af maskinen. - - - -Profileringsværktøjer - -Mest kendt er GCC's profileringsværktøj gprof.Du skal kompilere programmet med flaget , køre programmet for at oprette filen gmon.out, som kan oversættes til læsbar form med gprof. En ulempe er kompileringsskridtet for at forberede det kørbare program, som også skal linkes statisk. Denne metode kaldes oversættergenereret instrumentering. Den måler kaldbuer der sker blandt funktioner og i henhold til kaldtællinger i forbindelse med tidsbaseret sampling, der giver et histogram over tidsfordelingen i koden. Ved at udnytte begge typer oplysninger, er det muligt, heuristisk at beregne iberegnet tid i funktioner, dvs. tiden forbrugt i en funktion inklusive alle funktioner der kaldes fra denne funktion - -For præcis måling af begivenheder, eksisterer der biblioteker med funktioner, der er i stand til at udlæse hardwareydelsestællere. De mest kendte her er PerfCtr patchen til Linux og de arkitekturuafhængige biblioteker PAPI og PCL. Der er dog stadig behov for præcise målinger som forklaret i det ovenstående. Enten benytter man bibliotekerne for sig selv eller også benytter man automatiserede instrumenteringssystemer som ADAPTOR (til FORTRAN kildekodedokumentation) eller DynaProf (kodeindsættelse via. DynInst). - -&oprofile; er et profileringsværktøj til Linux. Det benytter sampling. - -På mange måder er brug af Cachegrind eller Callgrind, en behagelig måde at udføre profilering på. De er begge simulatorer der benytter kørselstidsinstrumenteringsskelettet &valgrind;. Fordi der ikke er noget behov for at tilgå hardwaretællere (ofte vanskeligt med dagens Linux-distributioner) og fordi de binære filer der skal profileres ikke behøver ændringer, er det et godt alternativ til andre profileringsværktøjer.Ulempen ved hastighedstab ved simulering, kan reduceres ved at udføre simuleringen, kun på de interessante steder i programmet og måske kun i et par iterationer af en løkke. Uden målings- eller simuleringsinstrumentering, ses der ved brug af Valgrind kun et hastighedstab i størrelsesordenen 3-5. Når der kun benyttes kaldgrafen og kaldtælling kan cachesimulatoren slås helt fra. - -Cachesimulering er det første skridt på vejen til ca. realtider, eftersom kørselstiden på moderne systemer, er meget følsom overfor udnyttelsen af cache, små hurtige buffere, som accelererer gentagen tilgang til samme hukommelsesceller. &cachegrind; udfører cachesimulering ved at opfange hukommelsestilgang. De data der produceres, omfatter antallet af instruktioner, adgange til instruktion/datahukommelse og ikke ramt cache i første og andetniveaus cacher og relaterer det til kildekodelinjer og funktioner i programmet som kører. Ved at kombinere disse ikke ramt-tællinger ved brug af typisk ikke ramt-latens, kan den forbrugte tid estimeres. - -Callgrind er en udvidelse af &cachegrind; der opbygger kaldgrafen for et program uden videre &ie; hvordan funktionerne kalder hinanden og hvor mange begivenheder der sker mens en funktion køres. Desuden kan de profildata der skal indsamles, blive adskilt af tråde og kaldkæde-sammenhænge. Den kan sørge for profilering af data på instruktionsniveau for at tillade annotering af disassembled kode. - - - -Visualisering - -Profileringsværktøjer producerer typisk store mængder af data. Ønsket om nemt at kunne browse op og ned i kaldgrafen, sammen med hurtig skift i sorteringen af funktioner og visning af forskellige begivenhedstyper, tilskynder til et program med en grafisk brugerflade. - -&kappname; er visualisering af profildata og opfylder dermed disse ønsker. Selvom det er oprindelig er programmeret med browsing af data fra &cachegrind; og &calltree; in mente, er der konvertere til rådighed der kan vise profildata fra andre værktøjer. I appendikset gives der en beskrivelse af Cachegrind/Callgrind filformatet. - -Udover en liste af funktioner sorteret i henhold til eksklusiv- eller inklusivomkostningsmetrik og efter valg, grupperet efter kildefil, delt bibliotek eller C++-klasser, &kappname; er der også mulighed for forskellige grafvisninger for en valgt funktion. -en kaldgrafvisning, som viser en sektion af kaldgrafen omkring den markerede funktion - -en træ-kort-visning som tillader en at visualisere indlejrede kaldrelationer til hinanden, med inklusivomkostningsmetrik til hurtig visuel detektion af problemfyldte funktioner, - -kildekode og disassemblerannotationsvisninger, der giver mulighed for at se detaljer af omkostninger relativt til kildekodelinjer og assemblerinstruktioner. - - - - - - - - -Brug af &tdecachegrind; - - -Opret data til visning - -Først vil man generere ydelsesdata, ved at måle aspekter af et programs karakteristik ved kørsel, ved at bruge et profileringsværktøj. &tdecachegrind; indeholder ikke noget profileringsværktøj, men udmærker sig når det bruges i kombination med &callgrind;. Det kan også, ved at anvende en konverter, bruges til at visualisere data produceret af &oprofile;. Selvom dette ikke er denne manuals opgave at dokumentere profilering med disse værktøjer, får næste sektion dig hurtigt i gang med en kort guide. - - -&callgrind; - -&callgrind; er til rådighed fra http://tdecachegrind.sf.net Læg mærke til at det tidligere hed &calltree; ,men dette navn var misvisende. - -Normalt bruges callgrind som præfiks på kommandolinjen når du starter dit program, således:til præfiks kommando linje til start program tommer
program a fil Indlæst&tdecachegrind;.
- -Mere avanceret brug ville være at dumpe profildata hver gang en given funktion i din applikation bliver kaldt. F.eks. for konqueror for at se profildata kun for optegning af en netside, kunne man vælge at dumpe data hver gang man vælger vis/genopfrisk. Dette svarer til at kalde KonqMainWindow::slotReload. Brug
callgrind --dump-before=KonqMainWindow::slotReload konqueror
. Dette producerer flere profildatafiler med et ekstra sekventielt nummer i slutningen af filnavnet. En fil uden et sådant nummer (som kun ender på proces-PID) produceres også. Ved at indlæse filen i &tdecachegrind;, indlæses alle de andre også og kan ses i partoversigten og partlisten.
- -
- - -&oprofile; - -&oprofile; er tilgængelig fra http://oprofile.sf.net. Følg installationsinstruktionerne på siden. Kontrollér dog først om ikke din distribution allerede har en pakke til rådighed (som SuSE). - -Profilering af hele systemet er kun tilladt for root, fordi alle handlinger på systemet kan observeres. Derfor skal man gøre det følgende som root. Først konfigureres profileringsprocessen, vha. GUI oprof_start eller med kommandolinjeværktøjet opcontrol. Standardkonfigurationen bør være timertilstand (se introduktionen). For at begynde målingen køres opcontrol -s. Dernæst køres applikationen du er interesseret i og bagefter udføres opcontrol -d. Dette udskriver måleresultaterne til filer under kataloget /var/lib/oprofile/samples. For at kunne visualisere dataene i &tdecachegrind; udføres dette i et tomt katalog:
opreport -gdf | op2callgrind
. Dette producerer en masse filer, en for hvert program der kørte på systemet. Filerne kan indlæses i &tdecachegrind; hver for sig.
- -
-
- - -Grundlæggende om brugergrænseflade - -Når &tdecachegrind; starter med en profildatafil som argument eller efter at have indlæst en med Fil/Åbn, vil du se en sidebar med funktionslisten til venstre og hovedparten, et område med grafer, til højre. Grafområdet kan indstilles arbitrært, så det kan vise flere grafer på én gang. - -Ved første opstart er dette område opdelt i en top- og en bunddel, hver med forskellige grafer der kan vælges med faneblade. Brug kontekstmenuen i fanebladene for at flytte grafvisninger og justér opdelerne mellem graferne. For hurtigskift mellem de forskellige graflayouter, bruger du Vis/Layout/Duplikér, ændr layout og skift mellem layouter med Vis/Layout/Næste (eller endnu bedre, de respektive tastaturgenveje.) - -Vigtigt for visualiseringen er den aktive begivenhedstype. For &callgrind; er den f.eks. ikke-ramt cache eller cyklusestimering. For &oprofile; er den "Timer" i den simpleste form. Du kan ændre begivenhedstypen via en kombinationsboks i værktøjslinjen eller i begivenhedstypevisningen. Når du vælger funktionen main og ser på kaldgrafen, vises der et overblik over kørselstidskarakteristikken. Der kan du se kald der sker i dit program. Læg mærke til at kaldgrafen kun viser funktioner med et højt antal begivenheder. Ved at dobbeltklikke på funktionen i grafen, ændres den så der vises kaldte funktioner omkring den markerede. - -For at udforske grænsefladen yderligere, bør du, udover at se i denne håndbog, også se nærmere på dokumentationen på hjemmesiden http://tdecachegrind.sf.net. Derudover har hver kontrol i &tdecachegrind; Hvad er dette hjælp. - - -
- - - -Grundlæggende begreber - -Dette kapitel forklarer nogle koncepter i &tdecachegrind; og introducerer udtryk brugt i grænsefladen. - - -Datamodel til profildata - - -Omkostningentiteter - -Omkostningsoptælling af begivenhedstyper (som ikke-ramt L2) skyldes omkostningsentiteter i forbindelse med kildekode eller datastrukturer i et givet program. Omkostningsentiteter kan være ikke blot simpel kode eller datapositioner, men også positionstupler. F.eks. et kald har en kilde og et mål eller en dataadresse kan have en datatype og en kodeposition hvor allokeringen er foregået. - -Omkostningsentiteterne KCachegrind kender til er givet i det følgende. Simple positioner: Instruktion. En assemblerinstruktion ved en specificeret adresse. Kildelinje i en funktioner. Alle instruktioner som oversætteren (via fejlsøgningsinformation) kortlægger til en given linje i kildekoden angivet ved kildefilnavn og linjenummer og som eksekveres i sammenhæng med en eller anden funktion. Sidstnævnte er nødvendig fordi en linje i en inlined funktion kan optræde i forbindelse med flere funktioner. Instruktioner uden kortlægning til en egentlig kildelinje, kortlægges til linje nummer 0 en en fil "???". Funktion. Alle kildelinjer i en given funktion udgør funktionen selv. En funktion er angivet ved sit navn og placering i et binært objekt, hvis et sådant er til rådighed. Sidstnævnte behøves fordi binære objekter i et enkelt program, kan indeholde funktioner med det samme navn (disse kan tilgås f.eks. med dlopen/dlsym, kørselstidslinkeren bestemmer funktioner i en given søgerækkefølge i de benyttede binære objekter). Hvis et profileringsværktøj ikke kan detektere en funktions symbolnavn, f.eks. pga. manglende fejlsøgningsinformation, bruges typisk enten adressen af den første udførte instruktion eller "???". Binært objekt. Alle funktioner hvis kode er indenfor et binært objekts rækkevidde. Enten den primære eksekverbare eller et delt bibliotek. Kildefil. Alle funktioner hvis første instruktioner kan kortlægges til en linje i den givne kildefil. Klasse. Funktioners symbolnavne er typisk ordnet hierakisk i navnerum. F.eks. C++ navnerum eller klasser i objektorienterede sprog. En klasse kan således indholde funktioner fra klassen eller indlejrede klasser. Profilpart. I en vis tidssektion af en profilering, med en given tråd-ID, proces-ID og kommandoeksekveret. Som det ses på listen, definerer én omkostningsentitet ofte en anden. Derfor er der et medregningshieraki af omkostningsentiteter, som burde være indlysende ud fra beskrivelsen herover. - -Positionstupler: Kald fra instruktionsadresse til målfunktion. Kald fra kildelinje til målfunktion. Kald fra kildefunktion til målfunktion. (U)betinget spring fra kilde til målinstruktion. (U)betingent spring fra kilde til mållinje. Spring mellem funktioner er ikke tilladte eftersom det ikke giver nogen mening i en kaldgraf. Derfor skal kontruktioner som undtagelseshåndtering og lange hop, oversættes til at poppe på kaldstakken når behovet opstår. - - - - - - -Begivenhedstyper - -Tilfældige begivenhedstyper kan angives i profildataen, ved at navngive dem. Deres omkostning relateret til omkostningsentitet er et 64 bit heltal. -Begivenhedstyper hvis omkostninger er angivet i profildatafilen, kaldes ægte begivenheder. Yderligere kan man angive formler for begivenhedstyper beregnet ud fra reelle begivenheder. De kaldes arvede begivenheder. - - - - - -Graftilstand - -Visualiseringtilstande i KCachegrind inkluderer: primær og sekundær begivenhedstype valgt til visning, funktionsgrupperingen (brugt i funktionsprofillisten og entitetsfarvelægningen), profilpartene hvis omkostninger skal inkluderes i visningen, en aktiv omkostningsentitet (f.eks. en funktion markeret i den dokbare funktionsprofil), en markeret omkostningsentitet. Denne tilstand påvirker visningerne. -Visualiseringer vises altid for en, den aktive, omkostningsentitet. Når en given visualisering ikke er giver mening for en omkostningsentitet, deaktiveres den. F.eks. når man vælger et ELF-objekt i gruppelisten ved at dobbeltklikke, giver kildekommentar til et ELF-objekt ingen mening. -F.eks. for en aktiv funktion, viser kalderlisten alle funktionerne der kaldes fra den aktive. Man kan vælge en af disse funktioner uden at gøre den aktiv. Vises kaldgrafen ved siden af, vælges den samme funktion automatisk. - - - - -Elementer i brugerfladen - - -Sidedokker -Sidedokker (dokbare) er sidevinduer som kan placeres på en hvilken som helst kant i et KCachegrindvindue. De indeholder altid en liste af omkostningsentiteter, sorteret på en eller anden måde. -Funktionsprofil. Funktionsprofilen er en liste af funktioner der viser inklusiv- og eksklusivomkostning, kaldtælling, navn og placering af funktioner. -Partoverblik -Kaldstak - - - - - -Grafområde -Visualiseringsområdet, normalt højre side i KCachegrinds hovedvindue, udgøres af en (standard) eller flere fanebladsvisninger, placeret enten horisontalt eller vertikalt. Hver fanebladsvisning har forskellige visualiseringsvisninger af kun en omkostningsentitet ad gangen. Navnet på denne entitet vises øverst i fanebladsvisningen. Er der flere fanebladsvisninger, er det kun den ene som er aktiv. Entitetsnavnet i den aktive fanebladsvisning, vises med fed skrift og afgør den aktive omkostningsentitet i KCachegrindvinduet. - - - -Områder i en fanebladsvisning -Hver fanebladsvisning kan indeholde op til fire visningsområder, top, højre, venstre og bund. Hvert område kan indeholde flere stakkede visualiseringsvisninger. Den synlige del af området vælges vha. en fanebladsbjælke. Fanebladsbjælker i toppen og i det højre område er øverst og fanebladsbjælker til venstre og i bunden er nederst. Du kan angive hvilken slags visualisering der skal være i hvilket område, ved at bruge fanebladendes kontekstmenuer. - - - -Synkroniseret graf via markeret entitet i en fanebladsvisning -Udover en aktiv entitet, har hvert faneblad en markeret entitet. Da de fleste visualiseringstyper viser flere entiteter med den aktive centreret, kan du ændre den markerede ved at navigere inde i en visualisering (ved at klikke med musen eller ved at bruge tastaturet). Typisk vises markerede entiteter i en fremhævet tilstand. Ved at ændre den markerede entitet i en af visualiseringerne i en fanebladsvisning, fremhæver alle andre visualiseringer i fanebladsvisningen den nye markerede entitet. - - - -Synkronisering mellem fanebladsvisninger -Hvis der er flere fanebladsvisninger, fører en ændring i markeringen i en fanebladsvisning til en aktiveringsændring i den næste (til højre/til bund) fanebladsvisning. Denne type sammenkædning giver mulighed for hurtig søgning i kaldgrafer. - - - -Udseende -Layoutet i alle fanebladsvisninger i et vindue, kan gemmes (se menuindgangen Vis/Layout), Efter at have duplikeret det aktuelle layout (Ctrl+Plus eller menu) og ændret størrelser eller flyttet en visualiseringsvisning til et andet område af en fanebladsvisning, kan du hurtigt skifte mellem det gamle og det nye layout via Ctrl+Venstre/Højre. Layoutet gemmes mellem KCachegrindsessioner med den samme profileringskommando. Du kan gøre det aktuelle layout til standarden for nye sessioner i KCachegrind, eller vende tilbage til standardopsætningen. - - - - -Sidedokker - - -Flad profil -Den flade profil indeholder en gruppeliste og en funktionsliste. Gruppelisten indeholder alle grupper hvori der er omkostninger, afhængigt af den valgte gruppetype. Gruppelisten er skjult når gruppering er deaktiveret. -Funktionslisten indeholder den valgte gruppes funktioner (eller alle funktioner, hvis gruppering er deaktiveret), ordnet efter en søjle, f.eks. inklusiv- eller egenomkostninger forbrugt deri. Der er et maksimalt antal funktioner der vises i liste, som kan indstilles i Opsætning/Indstil KCachegrind. - - - -Partoverblik -I en profileringskørsel kan der produceres flere profildatafiler, der kan indlæses sammen i KCachegrind. Den dokbare partoversigt viser disse, horisontalt ordnet i henhold til oprettelsestidspunktet. Rektanglernes størrelser er proportionale med omkostningerne der forbruges deri. Du kan vælge en part eller flere for at indskrænke omkostningerne vist i andre KCachegrindvisninger til kun disse part. -Part er yderligere underinddelt. Der er partitionering og en inklusivomkostninger i opdelt tilstand: -Partitionering: Du ser partitioneringen i grupper for en profildatapart, i henhold til den valgte gruppe. F.eks. hvis der vælges ELF-objektgrupper, ser du farvede rektangler for hvert brugt ELF-objekt (delt bibliotek eller eksekverbar) med en størrelse proportional med omkostningerne forbrugt deri. -Opdelt inklusivomkostning: Der vises et rektangel der afspejler inklusivomkostningen i den aktive funktion i en part. Dette er igen opdelt for at vise inklusivomkostninger for kalderen. - - - - - -Kaldstak -Dette er en fuldstændig fiktiv 'mest sandsynlig' kaldstak. Den er opbygget således at der startes ved den aktive funktion og kaldere og kaldere/kaldte med størst omkostning fra toppen og til bunden. -'Omkostning'- og 'kald'-søjlerne viser omkostningerne forbrugt i alle kald fra funktionen i linjen ovenover. - - - - -Grafer - - -Begivenhedstyper -Denne liste viser alle omkostningstyper der er til rådighed og den tilsvarende egen- og inklusivomkostning af den aktive funktion for netop denne begivenhedstype. -Ved at vælge en begivenhedstype i listen, kan du ændre omkostningstypen der vises generelt i KCachegrind, til at være den valgte. - - - -Kaldlister -Disse lister viser kald til/fra den aktive funktion. Med 'alle' kaldere/kaldte funktioner, menes hvilke der kan nås i kalder/kaldt-retningen, selv når der er andre funktioner imellem. -Kaldlistevisning inkluderer: -Direkte kaldere -Direkte kaldede -Alle kaldere -Alle kaldede - - - - - -Kort -En trævisning af den primære begivenhedstype, op eller ned i kaldhierakiet. Hvert farvet rektangel repræsenterer en funktion. Dets størrelse forsøger at være proportionelt med omkostningerne forbrugt deri , mens den aktive funktion kører (der er dog begrænsninger ved optegningen). -For kaldervisningen, viser grafen hierakiet af alle kaldere af den aktuelle aktiverede funktion. For for kaldtvisningen vises hierakiet af alle kaldte fra den aktuelle aktiverede funktion. -Indstillinger for udseende findes i kontekstmenuen. For eksakte størrelsesproportioner vælges 'Skjul ukorrekte kanter'. Da denne tilstand kan være meget ressourcekrævende, vil du sikkert begrænse det maksimale antal optegnede niveauer først. 'Bedst' fastsætter opdelingsretningen for indre funktioner ud fra de ydres synsvinkel. 'Altid bedst' beslutter sig udfra tilbageværende plads til hver funktion på samme niveau. 'Ignorér proportioner' bruger plads til at optegne funktionsnavnet før indre funktioner optegnes. Bid mærke i at størrelsesforholdene kan være særdeles fejlagtige. -Tastaturnvigering er mulig med venstre/højre piletaster, til at vandre gennem objekter på samme niveau og op/ned piletasterne for at vandre op og ned i niveau. 'Retur' aktiverer det aktuelle objekt. - - - -Kaldgraf -Denne visning viser kldgrafen omkring den aktive funktion. De viste omkostninger er omkostninger kun der forbruges mens den aktive funktion stadig kører. Dvs. omkostningerne der vises for main(), hvis den kan vises, skulle være det samme som omkostningerne for den aktive funktion, eftersom den er en del af inklusivomkostning forbrugt af main(), mens den aktive funktion kørte. -For cykler, indikerer blå pile at dette er et kunstigt kald, tilføjet for at kunne optegne korrekt, som aldrig har foregået. -Er grafen større en kontrolarealet, vises en oversigtsrude i fugleperspektiv i den ene kant. Der er lignende visualiseringsindstillinger til som for kaldtrævisningen. Den valgte funktion fremhæves. - - - -Kommentarer -Listen over assemblykode med kommentarer, viser maskinkodeinstruktionerne for den aktive funktion, sammen med egenomkostninger forbrugt når en kodeinstruktion udføres. Hvis der skete et kald, indsættes linjer med detaljer om kaldet i kildekoden: inklusivomkostning forbrugt i kaldet, antallet af kald og kaldmålet. -Vælg sådan en kaldinformationslinje for at aktivere kalddestinationen. - - - - - - - -Kommandoreference - - -&tdecachegrind;s hovedvindue - - - -<guimenu ->Fil</guimenu ->-menuen - - - - - &Ctrl;N Fil Ny -Åbner et tomt vindue i topniveau, hvori du kan indlæse profildata Dette er ikke rigtig nødvendigt eftersom Fil/Åbn giver dig et nyt vindue i topniveau, når det aktuelle allerede viser nogle data. - - - - &Ctrl;B Fil Åbn - Åbner Fil/Åbn-dialogen så der kan vælges data der skal indlæses. Vises der allerede data i det aktuelle topniveauvindue, åbnes der et nyt vinduen. Hvis du vil åbne yderligere profildata i det aktuelle vindue skal du vælge Fil/Tilføj. -Navnet på profildatafilen ender normalt på ..-, hvor og er valgfri og bruges til flere profildatafiler der hører til samme programkørsel. Ved at indlæse en fil der ender på ., indlæses også eksisterende datafiler, med andre filnavne, der hører til denne kørsel. -Eksempel: Hvis profildatafilerne cachegrind.out.123 og cachegrind.out.123.1 eksisterer, bliver den anden indlæst automatisk når man indlæser den første. - - - -Fil Tilføj - Tilføjer profildatafiler til det aktuelle vindue. På denne måde kan du tvinge flere datafiler til at indlæses i samme topniveauvindue, selvom de ikke er fra samme kørsel, som ellers angivet af profildatafilernes navngivningskonvention. Brug det f.eks. til side om side-sammenligning. - - - -Fil Genopfrisk - Genindlæs profildata. Dette er mest interessant efter endnu en profildatafil blev genereret for en i forvejen indlæst programkørsel. - - - - &Ctrl;Q Fil Afslut -Afslutter &kappname; - - - - - - - -<guimenu ->Vis</guimenu ->-menuen - - - - - Vis Primær begivenhedstype -(Gøremål) - - - -Vis Sekundær begivenhedstype -(Gøremål) - - - -Vis Gruppering -(Gøremål) - - - -Vis Udseende -(Gøremål) - - - -Vis Opdelt -(Gøremål) - - - - - - - - - - - - -Spørgsmål og svar -&reporting.bugs; &updating.documentation; - - - - -Hvad kan &tdecachegrind; bruges til? Det aner jeg nemlig ikke. - - -&tdecachegrind; er til hjælp på et sent skridt i programudvikling som kaldes profilering. Hvis du ikke udvikler programmer, har du ikke noget at bruge &tdecachegrind; til. - - - - - -Hvad er forskellen på 'inklusiv' og 'egen' ? - - -Disse er omkostningsegenskaber for funktioner angående en eller anden begivenhedstype.Da funktioner kan kalde hinanden, giver det ingen mening at skelne mellem omkostningerne for funktionen selv ('egenomkostningen') og omkostninger der inkluderer alle kaldte funktioner ('inklusivomkostning'). 'Egen' refereres somme tider som 'eksklusivomkostning'. -Så f.eks. for main(), vil du altid have en inklusivomkostning på næsten 100%, hvorimod egenomkostningen er ubetydelig lille når arbejdet udføres i en anden funktion. - - - - - -Min værktøjs-og menulinje i KCachegrind ser så spartansk ud. Er det normalt? - - -KCachegrind er tilsyneladende ikke korrekt installeret på dit system. Det anbefales at kompilere det med installationspræfikset sat til dit KDE-basiskatalog: configure --prefix=/opt/kde3; make install Hvis du vælger et andet katalog som $HOME/kde, skal du indstille miljøvariablen TDEDIR til dette katalog før du kører KCachegrind. - - - - - -Når jeg dobbeltklikker på en funktion et stykke nede i visningen af kaldgrafen, viser det for funktionen main(), den samme omkostning som den valgte funktion. Skal den ikke konstant være 100%? - - -Du har aktiveret en funktioner under main() med en omkostning mindre end main(). For enhver funktion, vises kun en del af den totalt omkostning for funktionen, nemlig den forbruges når den aktive funktion køres. Dvs. omkostningerne der vises for enhver funktion kan aldrig være højere end omkostningen af den aktive funktion. - - - - - - - - -Ordliste - -Det følgende er en blandet liste af udtryk. -Profilering: Den proces hvormed der indsamles statistisk information om et programs karakteristik ved kørselstid. -Spor: Processen i hvilken man overvåger en programkørsel og gemmer de begivenheder der sker, sorteret ud fra et tidsstempel i en uddatafil, sporet. -Spor: En sekvens af tidsstemplede begivenheder der sker under sporingen af en programkørsel. Dens størrelse er normalt lineær i forhold tilprogramkørslens udførselstid. -Profildatafil: En fil der indeholder data målt i et profileringseksperiment (eller en del af dette) eller produceret af efterbehandling af et spor. Størrelsen er typisk lineær i fht. programmets kodestørrelse. -Profileringsdata-part (forkert anvendt, også: Sporpart): Data fra en profildatafil -Profileringseksperiment: En programkørsel overvåget af et profileringsværktøj, der laver muligvis flere profildatafiler fra part og/eller tråde i kørslen. -Profilprojekt: En indstilling til profileringseksperimenter benyttet til ét program der skal profileres, måske i flere versioner. Sammenligninger af profildata giver typisk kun mening mellem profildata produceret i eksperimenter af et profilprojekt. -Omkostningsentitet: Et abstrakt begreb der relaterer til kildekode til hvilken begivenhedstælling kan henføres. Dimensioner for omkostningsentiteter er kodeplacering (f.eks. kildelinje eller funktion), dataplacering (f.eks. tilgået datatype, dataobjekt), placering af den eksekverbare (f.eks. tråde, processer) og tupler eller tripler af de førnævnte placeringer (f.eks. kald, objekttilgangen fra udtryk, data fjernet fra cache). -Begivenhedstype: En begivenhed til hvilken en omkostning kan tilskrives en omkostningsentitet. Der findes flere reelle begivenhedstyper og arvede begivenhedstyper. -Reel begivenhedstype: En begivenhedstype der kan måles med et værktøj. Det forudsætter eksistensen af en sensor til den givne begivenhedstype. -Arvet begivenhedstype: En virtuel begivenhedstype der kun er synlig i visualiseringen som er defineret ved en formel der beregnes ud fra reelle begivenhedstyper. -Begivenhedsomkostninger: Summen af begivenheder af en eller anden begivenhedstype der sker, mens eksekveringen relateres til en omkostningsentitet. Omkostningen tillægges entiteten - - - - - - - -Medvirkende og licens - -&kappname; -Tak til Julian Seward for hans udmærkede værktøj &valgrind;, og Nicholas Nethercote for tilføjelsen &cachegrind;. Uden disse programmer, villeKCachegrind ikke eksistere. Mange af ideerne til denne &GUI; kommer også fra dem. -Og tak for alle fejlrapporter og forslag fra forskellige brugere. -&underFDL; - - -Installation - - -Hvordan får jeg fat i &tdecachegrind; - -&tdecachegrind; er en del af KDE's tdesdk-pakke. For ikke-supporterede deludgivelser, &callgrind; og yderligere dokumentation, se hjemmesiden på http://tdecachegrind.sf.net. Kig der for at finde yderligere installations- og kompileringsinstruktioner. - - - -Krav - -For at bruge &tdecachegrind; med succes, har du brug for &kde; 3.x. For at oprette profildata, anbefales &cachegrind; eller ;&callgrind;. - - - -Kompilering og installation -&install.compile.documentation; - - -Indstilling - -Alle indstillingsmuligheder findes enten i indstillingsdialogen eller i de sammenhængsafhængige popopmenuer i graferne. - - - - - -&documentation.index; -
- - - - - - - - - - - - - - diff --git a/tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.am b/tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.am new file mode 100644 index 00000000000..29f2e0115ae --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.am @@ -0,0 +1,4 @@ +KDE_LANG = da +SUBDIRS = $(AUTODIRS) +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.in b/tde-i18n-da/docs/tdesdk/tdecachegrind/Makefile.in new file mode 100644 index 00000000000..b85eb65f72b --- /dev/null +++ b/tde-i18n-da/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 = da +#>- 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-da/docs/tdesdk/tdecachegrind/index.cache.bz2 b/tde-i18n-da/docs/tdesdk/tdecachegrind/index.cache.bz2 new file mode 100644 index 00000000000..5f0d1c8bd4c Binary files /dev/null and b/tde-i18n-da/docs/tdesdk/tdecachegrind/index.cache.bz2 differ diff --git a/tde-i18n-da/docs/tdesdk/tdecachegrind/index.docbook b/tde-i18n-da/docs/tdesdk/tdecachegrind/index.docbook new file mode 100644 index 00000000000..aa8318c7ffa --- /dev/null +++ b/tde-i18n-da/docs/tdesdk/tdecachegrind/index.docbook @@ -0,0 +1,1022 @@ + +KCachegrind'> + Cachegrind"> + Calltree"> + Callgrind"> + Valgrind"> + OProfile"> + + + + +]> + + + + + + +&tdecachegrind;-håndbogen + + +Josef Weidendorfer
Josef.Weidendorfer@gmx.de
+
+
+ +&rune.laursen.role; + +
+ + +2002-2004 +Josef Weidendorfer + +&FDLNotice; + +2004-07-27 +0.4.6 + + +&tdecachegrind; er et værtøj til visualisering af profileringsdata, skrevet til &kde;-miljøet. + + + +KDE +tdesdk +Cachegrind +Callgrind +Valgrind +Profilering + + +
+ + + +Indledning + +&kappname; er en browser til data produceret af profileringsværktøjer. Dette kapitel forklarer hvad profilering er til for, hvordan det gøres og giver nogle eksempler på nogle profileringsværktøjer der er til rådighed. + + +Profilering + +Når du udvikler et program, er et af de sidste skridt, at gøre det så hurtigt som muligt (men stadigvæk rigtigt). Du vil ikke sløse tiden væk på at optimere funktioner som sjældent bruges. Derfor skal du vide i hvilke dele af programmet den største del af tiden bruges. + +For sekventiel kode er det ofte tilstrækkeligt at samle statistiske data om programmets karakteristika ved kørselstidspunktet, som f.eks. tiden der forbruges i funktioner og kodelinjer. Dette kaldes profilering. Programmet køres under kontrol af et profileringsværktøj, som giver en opsummering i slutningen af programkørslen. I modsætning til dette skyldes ydelsesproblemer i parallel kode, ofte at en processor venter på data fra en anden. Da denne ventetid er svær at henføre til programkode, er det bedre at generere tidsstemplede begivenhedsspor. KCachegrind kan ikke visualisere denne type af data. + +Efter en analyse af de producerede profileringsdata, er det nemt at finde problemfyldte områder og flaskehalse i koden. F.eks kan antagelser om antallet af kald kontrolleres og de identificerede kodeområder kan optimeres. Efter ændringen bør optimeringens effekt verificeres på ny, med endnu en profileringskørsel. + + + +Profileringsmetoder + +For præcist at kunne måle den forbrugte tid eller begivenheder der sker i et kodeområde, f.eks. en funktion, er det nødvendigt at indsætte yderligere målekode før og efter det givne område. Denne kode læser tiden eller en global begivenhedstæller og beregner forskelle. Derfor skal den oprindelige kode ændres før kørslen. Dette kaldes instrumentering. Instrumentering kan udføres af programmøren selv, oversætteren eller af kørselssystemet. Eftersom interessante kodeområder normalt er indlejrede påvirker selve målingen altid måleresultaterne i sig selv. Derfor skal instrumentering altid udføres selektivt og resultaterne skal fortolkes med forsigtighed. Dette gør naturligvis ydelsesanalyse vha. eksakt måling, til en meget vanskelig proces. + +Præcis måling er mulig fordi hardwaretællere (inklusive tællere der optælles én gang pr. klokpuls), som er til rådighed i moderne processorer, optælles hver gang der sker en begivenhed. Da vi gerne vil henføre begivenheder til kodeområder, ville vi uden tællerne, være nødt til at håndtere hver eneste begivenhed, ved selv at skulle optælle en tæller for kodeområdet. At gøre dette i software er naturligvis ikke muligt. Under antagelsen af at der er en ens fordeling af begivenheder i kildekoden, når man kun ser på hver n'te begivenhed i stedet for hver eneste, har vi konstrueret en målemetode som er mulig at finindstille mht. omkostninger. Dette kaldes at sample. Tidsbaseret sampling benytter en tæller til jævnligt at se på programtælleren til at lave et histogram af programkoden. Begivenhedsbaseret sampling udnytter hardwaretællere i moderne processorer og bruger en tilstand hvor en interrupt håndtering kaldes ved tællerunderløb, hvorved der genereres et histogram af den tilsvarende fordeling f begivenheder. I håndteringen gen-initialiseres begivenhedstælleren altid til samplingmetodens n. Fordelen ved sampling er at koden ikke skal ændres. Det er dog stadig et kompromis. Den ovenstående antagelse bliver mere korrekt når n er et lille tal, men jo mindre værdi af n, jo højere er omkostningerne til interrupthåndteringen. + +Endnu en målemetode er at simulere det der sker i computersystemet når noget given kildekode eksekveres, dvs. kørselsdrevet simulering. Denne simulering er naturligvis altid afledt af en mere eller mindre præcis model af maskinen. Til meget detaljerede modeller, der kommer meget tæt på virkeligheden, kan simuleringstiden i praksis være uacceptabelt stor. Fordelen er at vilkårligt kompleks målings- og simuleringskildekode kan indsættes i noget given kildekode uden at påvirke resultaterne. At gøre dette lige før kørslen (kaldes, kørselstidsinstrumentering), ved at bruge den oprindelige kørbare, er meget komfortabelt for brugeren. Metoden er brugbar når man kun simulerer dele af en maskine og med en simpel model. Desuden er resultater produceret af en simpel model meget lettere at tolke. Problemet med rigtig hardware, er at resultaterne ofte viser overlappende effekter fra forskellige dele af maskinen. + + + +Profileringsværktøjer + +Mest kendt er GCC's profileringsværktøj gprof.Du skal kompilere programmet med flaget , køre programmet for at oprette filen gmon.out, som kan oversættes til læsbar form med gprof. En ulempe er kompileringsskridtet for at forberede det kørbare program, som også skal linkes statisk. Denne metode kaldes oversættergenereret instrumentering. Den måler kaldbuer der sker blandt funktioner og i henhold til kaldtællinger i forbindelse med tidsbaseret sampling, der giver et histogram over tidsfordelingen i koden. Ved at udnytte begge typer oplysninger, er det muligt, heuristisk at beregne iberegnet tid i funktioner, dvs. tiden forbrugt i en funktion inklusive alle funktioner der kaldes fra denne funktion + +For præcis måling af begivenheder, eksisterer der biblioteker med funktioner, der er i stand til at udlæse hardwareydelsestællere. De mest kendte her er PerfCtr patchen til Linux og de arkitekturuafhængige biblioteker PAPI og PCL. Der er dog stadig behov for præcise målinger som forklaret i det ovenstående. Enten benytter man bibliotekerne for sig selv eller også benytter man automatiserede instrumenteringssystemer som ADAPTOR (til FORTRAN kildekodedokumentation) eller DynaProf (kodeindsættelse via. DynInst). + +&oprofile; er et profileringsværktøj til Linux. Det benytter sampling. + +På mange måder er brug af Cachegrind eller Callgrind, en behagelig måde at udføre profilering på. De er begge simulatorer der benytter kørselstidsinstrumenteringsskelettet &valgrind;. Fordi der ikke er noget behov for at tilgå hardwaretællere (ofte vanskeligt med dagens Linux-distributioner) og fordi de binære filer der skal profileres ikke behøver ændringer, er det et godt alternativ til andre profileringsværktøjer.Ulempen ved hastighedstab ved simulering, kan reduceres ved at udføre simuleringen, kun på de interessante steder i programmet og måske kun i et par iterationer af en løkke. Uden målings- eller simuleringsinstrumentering, ses der ved brug af Valgrind kun et hastighedstab i størrelsesordenen 3-5. Når der kun benyttes kaldgrafen og kaldtælling kan cachesimulatoren slås helt fra. + +Cachesimulering er det første skridt på vejen til ca. realtider, eftersom kørselstiden på moderne systemer, er meget følsom overfor udnyttelsen af cache, små hurtige buffere, som accelererer gentagen tilgang til samme hukommelsesceller. &cachegrind; udfører cachesimulering ved at opfange hukommelsestilgang. De data der produceres, omfatter antallet af instruktioner, adgange til instruktion/datahukommelse og ikke ramt cache i første og andetniveaus cacher og relaterer det til kildekodelinjer og funktioner i programmet som kører. Ved at kombinere disse ikke ramt-tællinger ved brug af typisk ikke ramt-latens, kan den forbrugte tid estimeres. + +Callgrind er en udvidelse af &cachegrind; der opbygger kaldgrafen for et program uden videre &ie; hvordan funktionerne kalder hinanden og hvor mange begivenheder der sker mens en funktion køres. Desuden kan de profildata der skal indsamles, blive adskilt af tråde og kaldkæde-sammenhænge. Den kan sørge for profilering af data på instruktionsniveau for at tillade annotering af disassembled kode. + + + +Visualisering + +Profileringsværktøjer producerer typisk store mængder af data. Ønsket om nemt at kunne browse op og ned i kaldgrafen, sammen med hurtig skift i sorteringen af funktioner og visning af forskellige begivenhedstyper, tilskynder til et program med en grafisk brugerflade. + +&kappname; er visualisering af profildata og opfylder dermed disse ønsker. Selvom det er oprindelig er programmeret med browsing af data fra &cachegrind; og &calltree; in mente, er der konvertere til rådighed der kan vise profildata fra andre værktøjer. I appendikset gives der en beskrivelse af Cachegrind/Callgrind filformatet. + +Udover en liste af funktioner sorteret i henhold til eksklusiv- eller inklusivomkostningsmetrik og efter valg, grupperet efter kildefil, delt bibliotek eller C++-klasser, &kappname; er der også mulighed for forskellige grafvisninger for en valgt funktion. +en kaldgrafvisning, som viser en sektion af kaldgrafen omkring den markerede funktion + +en træ-kort-visning som tillader en at visualisere indlejrede kaldrelationer til hinanden, med inklusivomkostningsmetrik til hurtig visuel detektion af problemfyldte funktioner, + +kildekode og disassemblerannotationsvisninger, der giver mulighed for at se detaljer af omkostninger relativt til kildekodelinjer og assemblerinstruktioner. + + + + + + + + +Brug af &tdecachegrind; + + +Opret data til visning + +Først vil man generere ydelsesdata, ved at måle aspekter af et programs karakteristik ved kørsel, ved at bruge et profileringsværktøj. &tdecachegrind; indeholder ikke noget profileringsværktøj, men udmærker sig når det bruges i kombination med &callgrind;. Det kan også, ved at anvende en konverter, bruges til at visualisere data produceret af &oprofile;. Selvom dette ikke er denne manuals opgave at dokumentere profilering med disse værktøjer, får næste sektion dig hurtigt i gang med en kort guide. + + +&callgrind; + +&callgrind; er til rådighed fra http://tdecachegrind.sf.net Læg mærke til at det tidligere hed &calltree; ,men dette navn var misvisende. + +Normalt bruges callgrind som præfiks på kommandolinjen når du starter dit program, således:til præfiks kommando linje til start program tommer
program a fil Indlæst&tdecachegrind;.
+ +Mere avanceret brug ville være at dumpe profildata hver gang en given funktion i din applikation bliver kaldt. F.eks. for konqueror for at se profildata kun for optegning af en netside, kunne man vælge at dumpe data hver gang man vælger vis/genopfrisk. Dette svarer til at kalde KonqMainWindow::slotReload. Brug
callgrind --dump-before=KonqMainWindow::slotReload konqueror
. Dette producerer flere profildatafiler med et ekstra sekventielt nummer i slutningen af filnavnet. En fil uden et sådant nummer (som kun ender på proces-PID) produceres også. Ved at indlæse filen i &tdecachegrind;, indlæses alle de andre også og kan ses i partoversigten og partlisten.
+ +
+ + +&oprofile; + +&oprofile; er tilgængelig fra http://oprofile.sf.net. Følg installationsinstruktionerne på siden. Kontrollér dog først om ikke din distribution allerede har en pakke til rådighed (som SuSE). + +Profilering af hele systemet er kun tilladt for root, fordi alle handlinger på systemet kan observeres. Derfor skal man gøre det følgende som root. Først konfigureres profileringsprocessen, vha. GUI oprof_start eller med kommandolinjeværktøjet opcontrol. Standardkonfigurationen bør være timertilstand (se introduktionen). For at begynde målingen køres opcontrol -s. Dernæst køres applikationen du er interesseret i og bagefter udføres opcontrol -d. Dette udskriver måleresultaterne til filer under kataloget /var/lib/oprofile/samples. For at kunne visualisere dataene i &tdecachegrind; udføres dette i et tomt katalog:
opreport -gdf | op2callgrind
. Dette producerer en masse filer, en for hvert program der kørte på systemet. Filerne kan indlæses i &tdecachegrind; hver for sig.
+ +
+
+ + +Grundlæggende om brugergrænseflade + +Når &tdecachegrind; starter med en profildatafil som argument eller efter at have indlæst en med Fil/Åbn, vil du se en sidebar med funktionslisten til venstre og hovedparten, et område med grafer, til højre. Grafområdet kan indstilles arbitrært, så det kan vise flere grafer på én gang. + +Ved første opstart er dette område opdelt i en top- og en bunddel, hver med forskellige grafer der kan vælges med faneblade. Brug kontekstmenuen i fanebladene for at flytte grafvisninger og justér opdelerne mellem graferne. For hurtigskift mellem de forskellige graflayouter, bruger du Vis/Layout/Duplikér, ændr layout og skift mellem layouter med Vis/Layout/Næste (eller endnu bedre, de respektive tastaturgenveje.) + +Vigtigt for visualiseringen er den aktive begivenhedstype. For &callgrind; er den f.eks. ikke-ramt cache eller cyklusestimering. For &oprofile; er den "Timer" i den simpleste form. Du kan ændre begivenhedstypen via en kombinationsboks i værktøjslinjen eller i begivenhedstypevisningen. Når du vælger funktionen main og ser på kaldgrafen, vises der et overblik over kørselstidskarakteristikken. Der kan du se kald der sker i dit program. Læg mærke til at kaldgrafen kun viser funktioner med et højt antal begivenheder. Ved at dobbeltklikke på funktionen i grafen, ændres den så der vises kaldte funktioner omkring den markerede. + +For at udforske grænsefladen yderligere, bør du, udover at se i denne håndbog, også se nærmere på dokumentationen på hjemmesiden http://tdecachegrind.sf.net. Derudover har hver kontrol i &tdecachegrind; Hvad er dette hjælp. + + +
+ + + +Grundlæggende begreber + +Dette kapitel forklarer nogle koncepter i &tdecachegrind; og introducerer udtryk brugt i grænsefladen. + + +Datamodel til profildata + + +Omkostningentiteter + +Omkostningsoptælling af begivenhedstyper (som ikke-ramt L2) skyldes omkostningsentiteter i forbindelse med kildekode eller datastrukturer i et givet program. Omkostningsentiteter kan være ikke blot simpel kode eller datapositioner, men også positionstupler. F.eks. et kald har en kilde og et mål eller en dataadresse kan have en datatype og en kodeposition hvor allokeringen er foregået. + +Omkostningsentiteterne KCachegrind kender til er givet i det følgende. Simple positioner: Instruktion. En assemblerinstruktion ved en specificeret adresse. Kildelinje i en funktioner. Alle instruktioner som oversætteren (via fejlsøgningsinformation) kortlægger til en given linje i kildekoden angivet ved kildefilnavn og linjenummer og som eksekveres i sammenhæng med en eller anden funktion. Sidstnævnte er nødvendig fordi en linje i en inlined funktion kan optræde i forbindelse med flere funktioner. Instruktioner uden kortlægning til en egentlig kildelinje, kortlægges til linje nummer 0 en en fil "???". Funktion. Alle kildelinjer i en given funktion udgør funktionen selv. En funktion er angivet ved sit navn og placering i et binært objekt, hvis et sådant er til rådighed. Sidstnævnte behøves fordi binære objekter i et enkelt program, kan indeholde funktioner med det samme navn (disse kan tilgås f.eks. med dlopen/dlsym, kørselstidslinkeren bestemmer funktioner i en given søgerækkefølge i de benyttede binære objekter). Hvis et profileringsværktøj ikke kan detektere en funktions symbolnavn, f.eks. pga. manglende fejlsøgningsinformation, bruges typisk enten adressen af den første udførte instruktion eller "???". Binært objekt. Alle funktioner hvis kode er indenfor et binært objekts rækkevidde. Enten den primære eksekverbare eller et delt bibliotek. Kildefil. Alle funktioner hvis første instruktioner kan kortlægges til en linje i den givne kildefil. Klasse. Funktioners symbolnavne er typisk ordnet hierakisk i navnerum. F.eks. C++ navnerum eller klasser i objektorienterede sprog. En klasse kan således indholde funktioner fra klassen eller indlejrede klasser. Profilpart. I en vis tidssektion af en profilering, med en given tråd-ID, proces-ID og kommandoeksekveret. Som det ses på listen, definerer én omkostningsentitet ofte en anden. Derfor er der et medregningshieraki af omkostningsentiteter, som burde være indlysende ud fra beskrivelsen herover. + +Positionstupler: Kald fra instruktionsadresse til målfunktion. Kald fra kildelinje til målfunktion. Kald fra kildefunktion til målfunktion. (U)betinget spring fra kilde til målinstruktion. (U)betingent spring fra kilde til mållinje. Spring mellem funktioner er ikke tilladte eftersom det ikke giver nogen mening i en kaldgraf. Derfor skal kontruktioner som undtagelseshåndtering og lange hop, oversættes til at poppe på kaldstakken når behovet opstår. + + + + + + +Begivenhedstyper + +Tilfældige begivenhedstyper kan angives i profildataen, ved at navngive dem. Deres omkostning relateret til omkostningsentitet er et 64 bit heltal. +Begivenhedstyper hvis omkostninger er angivet i profildatafilen, kaldes ægte begivenheder. Yderligere kan man angive formler for begivenhedstyper beregnet ud fra reelle begivenheder. De kaldes arvede begivenheder. + + + + + +Graftilstand + +Visualiseringtilstande i KCachegrind inkluderer: primær og sekundær begivenhedstype valgt til visning, funktionsgrupperingen (brugt i funktionsprofillisten og entitetsfarvelægningen), profilpartene hvis omkostninger skal inkluderes i visningen, en aktiv omkostningsentitet (f.eks. en funktion markeret i den dokbare funktionsprofil), en markeret omkostningsentitet. Denne tilstand påvirker visningerne. +Visualiseringer vises altid for en, den aktive, omkostningsentitet. Når en given visualisering ikke er giver mening for en omkostningsentitet, deaktiveres den. F.eks. når man vælger et ELF-objekt i gruppelisten ved at dobbeltklikke, giver kildekommentar til et ELF-objekt ingen mening. +F.eks. for en aktiv funktion, viser kalderlisten alle funktionerne der kaldes fra den aktive. Man kan vælge en af disse funktioner uden at gøre den aktiv. Vises kaldgrafen ved siden af, vælges den samme funktion automatisk. + + + + +Elementer i brugerfladen + + +Sidedokker +Sidedokker (dokbare) er sidevinduer som kan placeres på en hvilken som helst kant i et KCachegrindvindue. De indeholder altid en liste af omkostningsentiteter, sorteret på en eller anden måde. +Funktionsprofil. Funktionsprofilen er en liste af funktioner der viser inklusiv- og eksklusivomkostning, kaldtælling, navn og placering af funktioner. +Partoverblik +Kaldstak + + + + + +Grafområde +Visualiseringsområdet, normalt højre side i KCachegrinds hovedvindue, udgøres af en (standard) eller flere fanebladsvisninger, placeret enten horisontalt eller vertikalt. Hver fanebladsvisning har forskellige visualiseringsvisninger af kun en omkostningsentitet ad gangen. Navnet på denne entitet vises øverst i fanebladsvisningen. Er der flere fanebladsvisninger, er det kun den ene som er aktiv. Entitetsnavnet i den aktive fanebladsvisning, vises med fed skrift og afgør den aktive omkostningsentitet i KCachegrindvinduet. + + + +Områder i en fanebladsvisning +Hver fanebladsvisning kan indeholde op til fire visningsområder, top, højre, venstre og bund. Hvert område kan indeholde flere stakkede visualiseringsvisninger. Den synlige del af området vælges vha. en fanebladsbjælke. Fanebladsbjælker i toppen og i det højre område er øverst og fanebladsbjælker til venstre og i bunden er nederst. Du kan angive hvilken slags visualisering der skal være i hvilket område, ved at bruge fanebladendes kontekstmenuer. + + + +Synkroniseret graf via markeret entitet i en fanebladsvisning +Udover en aktiv entitet, har hvert faneblad en markeret entitet. Da de fleste visualiseringstyper viser flere entiteter med den aktive centreret, kan du ændre den markerede ved at navigere inde i en visualisering (ved at klikke med musen eller ved at bruge tastaturet). Typisk vises markerede entiteter i en fremhævet tilstand. Ved at ændre den markerede entitet i en af visualiseringerne i en fanebladsvisning, fremhæver alle andre visualiseringer i fanebladsvisningen den nye markerede entitet. + + + +Synkronisering mellem fanebladsvisninger +Hvis der er flere fanebladsvisninger, fører en ændring i markeringen i en fanebladsvisning til en aktiveringsændring i den næste (til højre/til bund) fanebladsvisning. Denne type sammenkædning giver mulighed for hurtig søgning i kaldgrafer. + + + +Udseende +Layoutet i alle fanebladsvisninger i et vindue, kan gemmes (se menuindgangen Vis/Layout), Efter at have duplikeret det aktuelle layout (Ctrl+Plus eller menu) og ændret størrelser eller flyttet en visualiseringsvisning til et andet område af en fanebladsvisning, kan du hurtigt skifte mellem det gamle og det nye layout via Ctrl+Venstre/Højre. Layoutet gemmes mellem KCachegrindsessioner med den samme profileringskommando. Du kan gøre det aktuelle layout til standarden for nye sessioner i KCachegrind, eller vende tilbage til standardopsætningen. + + + + +Sidedokker + + +Flad profil +Den flade profil indeholder en gruppeliste og en funktionsliste. Gruppelisten indeholder alle grupper hvori der er omkostninger, afhængigt af den valgte gruppetype. Gruppelisten er skjult når gruppering er deaktiveret. +Funktionslisten indeholder den valgte gruppes funktioner (eller alle funktioner, hvis gruppering er deaktiveret), ordnet efter en søjle, f.eks. inklusiv- eller egenomkostninger forbrugt deri. Der er et maksimalt antal funktioner der vises i liste, som kan indstilles i Opsætning/Indstil KCachegrind. + + + +Partoverblik +I en profileringskørsel kan der produceres flere profildatafiler, der kan indlæses sammen i KCachegrind. Den dokbare partoversigt viser disse, horisontalt ordnet i henhold til oprettelsestidspunktet. Rektanglernes størrelser er proportionale med omkostningerne der forbruges deri. Du kan vælge en part eller flere for at indskrænke omkostningerne vist i andre KCachegrindvisninger til kun disse part. +Part er yderligere underinddelt. Der er partitionering og en inklusivomkostninger i opdelt tilstand: +Partitionering: Du ser partitioneringen i grupper for en profildatapart, i henhold til den valgte gruppe. F.eks. hvis der vælges ELF-objektgrupper, ser du farvede rektangler for hvert brugt ELF-objekt (delt bibliotek eller eksekverbar) med en størrelse proportional med omkostningerne forbrugt deri. +Opdelt inklusivomkostning: Der vises et rektangel der afspejler inklusivomkostningen i den aktive funktion i en part. Dette er igen opdelt for at vise inklusivomkostninger for kalderen. + + + + + +Kaldstak +Dette er en fuldstændig fiktiv 'mest sandsynlig' kaldstak. Den er opbygget således at der startes ved den aktive funktion og kaldere og kaldere/kaldte med størst omkostning fra toppen og til bunden. +'Omkostning'- og 'kald'-søjlerne viser omkostningerne forbrugt i alle kald fra funktionen i linjen ovenover. + + + + +Grafer + + +Begivenhedstyper +Denne liste viser alle omkostningstyper der er til rådighed og den tilsvarende egen- og inklusivomkostning af den aktive funktion for netop denne begivenhedstype. +Ved at vælge en begivenhedstype i listen, kan du ændre omkostningstypen der vises generelt i KCachegrind, til at være den valgte. + + + +Kaldlister +Disse lister viser kald til/fra den aktive funktion. Med 'alle' kaldere/kaldte funktioner, menes hvilke der kan nås i kalder/kaldt-retningen, selv når der er andre funktioner imellem. +Kaldlistevisning inkluderer: +Direkte kaldere +Direkte kaldede +Alle kaldere +Alle kaldede + + + + + +Kort +En trævisning af den primære begivenhedstype, op eller ned i kaldhierakiet. Hvert farvet rektangel repræsenterer en funktion. Dets størrelse forsøger at være proportionelt med omkostningerne forbrugt deri , mens den aktive funktion kører (der er dog begrænsninger ved optegningen). +For kaldervisningen, viser grafen hierakiet af alle kaldere af den aktuelle aktiverede funktion. For for kaldtvisningen vises hierakiet af alle kaldte fra den aktuelle aktiverede funktion. +Indstillinger for udseende findes i kontekstmenuen. For eksakte størrelsesproportioner vælges 'Skjul ukorrekte kanter'. Da denne tilstand kan være meget ressourcekrævende, vil du sikkert begrænse det maksimale antal optegnede niveauer først. 'Bedst' fastsætter opdelingsretningen for indre funktioner ud fra de ydres synsvinkel. 'Altid bedst' beslutter sig udfra tilbageværende plads til hver funktion på samme niveau. 'Ignorér proportioner' bruger plads til at optegne funktionsnavnet før indre funktioner optegnes. Bid mærke i at størrelsesforholdene kan være særdeles fejlagtige. +Tastaturnvigering er mulig med venstre/højre piletaster, til at vandre gennem objekter på samme niveau og op/ned piletasterne for at vandre op og ned i niveau. 'Retur' aktiverer det aktuelle objekt. + + + +Kaldgraf +Denne visning viser kldgrafen omkring den aktive funktion. De viste omkostninger er omkostninger kun der forbruges mens den aktive funktion stadig kører. Dvs. omkostningerne der vises for main(), hvis den kan vises, skulle være det samme som omkostningerne for den aktive funktion, eftersom den er en del af inklusivomkostning forbrugt af main(), mens den aktive funktion kørte. +For cykler, indikerer blå pile at dette er et kunstigt kald, tilføjet for at kunne optegne korrekt, som aldrig har foregået. +Er grafen større en kontrolarealet, vises en oversigtsrude i fugleperspektiv i den ene kant. Der er lignende visualiseringsindstillinger til som for kaldtrævisningen. Den valgte funktion fremhæves. + + + +Kommentarer +Listen over assemblykode med kommentarer, viser maskinkodeinstruktionerne for den aktive funktion, sammen med egenomkostninger forbrugt når en kodeinstruktion udføres. Hvis der skete et kald, indsættes linjer med detaljer om kaldet i kildekoden: inklusivomkostning forbrugt i kaldet, antallet af kald og kaldmålet. +Vælg sådan en kaldinformationslinje for at aktivere kalddestinationen. + + + + + + + +Kommandoreference + + +&tdecachegrind;s hovedvindue + + + +<guimenu +>Fil</guimenu +>-menuen + + + + + &Ctrl;N Fil Ny +Åbner et tomt vindue i topniveau, hvori du kan indlæse profildata Dette er ikke rigtig nødvendigt eftersom Fil/Åbn giver dig et nyt vindue i topniveau, når det aktuelle allerede viser nogle data. + + + + &Ctrl;B Fil Åbn + Åbner Fil/Åbn-dialogen så der kan vælges data der skal indlæses. Vises der allerede data i det aktuelle topniveauvindue, åbnes der et nyt vinduen. Hvis du vil åbne yderligere profildata i det aktuelle vindue skal du vælge Fil/Tilføj. +Navnet på profildatafilen ender normalt på ..-, hvor og er valgfri og bruges til flere profildatafiler der hører til samme programkørsel. Ved at indlæse en fil der ender på ., indlæses også eksisterende datafiler, med andre filnavne, der hører til denne kørsel. +Eksempel: Hvis profildatafilerne cachegrind.out.123 og cachegrind.out.123.1 eksisterer, bliver den anden indlæst automatisk når man indlæser den første. + + + +Fil Tilføj + Tilføjer profildatafiler til det aktuelle vindue. På denne måde kan du tvinge flere datafiler til at indlæses i samme topniveauvindue, selvom de ikke er fra samme kørsel, som ellers angivet af profildatafilernes navngivningskonvention. Brug det f.eks. til side om side-sammenligning. + + + +Fil Genopfrisk + Genindlæs profildata. Dette er mest interessant efter endnu en profildatafil blev genereret for en i forvejen indlæst programkørsel. + + + + &Ctrl;Q Fil Afslut +Afslutter &kappname; + + + + + + + +<guimenu +>Vis</guimenu +>-menuen + + + + + Vis Primær begivenhedstype +(Gøremål) + + + +Vis Sekundær begivenhedstype +(Gøremål) + + + +Vis Gruppering +(Gøremål) + + + +Vis Udseende +(Gøremål) + + + +Vis Opdelt +(Gøremål) + + + + + + + + + + + + +Spørgsmål og svar +&reporting.bugs; &updating.documentation; + + + + +Hvad kan &tdecachegrind; bruges til? Det aner jeg nemlig ikke. + + +&tdecachegrind; er til hjælp på et sent skridt i programudvikling som kaldes profilering. Hvis du ikke udvikler programmer, har du ikke noget at bruge &tdecachegrind; til. + + + + + +Hvad er forskellen på 'inklusiv' og 'egen' ? + + +Disse er omkostningsegenskaber for funktioner angående en eller anden begivenhedstype.Da funktioner kan kalde hinanden, giver det ingen mening at skelne mellem omkostningerne for funktionen selv ('egenomkostningen') og omkostninger der inkluderer alle kaldte funktioner ('inklusivomkostning'). 'Egen' refereres somme tider som 'eksklusivomkostning'. +Så f.eks. for main(), vil du altid have en inklusivomkostning på næsten 100%, hvorimod egenomkostningen er ubetydelig lille når arbejdet udføres i en anden funktion. + + + + + +Min værktøjs-og menulinje i KCachegrind ser så spartansk ud. Er det normalt? + + +KCachegrind er tilsyneladende ikke korrekt installeret på dit system. Det anbefales at kompilere det med installationspræfikset sat til dit KDE-basiskatalog: configure --prefix=/opt/kde3; make install Hvis du vælger et andet katalog som $HOME/kde, skal du indstille miljøvariablen TDEDIR til dette katalog før du kører KCachegrind. + + + + + +Når jeg dobbeltklikker på en funktion et stykke nede i visningen af kaldgrafen, viser det for funktionen main(), den samme omkostning som den valgte funktion. Skal den ikke konstant være 100%? + + +Du har aktiveret en funktioner under main() med en omkostning mindre end main(). For enhver funktion, vises kun en del af den totalt omkostning for funktionen, nemlig den forbruges når den aktive funktion køres. Dvs. omkostningerne der vises for enhver funktion kan aldrig være højere end omkostningen af den aktive funktion. + + + + + + + + +Ordliste + +Det følgende er en blandet liste af udtryk. +Profilering: Den proces hvormed der indsamles statistisk information om et programs karakteristik ved kørselstid. +Spor: Processen i hvilken man overvåger en programkørsel og gemmer de begivenheder der sker, sorteret ud fra et tidsstempel i en uddatafil, sporet. +Spor: En sekvens af tidsstemplede begivenheder der sker under sporingen af en programkørsel. Dens størrelse er normalt lineær i forhold tilprogramkørslens udførselstid. +Profildatafil: En fil der indeholder data målt i et profileringseksperiment (eller en del af dette) eller produceret af efterbehandling af et spor. Størrelsen er typisk lineær i fht. programmets kodestørrelse. +Profileringsdata-part (forkert anvendt, også: Sporpart): Data fra en profildatafil +Profileringseksperiment: En programkørsel overvåget af et profileringsværktøj, der laver muligvis flere profildatafiler fra part og/eller tråde i kørslen. +Profilprojekt: En indstilling til profileringseksperimenter benyttet til ét program der skal profileres, måske i flere versioner. Sammenligninger af profildata giver typisk kun mening mellem profildata produceret i eksperimenter af et profilprojekt. +Omkostningsentitet: Et abstrakt begreb der relaterer til kildekode til hvilken begivenhedstælling kan henføres. Dimensioner for omkostningsentiteter er kodeplacering (f.eks. kildelinje eller funktion), dataplacering (f.eks. tilgået datatype, dataobjekt), placering af den eksekverbare (f.eks. tråde, processer) og tupler eller tripler af de førnævnte placeringer (f.eks. kald, objekttilgangen fra udtryk, data fjernet fra cache). +Begivenhedstype: En begivenhed til hvilken en omkostning kan tilskrives en omkostningsentitet. Der findes flere reelle begivenhedstyper og arvede begivenhedstyper. +Reel begivenhedstype: En begivenhedstype der kan måles med et værktøj. Det forudsætter eksistensen af en sensor til den givne begivenhedstype. +Arvet begivenhedstype: En virtuel begivenhedstype der kun er synlig i visualiseringen som er defineret ved en formel der beregnes ud fra reelle begivenhedstyper. +Begivenhedsomkostninger: Summen af begivenheder af en eller anden begivenhedstype der sker, mens eksekveringen relateres til en omkostningsentitet. Omkostningen tillægges entiteten + + + + + + + +Medvirkende og licens + +&kappname; +Tak til Julian Seward for hans udmærkede værktøj &valgrind;, og Nicholas Nethercote for tilføjelsen &cachegrind;. Uden disse programmer, villeKCachegrind ikke eksistere. Mange af ideerne til denne &GUI; kommer også fra dem. +Og tak for alle fejlrapporter og forslag fra forskellige brugere. +&underFDL; + + +Installation + + +Hvordan får jeg fat i &tdecachegrind; + +&tdecachegrind; er en del af KDE's tdesdk-pakke. For ikke-supporterede deludgivelser, &callgrind; og yderligere dokumentation, se hjemmesiden på http://tdecachegrind.sf.net. Kig der for at finde yderligere installations- og kompileringsinstruktioner. + + + +Krav + +For at bruge &tdecachegrind; med succes, har du brug for &kde; 3.x. For at oprette profildata, anbefales &cachegrind; eller ;&callgrind;. + + + +Kompilering og installation +&install.compile.documentation; + + +Indstilling + +Alle indstillingsmuligheder findes enten i indstillingsdialogen eller i de sammenhængsafhængige popopmenuer i graferne. + + + + + +&documentation.index; +
+ + + + + + + + + + + + + + diff --git a/tde-i18n-da/messages/tdesdk/kcachegrind.po b/tde-i18n-da/messages/tdesdk/kcachegrind.po deleted file mode 100644 index 2cf3c7709cc..00000000000 --- a/tde-i18n-da/messages/tdesdk/kcachegrind.po +++ /dev/null @@ -1,2938 +0,0 @@ -# Danish translation of tdecachegrind -# Copyright (C). -# -# Erik Kjær Pedersen , 2004, 2005. -# Rune Rønde Laursen , 2004, 2005. -msgid "" -msgstr "" -"Project-Id-Version: tdecachegrind\n" -"POT-Creation-Date: 2008-07-08 01:21+0200\n" -"PO-Revision-Date: 2005-12-29 08:33-0500\n" -"Last-Translator: Erik Kjær Pedersen \n" -"Language-Team: Danish \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" -"Plural-Forms: \n" - -#: instritem.cpp:106 sourceitem.cpp:86 -msgid "Active call to '%1'" -msgstr "Aktivt kald til '%1'" - -#: instritem.cpp:108 sourceitem.cpp:88 -msgid "" -"_n: %n call to '%1'\n" -"%n calls to '%1'" -msgstr "" -"%n kald til '%1'\n" -"%n kald til '%1'" - -#: instritem.cpp:137 -msgid "Jump %1 of %2 times to 0x%3" -msgstr "Spring %1 ud af %2 gange til 0x%3" - -#: instritem.cpp:142 -msgid "Jump %1 times to 0x%2" -msgstr "Spring %1 gange til 0x%2" - -#: instritem.cpp:185 sourceitem.cpp:169 -msgid "(cycle)" -msgstr "(cykel)" - -#: tracedata.cpp:157 -msgid "Abstract Item" -msgstr "Abstrakt punkt" - -#: tracedata.cpp:158 -msgid "Cost Item" -msgstr "Omkostningspunkt" - -#: tracedata.cpp:159 -msgid "Part Source Line" -msgstr "Part kildelinje" - -#: tracedata.cpp:160 -msgid "Source Line" -msgstr "Kildelinje" - -#: tracedata.cpp:161 -msgid "Part Line Call" -msgstr "Part linjekald" - -#: tracedata.cpp:162 -msgid "Line Call" -msgstr "Linjekald" - -#: tracedata.cpp:163 -msgid "Part Jump" -msgstr "Part spring" - -#: tracedata.cpp:164 -msgid "Jump" -msgstr "Spring" - -#: tracedata.cpp:165 -msgid "Part Instruction" -msgstr "Part instruktion" - -#: tracedata.cpp:166 -msgid "Instruction" -msgstr "Instruktion" - -#: tracedata.cpp:167 -msgid "Part Instruction Jump" -msgstr "Part instruktionsspring" - -#: tracedata.cpp:168 -msgid "Instruction Jump" -msgstr "Instruktionsspring" - -#: tracedata.cpp:169 -msgid "Part Instruction Call" -msgstr "Part instruktionskald" - -#: tracedata.cpp:170 -msgid "Instruction Call" -msgstr "Instruktionskald" - -#: tracedata.cpp:171 -msgid "Part Call" -msgstr "Part kald" - -#: tracedata.cpp:172 -msgid "Call" -msgstr "Kald" - -#: tracedata.cpp:173 -msgid "Part Function" -msgstr "Part funktion" - -#: tracedata.cpp:174 -msgid "Function Source File" -msgstr "Funktion kildefil" - -#. 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 "Funktion" - -#: tracedata.cpp:176 -msgid "Function Cycle" -msgstr "Funktionscykel" - -#: tracedata.cpp:177 -msgid "Part Class" -msgstr "Part klasse" - -#: tracedata.cpp:178 -msgid "Class" -msgstr "Klasse" - -#: tracedata.cpp:179 -msgid "Part Source File" -msgstr "Part kildefil" - -#: tracedata.cpp:180 -msgid "Source File" -msgstr "Kildefil" - -#: tracedata.cpp:181 -msgid "Part ELF Object" -msgstr "Part ELF-objekt" - -#: tracedata.cpp:182 -msgid "ELF Object" -msgstr "ELF-objekt" - -#: partview.cpp:46 tracedata.cpp:183 -msgid "Profile Part" -msgstr "Profilpart" - -#: tracedata.cpp:184 -msgid "Program Trace" -msgstr "Program-spor" - -#: tracedata.cpp:245 -msgid "%1 from %2" -msgstr "%1 fra %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 "(ukendt)" - -#: tracedata.cpp:2587 -msgid "(no caller)" -msgstr "(ingen kalder)" - -#: tracedata.cpp:2594 tracedata.cpp:2613 -msgid "%1 via %2" -msgstr "%1 via %2" - -#: tracedata.cpp:2603 -msgid "(no callee)" -msgstr "(ingen kaldt)" - -#: tracedata.cpp:4471 -msgid "(not found)" -msgstr "(ikke fundet)" - -#: tracedata.cpp:5021 -msgid "Recalculating Function Cycles..." -msgstr "Genberegner funktionscykler..." - -#. i18n: file dumpselectionbase.ui line 550 -#: callmapview.cpp:59 partselection.cpp:58 rc.cpp:192 -#, no-c-format -msgid "Name" -msgstr "Navn" - -#. 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 "Omkostning" - -#: partselection.cpp:151 -msgid "Profile Part Overview: Current is '%1'" -msgstr "Profilpart overblik: Denne er '%1'" - -#: partselection.cpp:287 -msgid "Deselect" -msgstr "Afmarkér" - -#: partselection.cpp:287 partselection.cpp:311 -msgid "Select" -msgstr "Markér" - -#: partselection.cpp:292 -msgid "Select All Parts" -msgstr "Markér alle parter" - -#: partselection.cpp:294 -msgid "Visible Parts" -msgstr "Synlige parter" - -#: partselection.cpp:296 -msgid "Hide Selected Parts" -msgstr "Skjul markerede parter" - -#: partselection.cpp:297 -msgid "Unhide Hidden Parts" -msgstr "Afskjul skjulte parter" - -#: partselection.cpp:302 toplevel.cpp:1692 -msgid "Go Back" -msgstr "Gå tilbage" - -#: callgraphview.cpp:2571 partselection.cpp:320 -msgid "Visualization" -msgstr "Visualisering" - -#: partselection.cpp:322 -msgid "Partitioning Mode" -msgstr "Partitionerings-tilstand" - -#: partselection.cpp:323 -msgid "Diagram Mode" -msgstr "Diagramtilstand" - -#: partselection.cpp:324 -msgid "Zoom Function" -msgstr "Forstørrelses-funktion" - -#: partselection.cpp:325 -msgid "Show Direct Calls" -msgstr "Vis direkte kald" - -#: partselection.cpp:326 -msgid "Increment Shown Call Levels" -msgstr "Forøg viste kald-niveauer" - -#: partselection.cpp:340 -msgid "Draw Names" -msgstr "Tegn navne" - -#: partselection.cpp:341 -msgid "Draw Costs" -msgstr "Tegn omkostninger" - -#: callmapview.cpp:303 partselection.cpp:342 -msgid "Ignore Proportions" -msgstr "Ignorér proportioner" - -#: partselection.cpp:343 -msgid "Draw Frames" -msgstr "Tegn rammer" - -#: callmapview.cpp:304 partselection.cpp:344 treemap.cpp:2887 -msgid "Allow Rotation" -msgstr "Tillad rotation" - -#: partselection.cpp:359 -msgid "Hide Info" -msgstr "Skjul info" - -#: partselection.cpp:361 -msgid "Show Info" -msgstr "Vis info" - -#: partselection.cpp:541 -msgid "(no trace loaded)" -msgstr "(intet spor indlæst)" - -#: costtypeview.cpp:42 -msgid "Event Type" -msgstr "Begivenhedstype" - -#. 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 "Inkl." - -#. 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 "Selv" - -#: costtypeview.cpp:45 -msgid "Short" -msgstr "Kort" - -#: costtypeview.cpp:47 -msgid "Formula" -msgstr "Formel" - -#: 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 "" -"Omkostningstype-liste" -"

Denne liste viser alle tilgængelige omkostningstyper og hvad " -"egen/inklusivomkostningerne er for aktuelle funktion for den " -"omkostningstype.

" -"

Ved at vælge en omkostningstype fra listen, ændrer du omkostningstypen for " -"omkostninger vist overalt i KCachegrind til at være den valgte.

" - -#: costtypeview.cpp:98 -msgid "Set Secondary Event Type" -msgstr "Sæt sekundær begivenhedstype" - -#: costtypeview.cpp:100 -msgid "Remove Secondary Event Type" -msgstr "Fjern sekundær begivenhedstype" - -#: costtypeview.cpp:105 -msgid "Edit Long Name" -msgstr "Redigér langt navn" - -#: costtypeview.cpp:106 -msgid "Edit Short Name" -msgstr "Redigér kort navn" - -#: costtypeview.cpp:107 -msgid "Edit Formula" -msgstr "Redigér formel" - -#: costtypeview.cpp:115 -msgid "New Cost Type ..." -msgstr "Ny omkostningstype ..." - -#: costtypeview.cpp:149 costtypeview.cpp:154 -#, c-format -msgid "New%1" -msgstr "Ny%1" - -#: costtypeview.cpp:155 -#, c-format -msgid "New Cost Type %1" -msgstr "Ny omkostningstype %1" - -#: sourceitem.cpp:125 -msgid "Jump %1 of %2 times to %3" -msgstr "Spring %1 ud af %2 gange til %3" - -#: sourceitem.cpp:130 -msgid "Jump %1 times to %2" -msgstr "Spring %1 gange til %2" - -#: costlistitem.cpp:60 -#, c-format -msgid "" -"_n: (%n item skipped)\n" -"(%n items skipped)" -msgstr "" -"(%n punkt oversprunget)\n" -"(%n punkter oversprunget)" - -#: traceitemview.cpp:53 -msgid "No description available" -msgstr "Ingen beskrivelse tilgængelig" - -#. i18n: file partselectionbase.ui line 16 -#: rc.cpp:324 toplevel.cpp:281 toplevel.cpp:581 -#, no-c-format -msgid "Parts Overview" -msgstr "Part-overblik" - -#: 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 "" -"Part-overblik" -"

Et spor består af flere spor-parter når der er flere spor-filer fra en " -"profil-kørsel. Spor-part-overblikkets dokbare viser disse, ordnet vandret efter " -"kørselstid. Rektanglernes størrelser er proportionale med den totale omkostning " -"forbrugt i parterne. Du kan vælge en eller flere parter for at begrænse de " -"viste omkostninger til kun disse parter.

" -"

Parterne er yderligere underinddelt: der er en partitionering og en " -"kaldt-opdelt tilstand: " -"

    " -"
  • Partitionering: Du ser partitioneringen i grupper for en spor-part, i " -"henhold til den valgte gruppe. Hvis f.eks. ELF-objektgrupper er valgt, ser du " -"farvede rektangler for hvert brugt ELF-objekt (delt bibliotek eller kørbar), " -"med størrelse der følger den omkostning der er brugt deri.
  • " -"
  • Kalder: Et rektangel der afspejler den inklusive omkostning af den valgte " -"funktion i spor-parten vises. Denne er igen opdelt i mindre rektangler for at " -"vise kaldernes omkostninger.

" - -#: toplevel.cpp:318 -msgid "Top Cost Call Stack" -msgstr "Topomkostning kaldstak" - -#: 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 "" -"Top-omkostning kald-stak" -"

Dette er en rent forestillet 'mest sandsynlig' kald-stak. Den er bygget op " -"startende med den valgte funktion og tilføjer så kaldere/kaldte med den højeste " -"omkostning foroven og forneden.

" -"

Omkostning- og Kald-søjlerne viser omkostninger brugt på alle " -"kald fra funktionen i linjen ovenfor.

" - -#: toplevel.cpp:333 -msgid "Flat Profile" -msgstr "Flad profil" - -#: 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 "" -"Flad profil" -"

Den flade profil indeholder en gruppe og en funktionmarkeringsliste. " -"Gruppelisten indeholder alle grupper hvor omkostninger er brugt, afhængig af " -"valgte gruppetype. Gruppelisten er skjult når gruppetypen 'Funktion' er valgt." -"

" -"

Funktionslisten indeholder funktionerne for den valgte gruppe (eller alle af " -"'Funktion' gruppetype), ordnet efter de omkostninger der brugt deri. Funktioner " -"med omkostninger mindre end 1% er skjult i standardopsætningen.

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

Denne dokbare viser i den øverste del listen af indlæsbare profil-dump i " -"alle underkataloger af: " -"

    " -"
  • nuværende arbejdskatalog for KCachegrind, dvs hvor den blev startet fra, og " -"
  • standard profil-dump katalog givet i opsætningen.
" -"Listen er sorteret efter målkommandoen profileret i det tilsvarende dump.

" -"

Ved valg af et profil-dump, vises information for den i det nederste område " -"af den dokbare: " -"

    " -"
  • Indstillinger tillader dig at se den profilerede kommando og " -"profil-tilvalg for denne dump. Ved at ændre et punkt, laves en ny (endnu ikke " -"eksisterende) profil-skabelon. Tryk på Kør profil " -"for at starte en profil-kørsel med disse tilvalg i baggrunden." -"
  • Info giver detaljeret info om det valgte dump såsom et sammendrag " -"for begivenhedens omkostning og den simulerede cache's egenskaber. " -"
  • Tilstand er kun tilgængelig for profil-kørsler der kører lige nu. " -"Tryk på Opdatér for at se forskellige tællere for kørslen, og et " -"stak-spor for positionen i programmet profileret. Afkryds Hver" -"-tilvalget for at lade KCachegrind trække disse data regulært. Afkryds " -"Sync-tilvalget for at lade den dokbare aktivere topfunktionen i den " -"indlæste dump.

" - -#: toplevel.cpp:455 -msgid "&Duplicate" -msgstr "&Duplikér" - -#: toplevel.cpp:459 -msgid "" -"Duplicate Current Layout" -"

Make a copy of the current layout.

" -msgstr "Duplikér dette layout

Lav en kopi af dette layout.

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

Delete current layout and make the previous active.

" -msgstr "" -"Fjern dette layout" -"

Slet dette layout og gør det tidligere aktivt.

" - -#: toplevel.cpp:470 -msgid "&Go to Next" -msgstr "&Gå til næste" - -#: toplevel.cpp:474 -msgid "Go to Next Layout" -msgstr "Gå til næste layout" - -#: toplevel.cpp:477 -msgid "&Go to Previous" -msgstr "&Gå til forrige" - -#: toplevel.cpp:481 -msgid "Go to Previous Layout" -msgstr "Gå til forrige layout" - -#: toplevel.cpp:484 -msgid "&Restore to Default" -msgstr "&Nulstil til standard" - -#: toplevel.cpp:487 -msgid "Restore Layouts to Default" -msgstr "Nulstiller layout til standard" - -#: toplevel.cpp:490 -msgid "&Save as Default" -msgstr "&Gem som standard" - -#: toplevel.cpp:493 -msgid "Save Layouts as Default" -msgstr "Gem layout som standard" - -#: toplevel.cpp:504 -msgid "New

Open new empty KCachegrind window.

" -msgstr "Ny

Åbn nyt tomt KCachegrind-vindue.

" - -#: toplevel.cpp:507 -msgid "&Add..." -msgstr "&Tilføj..." - -#: toplevel.cpp:510 -msgid "" -"Add Profile Data" -"

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

" -msgstr "" -"Tilføj profildata" -"

Dette åbner endnu en profildata-fil i nuværende vindue.

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

This loads any new created parts, too.

" -msgstr "" -"Genindlæs profildata" -"

Dette indlæser også alle nyligt oprettede parter.

" - -#: toplevel.cpp:526 -msgid "&Export Graph" -msgstr "&Eksportér graf" - -#: toplevel.cpp:530 -msgid "" -"Export Call Graph" -"

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

" -msgstr "" -"Eksportér kald-graf" -"

Genererer en fil med endelsen .dot for værktøjerne i GraphViz-pakken.

" - -#: toplevel.cpp:536 -msgid "&Force Dump" -msgstr "&Påtving dump" - -#: 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 "" -"Påtving dump" -"

Dette tvinger en dump for en Callgrind profil-kørsel i det aktuelle katalog. " -"Denne handling tjekkes mens KCachegrind kigger efter dumpen. Når dumpen er " -"afsluttet, genindlæser den automatisk det aktuelle spor. Hvis det er den fra " -"kørslen af Callgrind, vil den nylige spor-part også blive indlæst.

" -"

Påtving dump laver en fil 'callgrind.cmd', og tjekker hvert sekund for dens " -"eksistens. En kørende Callgrind vil detektere denne fil, dumpe en spor-part, og " -"slette 'callgrind.cmd'. Sletningen detekteres af KCachegrind, og den foretager " -"en genindlæsning. Hvis der ikke er nogen Callgrind der kører, tryk da " -"på 'Påtving dump' igen for at annullere dump-forespørgslen. Dette sletter " -"'callgrind.cmd' selv og holder op med at forespørge en ny dump.

" -"

Bemærk: En Callgrind kørsel only detekterer eksistensen af " -"'callgrind.cmd' når den har kørt aktivt nogle få millisekunder, dvs den " -"ikke sover. Vink: For et profileret GUI-program, kan du vække Callgrind f. " -"eks. ved at ændre størrelse for programmets vindue.

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

This opens a profile data file, with possible multiple parts

" -msgstr "" -"Åbn profildata" -"

Dette åbner en profildata-fil, muligvis med flere dele

" - -#: toplevel.cpp:586 -msgid "Show/Hide the Parts Overview Dockable" -msgstr "Vis/Skjul part overblik-dokbar" - -#: toplevel.cpp:590 -msgid "Call Stack" -msgstr "Kaldstak" - -#: toplevel.cpp:595 -msgid "Show/Hide the Call Stack Dockable" -msgstr "Vis/Skjul kaldstakkens dokbare" - -#. i18n: file functionselectionbase.ui line 16 -#: rc.cpp:297 toplevel.cpp:599 -#, no-c-format -msgid "Function Profile" -msgstr "Funktionsprofil" - -#: toplevel.cpp:604 -msgid "Show/Hide the Function Profile Dockable" -msgstr "Vis/Skjul funktionprofilens dokbare" - -#: toplevel.cpp:614 -msgid "Show/Hide the Profile Dumps Dockable" -msgstr "Vis/Skjul profil-dump dokbar" - -#: toplevel.cpp:619 -msgid "Show Relative Costs" -msgstr "Vis relative omkostninger" - -#: toplevel.cpp:626 -msgid "Show Absolute Costs" -msgstr "Vis absolutte omkostninger" - -#: toplevel.cpp:629 -msgid "Show relative instead of absolute costs" -msgstr "Vis relative i stedet for absolutte omkostninger" - -#: toplevel.cpp:633 -msgid "Percentage Relative to Parent" -msgstr "Procent relativ til afledt fra" - -#: toplevel.cpp:639 -msgid "Show percentage costs relative to parent" -msgstr "Vis procent omkostninger relativ til den der er afledt fra" - -#: 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 "" -"Vis procent omkostninger relativ til afledt fra" -"

    Hvis dette r slået fra, vil procent omkostninger altid vises relativt til de " -"totale omkostninger af de profil-parter der bliver gennemset for øjeblikket. " -"Ved at slå dette til, vil procent omkostningerne der vises være relativt til " -"omkostningerne for det punkt (parent) de er afledt fra. " -"

      " -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"" -"
      OmkostningstypeAfledt fra omkostning
      Funktion kumulativTotal
      Funktion selvFunktion gruppe (*) / Total
      KaldFunktion kumulativ
      KildelinjeFunktion kumulativ
      " -"

      (*) Kun hvis funktionsgruppering er slået til (f.eks. ELF " -"objekt-gruppering)." - -#: toplevel.cpp:658 -msgid "Do Cycle Detection" -msgstr "Udfør cykel-detektion" - -#: toplevel.cpp:664 -msgid "Skip Cycle Detection" -msgstr "Overspring cykeldetektion" - -#: 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 "" -"Detektér rekursive cykler" -"

      Hvis dette er slået fra vil trækortet vise sorte områder når et rekursivt " -"kald laves, i stedet for at tegne rekursionen i det uendelige. Bemærk at " -"størrelsen af sorte områder ofte vil være forkert, idet du ikke kan afgøre " -"omkostningen af et kald indeni rekursive cykler; fejlen er imidlertid lille for " -"falske cykler (se dokumentationen)." -"

      Den rigtige håndtering for cykler er at detektere dem og kollapse alle " -"funktioner for en cykel til en virtuel funktion, hvilket gøres når dette " -"tilvalg er markeret. Uheldigvis vil dette ofte føre til kæmpestore falske " -"cykler med GUI-programmer, og gør derved analyse umulig. Derfor er der " -"muligheden for at slå dette fra." - -#: toplevel.cpp:689 toplevel.cpp:729 -msgid "Go back in function selection history" -msgstr "Gå tilbage i funktionvalgshistorikken" - -#: toplevel.cpp:695 toplevel.cpp:741 -msgid "Go forward in function selection history" -msgstr "Gå frem i funktionvalgshistorikken" - -#: 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 "" -"Gå op" -"

      Gå til sidst valgte kalder af denne funktion. Hvis ingen kalder blev besøgt, " -"så brug den med den højeste omkostning.

      " - -#: toplevel.cpp:707 -msgid "&Up" -msgstr "&Op" - -#: toplevel.cpp:746 toplevel.cpp:1651 -msgid "Primary Event Type" -msgstr "Primær begivenhedstype" - -#: toplevel.cpp:748 -msgid "Select primary event type of costs" -msgstr "Vælg primær begivenhedstype for omkostninger" - -#: toplevel.cpp:758 toplevel.cpp:1654 -msgid "Secondary Event Type" -msgstr "Sekundær begivenhedstype" - -#: toplevel.cpp:760 -msgid "Select secondary event type for cost e.g. shown in annotations" -msgstr "" -"Vælg sekundær begivenhedstype for omkostninger f.eks. vist i påtegninger" - -#: functionselection.cpp:243 toplevel.cpp:768 -msgid "Grouping" -msgstr "Gruppering" - -#: toplevel.cpp:771 -msgid "Select how functions are grouped into higher level cost items" -msgstr "" -"Vælg hvordan funktioner er grupperet i højere niveau omkostningspunkter" - -#: functionselection.cpp:52 toplevel.cpp:777 -msgid "(No Grouping)" -msgstr "(Ingen gruppering)" - -#: toplevel.cpp:787 -msgid "Split" -msgstr "Opdelt" - -#: toplevel.cpp:791 -msgid "Show two information panels" -msgstr "Vis to informationspaneler" - -#: toplevel.cpp:795 -msgid "Split Horizontal" -msgstr "Opdel vandret" - -#: toplevel.cpp:800 -msgid "Change Split Orientation when main window is split." -msgstr "Ændr opdelingsorienteringen når hovedvinduet opdeles" - -#: toplevel.cpp:808 -msgid "Tip of the &Day..." -msgstr "&Dagens vink..." - -#: toplevel.cpp:809 -msgid "Show \"Tip of the Day\"" -msgstr "Vis \"Dagens vink\"" - -#: toplevel.cpp:1012 toplevel.cpp:1061 -msgid "" -"cachegrind.out* callgrind.out*|Callgrind Profile Data\n" -"*|All Files" -msgstr "" -"cachegrind.out* callgrind.out*|Callgrind profildata\n" -"*|Alle filer" - -#: toplevel.cpp:1014 -msgid "Select Callgrind Profile Data" -msgstr "Vælg Callgrind profildata" - -#: toplevel.cpp:1063 -msgid "Add Callgrind Profile Data" -msgstr "Tilføj Callgrind profildata" - -#: toplevel.cpp:1221 toplevel.cpp:1574 -msgid "(Hidden)" -msgstr "(Skjult)" - -#: toplevel.cpp:1626 -msgid "Hide" -msgstr "Skjul" - -#: toplevel.cpp:1659 -msgid "Show Absolute Cost" -msgstr "Vis absolutte omkostninger" - -#: toplevel.cpp:1662 -msgid "Show Relative Cost" -msgstr "Vis relativ omkostning" - -#: toplevel.cpp:1693 -msgid "Go Forward" -msgstr "Gå fremad" - -#: toplevel.cpp:1694 -msgid "Go Up" -msgstr "Gå op" - -#: toplevel.cpp:1926 -#, c-format -msgid "Layout Count: %1" -msgstr "Layout antal: %1" - -#: toplevel.cpp:1933 -msgid "No profile data file loaded." -msgstr "Ingen profildata indlæst." - -#: toplevel.cpp:1942 -msgid "Total %1 Cost: %2" -msgstr "Total %1 Omkostning: %2" - -#: toplevel.cpp:1954 -msgid "No event type selected" -msgstr "Ingen begivenhedstype valgt" - -#: toplevel.cpp:2199 toplevel.cpp:2235 toplevel.cpp:2271 -msgid "(No Stack)" -msgstr "(Ingen stak)" - -#: toplevel.cpp:2205 -msgid "(No next function)" -msgstr "(Ingen næste funktion)" - -#: toplevel.cpp:2241 -msgid "(No previous function)" -msgstr "(Ingen forrige funktion)" - -#: toplevel.cpp:2276 -msgid "(No Function Up)" -msgstr "(Ingen funktion op)" - -#. 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 "Omkostning 2" - -#: instrview.cpp:129 -msgid "Hex" -msgstr "Hex" - -#: instrview.cpp:131 tabview.cpp:313 -msgid "Assembler" -msgstr "Assembler" - -#: instrview.cpp:132 -msgid "Source Position" -msgstr "Kildeposition" - -#: 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 "" -"Kommenteret assembler" -"

      Den kommenterede assemblerliste viser maskinkodeinstruktioner for den valgte " -"funktion sammen med egenomkostningen brugt mens en instruktion udføres. Hvis " -"det er en kald-instruktion, vil linjer med detaljer kaldet, blive indsat i " -"kildekoden: omkostninger forbrugt indeni kaldet, antallet af kald og kaldets " -"mål.

      " -"

      Disassembler-uddata der vises er genereret med 'objdump'-værktøjet fra " -"'binutils'-pakken.

      " -"

      Vælg en linje med kaldinformation for at gøre målfunktionen for dette kald " -"til det aktuelle.

      " - -#: 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 "Gå til '%1'" - -#: instrview.cpp:195 -#, c-format -msgid "Go to Address %1" -msgstr "Gå til adresse %1" - -#: instrview.cpp:207 -msgid "Hex Code" -msgstr "Hex-kode" - -#: instrview.cpp:426 -msgid "There is no instruction info in the profile data file." -msgstr "Der er ingen instruktionsinfo i profildata-filen." - -#: instrview.cpp:428 -msgid "For the Valgrind Calltree Skin, rerun with option" -msgstr "For Valgrind Calltree forside, kår igen med tilvalg" - -#: instrview.cpp:429 -msgid " --dump-instr=yes" -msgstr " --dump-instr=yes" - -#: instrview.cpp:430 -msgid "To see (conditional) jumps, additionally specify" -msgstr "For at se (betingede) spring, angiv yderligere" - -#: 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 "Der er en fejl ved forsøget på at køre kommandoen" - -#: instrview.cpp:634 instrview.cpp:900 -msgid "Check that you have installed 'objdump'." -msgstr "Tjek at du har installeret 'objdump'" - -#: instrview.cpp:636 instrview.cpp:902 -msgid "This utility can be found in the 'binutils' package." -msgstr "Dette redskab kan findes i 'binutils'-pakken." - -#: instrview.cpp:739 -msgid "(No Assembler)" -msgstr "(Ingen assembler)" - -#: instrview.cpp:875 -#, c-format -msgid "" -"_n: There is %n cost line without assembler code.\n" -"There are %n cost lines without assembler code." -msgstr "" -"Der er %n omkostningslinje uden assembler-kode.\n" -"Der er %n omkostningslinjer uden assembler-kode." - -#: instrview.cpp:877 -msgid "This happens because the code of" -msgstr "Dette sker på grund af koden i" - -#: instrview.cpp:880 -msgid "does not seem to match the profile data file." -msgstr "synes ikke at passe til profildata-filen." - -#: instrview.cpp:883 -msgid "Are you using an old profile data file or is the above mentioned" -msgstr "Bruger du en gammel profildata-fil eller er ovennævnte" - -#: instrview.cpp:885 -msgid "ELF object from an updated installation/another machine?" -msgstr "ELF-objekt fra en opdateret installation/en anden maskine?" - -#: instrview.cpp:893 -msgid "There seems to be an error trying to execute the command" -msgstr "Der synes at være en fejl ved forsøget på at køre kommandoen" - -#: instrview.cpp:898 -msgid "Check that the ELF object used in the command exists." -msgstr "Tjek at ELF-objektet der bruges i kommandoen eksisterer." - -#: callgraphview.cpp:306 -#, c-format -msgid "Call(s) from %1" -msgstr "Kald fra %1" - -#: callgraphview.cpp:307 -#, c-format -msgid "Call(s) to %1" -msgstr "Kald til %1" - -#: callgraphview.cpp:308 -msgid "(unknown call)" -msgstr "(ukendt kald)" - -#: 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 "" -"Kaldegraf omkring aktiv funktion" -"

      Afhængig af indstillingen, viser dette kaldegrafens omgivelser af den aktive " -"funktion. Bemærk: den viste omkostning er kun " -"den omkostning som er brugt mens den aktive funktion rent faktisk kørte; dvs. " -"den omkostning der vises for main() - hvis den er synlig - skal være den samme " -"som omkostningen for den aktive funktion, da det er delen af den inklusive " -"omkostning af main() brugt mens den aktive funktion kørte.

      " -"

      For cykler, indikerer blå kaldepile at dette er et kunstigt kald tilføjet " -"den rigtige tegning som rent faktisk aldrig skete.

      " -"

      Hvis grafen er større end kontrolområdet, vises en overblikstingest på en " -"kant. Der er lignende visualiseringstilvalg til Kald-trækortet; den valgte " -"funktion er fremhævet." -"

      " - -#: callgraphview.cpp:1789 -msgid "" -"Warning: a long lasting graph layouting is in progress.\n" -"Reduce node/edge limits for speedup.\n" -msgstr "" -"Advarsel: længerevarende grafudlægning under udførelse.\n" -"Reducér knude/rand-grænser for at øge hastigheden.\n" - -#: callgraphview.cpp:1792 -msgid "" -"Layouting stopped.\n" -msgstr "" -"Grafudlægning stoppet.\n" - -#: callgraphview.cpp:1794 -msgid "" -"The call graph has %1 nodes and %2 edges.\n" -msgstr "" -"Kaldgrafen har %1 knuder og %2 rande.\n" - -#: callgraphview.cpp:1827 -msgid "No item activated for which to draw the call graph." -msgstr "Intet punkt aktiveret at tegne kaldgrafen ud fra." - -#: callgraphview.cpp:1838 -msgid "No call graph can be drawn for the active item." -msgstr "Der kan ikke tegnes nogen kaldgraf for det valgte punkt." - -#: callgraphview.cpp:1867 -msgid "" -"No call graph is available because the following\n" -"command cannot be run:\n" -"'%1'\n" -msgstr "" -"Der er ingen kaldgraf til rådighed pga. at følgende\n" -"kommando ikke kan køres:\n" -"'%1'\n" - -#: callgraphview.cpp:1870 callgraphview.cpp:2200 -msgid "Please check that 'dot' is installed (package GraphViz)." -msgstr "Tjek at 'dot' er installeret (pakken GraphViz)." - -#: callgraphview.cpp:2199 -msgid "" -"Error running the graph layouting tool.\n" -msgstr "" -"Fejl ved kørsel af grafudlægnings-værktøjet.\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 "" -"Der er ingen kaldegraf tilgængelig for funktionen\n" -"\t'%1'\n" -"da den ikke har nogen omkostning for den valgte begivenhedstype." - -#: callgraphview.cpp:2428 -msgid "Stop Layouting" -msgstr "Stop udlægning" - -#: callgraphview.cpp:2436 -msgid "As PostScript" -msgstr "Som Postscript" - -#: callgraphview.cpp:2437 -msgid "As Image ..." -msgstr "Som billede ..." - -#: callgraphview.cpp:2439 -msgid "Export Graph" -msgstr "Eksportér graf" - -#: callgraphview.cpp:2444 callgraphview.cpp:2467 -msgid "Unlimited" -msgstr "Ubegrænset" - -#: callgraphview.cpp:2447 callgraphview.cpp:2470 -msgid "None" -msgstr "Ingen" - -#: callgraphview.cpp:2448 callgraphview.cpp:2471 -msgid "max. 2" -msgstr "maks. 2" - -#: callgraphview.cpp:2449 callgraphview.cpp:2472 -msgid "max. 5" -msgstr "maks. 5" - -#: callgraphview.cpp:2450 callgraphview.cpp:2473 -msgid "max. 10" -msgstr "maks. 10" - -#: callgraphview.cpp:2451 callgraphview.cpp:2474 -msgid "max. 15" -msgstr "maks. 15" - -#: callgraphview.cpp:2461 callgraphview.cpp:2484 -#, c-format -msgid "< %1" -msgstr "< %1" - -#: callgraphview.cpp:2490 -msgid "No Minimum" -msgstr "Intet minimum" - -#: 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 "Samme som knuden" - -#: callgraphview.cpp:2518 -#, c-format -msgid "50 % of Node" -msgstr "50 % af knuden" - -#: callgraphview.cpp:2519 -#, c-format -msgid "20 % of Node" -msgstr "20 % af knuden" - -#: callgraphview.cpp:2520 -#, c-format -msgid "10 % of Node" -msgstr "10 % af knuden" - -#: callgraphview.cpp:2530 -msgid "Caller Depth" -msgstr "Kalder-dybde" - -#: callgraphview.cpp:2531 -msgid "Callee Depth" -msgstr "Kaldt-dybde" - -#: callgraphview.cpp:2532 -msgid "Min. Node Cost" -msgstr "Min. knudeomkostning" - -#: callgraphview.cpp:2533 -msgid "Min. Call Cost" -msgstr "Min. kaldeomkostning" - -#: callgraphview.cpp:2535 -msgid "Arrows for Skipped Calls" -msgstr "Tillader oversprungen kald" - -#: callgraphview.cpp:2537 -msgid "Inner-cycle Calls" -msgstr "Indre-cykel kald" - -#: callgraphview.cpp:2539 -msgid "Cluster Groups" -msgstr "Klyngegrupper" - -#: callgraphview.cpp:2544 -msgid "Compact" -msgstr "Kompakt" - -#: callgraphview.cpp:2545 -msgid "Normal" -msgstr "Normal" - -#: callgraphview.cpp:2546 -msgid "Tall" -msgstr "Høj" - -#: callgraphview.cpp:2551 -msgid "Top to Down" -msgstr "Ovenfra nedad" - -#: callgraphview.cpp:2552 -msgid "Left to Right" -msgstr "Venstre mod højre" - -#: callgraphview.cpp:2553 -msgid "Circular" -msgstr "Cirkulær" - -#: callgraphview.cpp:2559 -msgid "TopLeft" -msgstr "TopVenstre" - -#: callgraphview.cpp:2560 -msgid "TopRight" -msgstr "TopHøjre" - -#: callgraphview.cpp:2561 -msgid "BottomLeft" -msgstr "NedeVenstre" - -#: callgraphview.cpp:2562 -msgid "BottomRight" -msgstr "NedeHøjre" - -#. i18n: file configdlgbase.ui line 246 -#: callgraphview.cpp:2563 rc.cpp:42 rc.cpp:51 rc.cpp:54 -#, no-c-format -msgid "Automatic" -msgstr "Automatisk" - -#: callgraphview.cpp:2570 -msgid "Graph" -msgstr "Graf" - -#: callgraphview.cpp:2572 -msgid "Birds-eye View" -msgstr "Fugleperspektiv" - -#: _translatorinfo.cpp:1 -msgid "" -"_: NAME OF TRANSLATORS\n" -"Your names" -msgstr "Erik Kjær Pedersen" - -#: _translatorinfo.cpp:3 -msgid "" -"_: EMAIL OF TRANSLATORS\n" -"Your emails" -msgstr "erik@binghamton.edu" - -#: coverageitem.cpp:65 coverageitem.cpp:205 functionitem.cpp:72 -#, c-format -msgid "" -"_n: (%n function skipped)\n" -"(%n functions skipped)" -msgstr "" -"(%n funktion oversprunget)\n" -"(%n funktioner oversprunget)" - -#: main.cpp:38 -msgid "Run under cachegrind" -msgstr "Kør under cachegrind" - -#: main.cpp:39 -msgid "Show information of this trace" -msgstr "Vis information for dette spor" - -#: main.cpp:46 -msgid "KCachegrind" -msgstr "KCachegrind" - -#: main.cpp:48 -msgid "KDE Frontend for Cachegrind" -msgstr "KDE's forende for Cachegrind" - -#: main.cpp:50 -msgid "(C) 2002, 2003, 2004" -msgstr "(C) 2002, 2003, 2004" - -#: main.cpp:53 -msgid "Author/Maintainer" -msgstr "Forfatter/Vedligeholder" - -#: tabview.cpp:64 -msgid "Move to Top" -msgstr "Flyt til toppen" - -#: tabview.cpp:68 -msgid "Move to Right" -msgstr "Flyt til højre" - -#: tabview.cpp:72 -msgid "Move to Bottom" -msgstr "Flyt til bunden" - -#: tabview.cpp:76 -msgid "Move to Bottom Left" -msgstr "Flyt til nede til venstre" - -#: tabview.cpp:77 tabview.cpp:94 treemap.cpp:2908 -msgid "Bottom Left" -msgstr "For neden til venstre" - -#: tabview.cpp:79 -msgid "Move Area To" -msgstr "Flyt område til" - -#: tabview.cpp:81 -msgid "Hide This Tab" -msgstr "Skjul dette faneblad" - -#: tabview.cpp:82 -msgid "Hide Area" -msgstr "Skjul område" - -#: tabview.cpp:95 -msgid "Show Hidden On" -msgstr "Vis skjult for" - -#: tabview.cpp:242 -msgid "(No profile data file loaded)" -msgstr "(Ingen profildata-fil indlæst)" - -#: tabview.cpp:281 -msgid "Types" -msgstr "Typer" - -#: tabview.cpp:284 -msgid "Callers" -msgstr "Kaldere" - -#: tabview.cpp:287 -msgid "All Callers" -msgstr "Alle kaldere" - -#: tabview.cpp:290 -msgid "Caller Map" -msgstr "Kalder-kort" - -#: tabview.cpp:293 -msgid "Source" -msgstr "Kilde" - -#: tabview.cpp:297 -msgid "Parts" -msgstr "Dele" - -#: tabview.cpp:300 -msgid "Call Graph" -msgstr "Kald-graf" - -#: tabview.cpp:303 -msgid "Callees" -msgstr "Kaldte" - -#: tabview.cpp:306 -msgid "All Callees" -msgstr "Alle kaldte" - -#: tabview.cpp:310 -msgid "Callee Map" -msgstr "Oversigt over kaldte" - -#: 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 "" -"Informationsfaneblade" -"

      Denne kontrol viser information for den valgte funktion i forskellige " -"faneblade: " -"

        " -"
      • Fanebladet Omkostninger viser en liste af tilgængelige omkostningstyper og " -"inkluseive og egen-omkostninger med hensyn til disse typer.
      • " -"
      • Part-fanebladet viser en liste af spor-parter, hvis sporet består af mere " -"end en part (ellers er dette faneblad skjult). Der vises omkostninger forbrugt " -"i de forskellige parter af den aktuelle funktion, sammen med de kald der " -"sker.
      • " -"
      • Kaldte-lister-fanebladet viser mere detaljeret de direkte kaldere og kaldte " -"af funktionen.
      • " -"
      • Dækning-fanebladet viser det samme som i kaldte-lister-fanebladet, men ikke " -"blot direkte kaldere og kaldte, men også indirekte.
      • " -"
      • Kaldgraf-fanebladet er en grafisk visualisering af de kald der udføres af " -"denne funktion.
      • " -"
      • Kilde-fanebladet viser kommenteret kildekode hvis fejlretningsinformation " -"og kildefil er tilgængelig.
      • " -"
      • Assembler-fanebladet viser kommenteret assemblerkode hvis sporinformation " -"på instruktionsniveau er tilgængelig.
      For mere information, se " -"Hvad er dette?-hjælp for den tilsvarende fanebladskontrol

      " - -#: tabview.cpp:630 -msgid "(No Data loaded)" -msgstr "(Ingen data indlæst)" - -#: tabview.cpp:631 -msgid "(No function selected)" -msgstr "(Ingen funktion valgt)" - -#: sourceview.cpp:54 sourceview.cpp:554 -msgid "Source (unknown)" -msgstr "Kilde (ukendt)" - -#: 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 "" -"Kommenteret kildekode" -"

      Den kommenterede kildekodeliste viser kildelinjerne for den valgte funktion " -"sammen med egenomkostningerne forbrugt under udførsel af koden for denne " -"kildelinje. Hvis der var et kald i en kildelinje, vil linjer med detaljer om " -"kaldet blive indsat i kildekoden: omkostningerne forbrugt indeni kaldet, " -"antallet af kald og kaldets mål.

      " -"

      Vælg en indsat kaldinformationslinje for at gøre målfunktionen til den " -"aktuelle.

      " - -#: sourceview.cpp:120 -#, c-format -msgid "Go to Line %1" -msgstr "Gå til linje %1" - -#: sourceview.cpp:293 -msgid "(No Source)" -msgstr "(Ingen kilde)" - -#: sourceview.cpp:512 -msgid "There is no cost of current selected type associated" -msgstr "Der er ingen omkostning af valgt type associeret" - -#: sourceview.cpp:514 -msgid "with any source line of this function in file" -msgstr "med nogen kildelinje for denne funktion i filen" - -#: sourceview.cpp:518 -msgid "Thus, no annotated source can be shown." -msgstr "Derfor kan ingen annoteret kilde vises." - -#: sourceview.cpp:553 -msgid "Source ('%1')" -msgstr "Kilde ('%1')" - -#: sourceview.cpp:559 -msgid "--- Inlined from '%1' ---" -msgstr "--- Indlejret fra '%1' ---" - -#: sourceview.cpp:560 -msgid "--- Inlined from unknown source ---" -msgstr "--- Indlejret fra ukendt kilde ---" - -#: sourceview.cpp:565 -msgid "There is no source available for the following function:" -msgstr "Der er ingen kilde tilgængelig for følgende funktion:" - -#: sourceview.cpp:570 -msgid "This is because no debug information is present." -msgstr "Dette er fordi ingen fejlretningsinformation er til stede." - -#: sourceview.cpp:572 -msgid "Recompile source and redo the profile run." -msgstr "Rekompilér kilde og gør profilkørsel igen." - -#: sourceview.cpp:575 -msgid "The function is located in this ELF object:" -msgstr "Funktionen er placeret i dette ELF-objekt:" - -#: sourceview.cpp:583 -msgid "This is because its source file cannot be found:" -msgstr "Dette er fordi da dens kildefil ikke kan findes:" - -#: sourceview.cpp:587 -msgid "Add the folder of this file to the source folder list." -msgstr "Tilføj mappen for denne fil til listen af kildemapper." - -#: sourceview.cpp:589 -msgid "The list can be found in the configuration dialog." -msgstr "Listen kan findes i indstillingsdialogen." - -#: partlistitem.cpp:49 -msgid " (Thread %1)" -msgstr " (Tråd %1)" - -#: partlistitem.cpp:56 -msgid "(none)" -msgstr "(ingen)" - -#: callitem.cpp:82 partlistitem.cpp:152 -msgid "(active)" -msgstr "(aktiv)" - -#: functionselection.cpp:176 -#, c-format -msgid "Go to %1" -msgstr "Gå til %1" - -#: functionselection.cpp:203 -msgid "Show All Items" -msgstr "Vis alle punkter" - -#: functionselection.cpp:226 -msgid "No Grouping" -msgstr "Ingen gruppering" - -#: coverageview.cpp:48 coverageview.cpp:54 -msgid "Distance" -msgstr "Afstand" - -#. i18n: file dumpselectionbase.ui line 928 -#: coverageview.cpp:49 partview.cpp:49 rc.cpp:270 rc.cpp:315 -#, no-c-format -msgid "Called" -msgstr "Kaldet" - -#: callview.cpp:48 coverageview.cpp:50 -msgid "Caller" -msgstr "Kalder" - -#: coverageview.cpp:55 -msgid "Calling" -msgstr "Kalder" - -#: callview.cpp:52 coverageview.cpp:56 -msgid "Callee" -msgstr "Kaldt" - -#: 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 "" -"Liste af alle kaldere" -"

      Denne liste viser alle funktioner der kalder den valgte, enten direkte eller " -"med flere funktioner imellem på stakken; antallet af funktioner imellem øget " -"med 1 kaldes Afstanden (f.eks. for funktionerne A,B,C eksisterer der " -"et kald fra A til C når A kalder B og B kalder C, dvs. A => B => " -"C. Afstanden her er 2).

      " -"

      De absolutte omkostninger der er vist er omkostninger der bruges i den " -"valgte funktion mens den listede funktion er aktiv. De relative omkostninger er " -"den procentdel af alle omkostninger der bruges i den valgte funktion mens den " -"på listen er aktiv. Omkostningsgrafikken viser logaritmisk procent med en anden " -"farve for hver afstand.

      " -"

      Da der kan være mange kald fra den samme funktion, viser afstandssøjlen " -"sommetider området af afstande for alle kald der sker; så, i parentes er der " -"middel afstanden, dvs. afstande hvor de fleste af kaldets omkostninger var.

      " -"

      Vælges en en funktion, gøres den til den aktuelt valgte i dette " -"informationspanel. Hvis der er to paneler (Opdelt tilstand), ændres funktion " -"for det andet panel i stedet for.

      " - -#: 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 "" -"Liste af alle kaldte" -"

      Denne liste viser alle funktioner der kaldt af den valgte, enten direkte " -"eller med flere funktioner imellem på stakken; antallet af funktioner imellem " -"øget med 1 kaldes Afstanden (f.eks. for funktionerne A,B,C eksisterer " -"der et kald fra A til C når A kalder B og B kalder C, dvs. A => B => " -"C. Afstanden her er 2).

      " -"

      Absolut omkostning vist er den omkostning der bruges i den valgte funktion " -"mens listet funktion er aktiv; relativ omkostning den procent af al omkostning " -"der bruges i den valgte funktion mens den på listen er aktiv. " -"Omkostning-grafikken viser logaritmisk procent med en anden farve for hver " -"afstand.

      " -"

      Da der kan være mange kald fra den samme funktion, viser afstandssøjlen " -"sommetider området af afstande for alle kald der sker; så, i parentes er der " -"middel afstanden, dvs. afstande hvor de fleste af kaldets omkostninger var.

      " -"

      Valg af en funktion gør den til den valgte for dette informationspanel. Hvis " -"der er to paneler (Opdelt tilstand), ændres funktion for det andet panel i " -"stedet for.

      " - -#: configuration.cpp:63 -msgid "Instruction Fetch" -msgstr "Instruktionshentning" - -#: configuration.cpp:64 -msgid "Data Read Access" -msgstr "Data-læseadgang" - -#: configuration.cpp:65 -msgid "Data Write Access" -msgstr "Data-skriveadgang" - -#: configuration.cpp:66 -msgid "L1 Instr. Fetch Miss" -msgstr "L1 Instr. Fetch Miss" - -#: configuration.cpp:67 -msgid "L1 Data Read Miss" -msgstr "L1 Datalæse Miss" - -#: configuration.cpp:68 -msgid "L1 Data Write Miss" -msgstr "L1 Dataskrive Miss" - -#: configuration.cpp:69 -msgid "L2 Instr. Fetch Miss" -msgstr "L2 Instr. hente Miss" - -#: configuration.cpp:70 -msgid "L2 Data Read Miss" -msgstr "L2 Datalæse Miss" - -#: configuration.cpp:71 -msgid "L2 Data Write Miss" -msgstr "L2 dataskrive Miss" - -#: configuration.cpp:72 -msgid "Samples" -msgstr "Smagsprøver" - -#: configuration.cpp:73 -msgid "System Time" -msgstr "Systemtid" - -#: configuration.cpp:74 -msgid "User Time" -msgstr "Brugertid" - -#: configuration.cpp:75 -msgid "L1 Miss Sum" -msgstr "L1 Miss Sum" - -#: configuration.cpp:76 -msgid "L2 Miss Sum" -msgstr "L2 Miss Sum" - -#: configuration.cpp:77 -msgid "Cycle Estimation" -msgstr "Cykel-estimat" - -#. i18n: file tdecachegrindui.rc line 15 -#: rc.cpp:9 -#, no-c-format -msgid "&Layout" -msgstr "&Layout" - -#. i18n: file tdecachegrindui.rc line 32 -#: rc.cpp:12 -#, no-c-format -msgid "Sidebars" -msgstr "Sidebjælker" - -#. i18n: file tdecachegrindui.rc line 54 -#: rc.cpp:18 -#, no-c-format -msgid "State Toolbar" -msgstr "Tilstandsværktøjslinje" - -#. i18n: file configdlgbase.ui line 37 -#: rc.cpp:24 -#, no-c-format -msgid "General" -msgstr "Generelt" - -#. i18n: file configdlgbase.ui line 69 -#: rc.cpp:27 -#, no-c-format -msgid "Truncated when more/longer than:" -msgstr "Trunkeret når mere/længere end:" - -#. i18n: file configdlgbase.ui line 77 -#: rc.cpp:30 -#, no-c-format -msgid "Precision of percentage values:" -msgstr "Præcision ved procent-værdier:" - -#. i18n: file configdlgbase.ui line 85 -#: rc.cpp:33 -#, no-c-format -msgid "Symbols in tooltips and context menus" -msgstr "Symboler i værktøjsvink og sammenhængsmenuer" - -#. i18n: file configdlgbase.ui line 141 -#: rc.cpp:36 -#, no-c-format -msgid "Maximum number of items in lists:" -msgstr "Maksimalt antal punkter på lister:" - -#. i18n: file configdlgbase.ui line 162 -#: rc.cpp:39 -#, no-c-format -msgid "Cost Item Colors" -msgstr "Farver til omkostningspunkt" - -#. i18n: file configdlgbase.ui line 254 -#: rc.cpp:45 -#, no-c-format -msgid "Object:" -msgstr "Objekt:" - -#. i18n: file configdlgbase.ui line 262 -#: rc.cpp:48 -#, no-c-format -msgid "Class:" -msgstr "Klasse:" - -#. i18n: file configdlgbase.ui line 310 -#: rc.cpp:57 -#, no-c-format -msgid "File:" -msgstr "Fil:" - -#. i18n: file configdlgbase.ui line 376 -#: rc.cpp:60 -#, no-c-format -msgid "Annotations" -msgstr "Kommentarer" - -#. i18n: file configdlgbase.ui line 395 -#: rc.cpp:63 -#, no-c-format -msgid "Context lines in annotations:" -msgstr "Sammenhængslinjer i annotationer:" - -#. i18n: file configdlgbase.ui line 423 -#: rc.cpp:66 -#, no-c-format -msgid "Source Folders" -msgstr "Kildemapper" - -#. i18n: file configdlgbase.ui line 454 -#: rc.cpp:69 -#, no-c-format -msgid "Object / Related Source Base" -msgstr "Objekt / Relateret kildebasis" - -#. i18n: file configdlgbase.ui line 483 -#: rc.cpp:72 -#, no-c-format -msgid "Add..." -msgstr "Tilføj..." - -#. i18n: file dumpselectionbase.ui line 32 -#: rc.cpp:87 -#, no-c-format -msgid "Target" -msgstr "Mål" - -#. i18n: file dumpselectionbase.ui line 54 -#: rc.cpp:90 -#, no-c-format -msgid "Time" -msgstr "Tid" - -#. i18n: file dumpselectionbase.ui line 65 -#: rc.cpp:93 -#, no-c-format -msgid "Path" -msgstr "Sti" - -#. i18n: file dumpselectionbase.ui line 106 -#: rc.cpp:99 -#, no-c-format -msgid "Target command:" -msgstr "Mål-kommando:" - -#. i18n: file dumpselectionbase.ui line 119 -#: rc.cpp:102 -#, no-c-format -msgid "Profiler options:" -msgstr "Profil-indstillinger:" - -#. i18n: file dumpselectionbase.ui line 125 -#: rc.cpp:105 -#, no-c-format -msgid "Option" -msgstr "Valg" - -#. i18n: file dumpselectionbase.ui line 136 -#: rc.cpp:108 rc.cpp:219 -#, no-c-format -msgid "Value" -msgstr "Værdi" - -#. i18n: file dumpselectionbase.ui line 147 -#: rc.cpp:111 -#, no-c-format -msgid "Trace" -msgstr "Spor" - -#. i18n: file dumpselectionbase.ui line 160 -#: rc.cpp:114 rc.cpp:237 -#, no-c-format -msgid "Jumps" -msgstr "Spring" - -#. i18n: file dumpselectionbase.ui line 174 -#: rc.cpp:117 -#, no-c-format -msgid "Instructions" -msgstr "Instruktioner" - -#. i18n: file dumpselectionbase.ui line 189 -#: rc.cpp:120 rc.cpp:240 -#, no-c-format -msgid "Events" -msgstr "Begivenheder" - -#. i18n: file dumpselectionbase.ui line 202 -#: rc.cpp:123 -#, no-c-format -msgid "Full Cache" -msgstr "Fuld cache" - -#. i18n: file dumpselectionbase.ui line 216 -#: rc.cpp:126 -#, no-c-format -msgid "Custom" -msgstr "Indret selv" - -#. i18n: file dumpselectionbase.ui line 231 -#: rc.cpp:129 -#, no-c-format -msgid "Collect" -msgstr "Indsaml" - -#. i18n: file dumpselectionbase.ui line 244 -#: rc.cpp:132 -#, no-c-format -msgid "At Startup" -msgstr "Ved opstart" - -#. i18n: file dumpselectionbase.ui line 258 -#: rc.cpp:135 -#, no-c-format -msgid "While In" -msgstr "Mens i" - -#. i18n: file dumpselectionbase.ui line 273 -#: rc.cpp:138 -#, no-c-format -msgid "Skip" -msgstr "Skip" - -#. 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 "Dump profil" - -#. i18n: file dumpselectionbase.ui line 328 -#: rc.cpp:150 -#, no-c-format -msgid "Every BBs" -msgstr "Hver BBs" - -#. i18n: file dumpselectionbase.ui line 342 -#: rc.cpp:153 rc.cpp:162 -#, no-c-format -msgid "On Entering" -msgstr "Ved indgang til" - -#. i18n: file dumpselectionbase.ui line 356 -#: rc.cpp:156 -#, no-c-format -msgid "On Leaving" -msgstr "Ved forlade" - -#. i18n: file dumpselectionbase.ui line 371 -#: rc.cpp:159 -#, no-c-format -msgid "Zero Events" -msgstr "Nul-begivenheder" - -#. i18n: file dumpselectionbase.ui line 399 -#: rc.cpp:165 -#, no-c-format -msgid "Separate" -msgstr "Separat" - -#. i18n: file dumpselectionbase.ui line 412 -#: rc.cpp:168 -#, no-c-format -msgid "Threads" -msgstr "Tråde" - -#. i18n: file dumpselectionbase.ui line 426 -#: rc.cpp:171 -#, no-c-format -msgid "Recursions" -msgstr "Rekursioner" - -#. i18n: file dumpselectionbase.ui line 440 -#: rc.cpp:174 -#, no-c-format -msgid "Call Chain" -msgstr "Kalde-kæde" - -#. i18n: file dumpselectionbase.ui line 470 -#: rc.cpp:177 -#, no-c-format -msgid "Custom profiler options:" -msgstr "Brugervalgte profil-indstillinger:" - -#. i18n: file dumpselectionbase.ui line 508 -#: rc.cpp:180 -#, no-c-format -msgid "Run New Profile" -msgstr "Kør ny profil" - -#. i18n: file dumpselectionbase.ui line 520 -#: rc.cpp:183 -#, no-c-format -msgid "Info" -msgstr "Info" - -#. i18n: file dumpselectionbase.ui line 531 -#: rc.cpp:186 -#, no-c-format -msgid "Dump reason:" -msgstr "Dump-grund:" - -#. i18n: file dumpselectionbase.ui line 544 -#: rc.cpp:189 -#, no-c-format -msgid "Event summary:" -msgstr "Begivenheds sammendrag:" - -#. i18n: file dumpselectionbase.ui line 561 -#: rc.cpp:195 -#, no-c-format -msgid "Sum" -msgstr "Sum" - -#. i18n: file dumpselectionbase.ui line 579 -#: rc.cpp:198 -#, no-c-format -msgid "Miscellaneous:" -msgstr "Diverse:" - -#. i18n: file dumpselectionbase.ui line 617 -#: rc.cpp:201 -#, no-c-format -msgid "Show" -msgstr "Vis" - -#. i18n: file dumpselectionbase.ui line 625 -#: rc.cpp:204 -#, no-c-format -msgid "Compare" -msgstr "Sammenlign" - -#. i18n: file dumpselectionbase.ui line 637 -#: rc.cpp:207 -#, no-c-format -msgid "State" -msgstr "Tilstand" - -#. i18n: file dumpselectionbase.ui line 656 -#: rc.cpp:210 -#, no-c-format -msgid "Update" -msgstr "Opdatér" - -#. i18n: file dumpselectionbase.ui line 664 -#: rc.cpp:213 -#, no-c-format -msgid "Every [s]:" -msgstr "Hver [s]:" - -#. i18n: file dumpselectionbase.ui line 677 -#: rc.cpp:216 -#, no-c-format -msgid "Counter" -msgstr "Tæller" - -#. i18n: file dumpselectionbase.ui line 699 -#: rc.cpp:222 -#, no-c-format -msgid "Dumps Done" -msgstr "Dump færdig" - -#. i18n: file dumpselectionbase.ui line 713 -#: rc.cpp:225 -#, no-c-format -msgid "Is Collecting" -msgstr "Samler" - -#. i18n: file dumpselectionbase.ui line 727 -#: rc.cpp:228 -#, no-c-format -msgid "Executed" -msgstr "Kørt" - -#. i18n: file dumpselectionbase.ui line 740 -#: rc.cpp:231 -#, no-c-format -msgid "Basic Blocks" -msgstr "Basale blokke" - -#. i18n: file dumpselectionbase.ui line 754 -#: callmapview.cpp:63 rc.cpp:234 rc.cpp:339 -#, no-c-format -msgid "Calls" -msgstr "Kald" - -#. 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 "Forskellige" - -#. i18n: file dumpselectionbase.ui line 824 -#: configdlg.cpp:58 rc.cpp:249 -#, no-c-format -msgid "ELF Objects" -msgstr "ELF-Objekter" - -#. i18n: file dumpselectionbase.ui line 838 -#: rc.cpp:252 -#, no-c-format -msgid "Functions" -msgstr "Funktioner" - -#. i18n: file dumpselectionbase.ui line 852 -#: rc.cpp:255 -#, no-c-format -msgid "Contexts" -msgstr "Sammenhænge" - -#. i18n: file dumpselectionbase.ui line 890 -#: rc.cpp:258 -#, no-c-format -msgid "Stack trace:" -msgstr "Stak-spor:" - -#. i18n: file dumpselectionbase.ui line 898 -#: rc.cpp:261 -#, no-c-format -msgid "Sync." -msgstr "Sync." - -#. i18n: file dumpselectionbase.ui line 950 -#: callmapview.cpp:61 rc.cpp:276 rc.cpp:321 -#, no-c-format -msgid "Location" -msgstr "Sted" - -#. i18n: file dumpselectionbase.ui line 976 -#: rc.cpp:279 -#, no-c-format -msgid "Start" -msgstr "Start" - -#. i18n: file dumpselectionbase.ui line 1001 -#: rc.cpp:282 -#, no-c-format -msgid "Zero" -msgstr "Zero" - -#. i18n: file dumpselectionbase.ui line 1009 -#: rc.cpp:285 -#, no-c-format -msgid "Dump" -msgstr "Dump" - -#. i18n: file dumpselectionbase.ui line 1021 -#: rc.cpp:288 -#, no-c-format -msgid "Messages" -msgstr "Beskeder" - -#. i18n: file dumpselectionbase.ui line 1045 -#: rc.cpp:291 -#, no-c-format -msgid "Kill Run" -msgstr "Dræb kørsel" - -#. i18n: file functionselectionbase.ui line 41 -#: rc.cpp:300 -#, no-c-format -msgid "&Search:" -msgstr "&Søg:" - -#. i18n: file functionselectionbase.ui line 73 -#: rc.cpp:306 -#, no-c-format -msgid "Group" -msgstr "Gruppe" - -#. i18n: file partselectionbase.ui line 60 -#: rc.cpp:327 -#, no-c-format -msgid "(no trace parts)" -msgstr "(ingen spor-parter)" - -#. i18n: file stackselectionbase.ui line 16 -#: rc.cpp:330 -#, no-c-format -msgid "Stack Selection" -msgstr "Stak-valg" - -#. i18n: file stackselectionbase.ui line 42 -#: rc.cpp:336 -#, no-c-format -msgid "Cost2" -msgstr "Omkostning 2" - -#: treemap.cpp:1281 -#, c-format -msgid "Text %1" -msgstr "Tekst %1" - -#: treemap.cpp:2809 -msgid "Recursive Bisection" -msgstr "Rekursiv bisektion" - -#: treemap.cpp:2810 -msgid "Columns" -msgstr "Søjler" - -#: treemap.cpp:2811 -msgid "Rows" -msgstr "Rækker" - -#: treemap.cpp:2812 -msgid "Always Best" -msgstr "Altid bedst" - -#: treemap.cpp:2813 -msgid "Best" -msgstr "Bedste" - -#: treemap.cpp:2814 -msgid "Alternate (V)" -msgstr "Alternér (V)" - -#: treemap.cpp:2815 -msgid "Alternate (H)" -msgstr "Alternér (H)" - -#: treemap.cpp:2872 -msgid "Nesting" -msgstr "Indeni hinanden" - -#: treemap.cpp:2875 -msgid "Correct Borders Only" -msgstr "Kun rigtige kanter" - -#: treemap.cpp:2877 treemap.cpp:2878 treemap.cpp:2879 treemap.cpp:2880 -#, c-format -msgid "Width %1" -msgstr "Bredde %1" - -#: callmapview.cpp:321 treemap.cpp:2889 -msgid "Shading" -msgstr "Skygning" - -#: treemap.cpp:2902 -msgid "Visible" -msgstr "Synlig" - -#: treemap.cpp:2903 -msgid "Take Space From Children" -msgstr "Tag plads fra afledte" - -#: treemap.cpp:2905 -msgid "Top Left" -msgstr "For oven til venstre" - -#: treemap.cpp:2906 -msgid "Top Center" -msgstr "For oven i midten" - -#: treemap.cpp:2907 -msgid "Top Right" -msgstr "For oven til højre" - -#: treemap.cpp:2909 -msgid "Bottom Center" -msgstr "For neden i midten" - -#: treemap.cpp:2910 -msgid "Bottom Right" -msgstr "For neden til højre" - -#: treemap.cpp:2987 -msgid "No %1 Limit" -msgstr "Ingen %1-grænse" - -#: callmapview.cpp:243 treemap.cpp:3039 -msgid "No Area Limit" -msgstr "Ingen område-grænse" - -#: callmapview.cpp:258 treemap.cpp:3045 -msgid "Area of '%1' (%2)" -msgstr "Område for '%1' (%2)" - -#: treemap.cpp:3056 treemap.cpp:3067 -#, c-format -msgid "" -"_n: 1 Pixel\n" -"%n Pixels" -msgstr "" -"1 Pixel\n" -"%n Pixels" - -#: callmapview.cpp:264 treemap.cpp:3071 -msgid "Double Area Limit (to %1)" -msgstr "Fordobl områdegrænse (til %1)" - -#: treemap.cpp:3073 -msgid "Halve Area Limit (to %1)" -msgstr "Halvér områdegrænse (til %1)" - -#: callmapview.cpp:187 treemap.cpp:3101 -msgid "No Depth Limit" -msgstr "Ingen dybdegrænse" - -#: callmapview.cpp:198 treemap.cpp:3107 -msgid "Depth of '%1' (%2)" -msgstr "Dybde på '%1' (%2)" - -#: treemap.cpp:3118 -#, c-format -msgid "Depth %1" -msgstr "Dybde %1" - -#: treemap.cpp:3122 -msgid "Decrement (to %1)" -msgstr "Gå ned (til %1)" - -#: treemap.cpp:3124 -msgid "Increment (to %1)" -msgstr "Gå op (til %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 "" -"Kalderafbildning" -"

      Denne graf viser det indlejrede hierarki af alle kaldere af den aktiverede " -"funktion. Hver farvet rektangel repræsenterer en funktion; dets størrelse " -"forsøger at være proportional med den omkostning der er brugt deri men den " -"aktive funktion kører (der er imidlertid tegningsbegrænsninger).

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

      Denne graf viser det indlejrede hierarki af alle kaldere af den aktiverede " -"funktion. Hver farvet rektangel repræsenterer en funktion; dets størrelse " -"forsøger at være proportional med den omkostning der er brugt deri men den " -"aktive funktion kører (der er imidlertid tegningsbegrænsninger).

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

      Valgmuligheder for udseendet findes i sammenhængsmenuen. For at få nøjagtige " -"størrelsesproportioner vælges 'Skjul forkerte kanter'. Da denne tilstand kan " -"have meget stort tidsforbrug, vil du muligvis begrænse den maksimalt " -"tegnede indlejring først. 'Bedste' afgør opdelingsretningen for afledte ud fra " -"den given aspekt-ratio. 'Altid bedst' beslutter sig for resten af pladsen hvad " -"sideordnede angår. 'Ignorér proportioner' tager plads til tegning af " -"funktionsnavne før hver afledt tegnes. Bemærk at " -"størrelsesproportioner kan blive meget forkerte.

      " -"

      Dette er en Trækort kontrol. Tastaturnavigation er mulig med " -"venstre/højre piletaster for at gå sidelæns, og op/ned piletaster for at gå en " -"indlejringsniveau op/ned. Return aktiverer dette punkt.

      " - -#: callmapview.cpp:167 -msgid "Go To" -msgstr "Gå til" - -#: callmapview.cpp:184 -msgid "Stop at Depth" -msgstr "Stop ved dybde" - -#: callmapview.cpp:190 -msgid "Depth 10" -msgstr "Dybde 10" - -#: callmapview.cpp:192 -msgid "Depth 15" -msgstr "Dybde 15" - -#: callmapview.cpp:194 -msgid "Depth 20" -msgstr "Dybde 20" - -#: callmapview.cpp:204 -msgid "Decrement Depth (to %1)" -msgstr "Sæt dybde ned (til %1)" - -#: callmapview.cpp:205 -msgid "Increment Depth (to %1)" -msgstr "Sæt dybde up (til %1)" - -#: callmapview.cpp:209 -msgid "Stop at Function" -msgstr "Stop ved funktion" - -#: callmapview.cpp:210 -msgid "No Function Limit" -msgstr "Ingen funktionsgrænse" - -#: callmapview.cpp:240 -msgid "Stop at Area" -msgstr "Stop ved område" - -#: callmapview.cpp:246 -msgid "50 Pixels" -msgstr "50 Pixel" - -#: callmapview.cpp:248 -msgid "100 Pixels" -msgstr "100 Pixel" - -#: callmapview.cpp:250 -msgid "200 Pixels" -msgstr "200 Pixel" - -#: callmapview.cpp:252 -msgid "500 Pixels" -msgstr "500 Pixel" - -#: callmapview.cpp:266 -msgid "Half Area Limit (to %1)" -msgstr "Halvér områdegrænse (til %1)" - -#: callmapview.cpp:273 -msgid "Visualisation" -msgstr "Visualisering" - -#: callmapview.cpp:277 -msgid "Split Direction" -msgstr "Opdelt retning" - -#: callmapview.cpp:279 -msgid "Skip Incorrect Borders" -msgstr "Overspring forkerte grænser" - -#: callmapview.cpp:284 -msgid "Border Width" -msgstr "Kantbredde" - -#: callmapview.cpp:285 -msgid "Border 0" -msgstr "Kant 0" - -#: callmapview.cpp:288 -msgid "Border 1" -msgstr "Kant 1" - -#: callmapview.cpp:290 -msgid "Border 2" -msgstr "Kant 2" - -#: callmapview.cpp:292 -msgid "Border 3" -msgstr "Kant 3" - -#: callmapview.cpp:297 -msgid "Draw Symbol Names" -msgstr "Tegn symbolnavne" - -#: callmapview.cpp:298 -msgid "Draw Cost" -msgstr "Tegn omkostning" - -#: callmapview.cpp:299 -msgid "Draw Location" -msgstr "Tegn sted" - -#: callmapview.cpp:300 -msgid "Draw Calls" -msgstr "Tegn kald" - -#: callmapview.cpp:431 -msgid "Call Map: Current is '%1'" -msgstr "Kalde-kort: Nuværende er '%1'" - -#: callmapview.cpp:599 -msgid "(no function)" -msgstr "(ingen funktion)" - -#: callmapview.cpp:741 callmapview.cpp:858 -msgid "(no call)" -msgstr "(intet kald)" - -#: cachegrindloader.cpp:141 -msgid "Import filter for Cachegrind/Callgrind generated profile data files" -msgstr "Importfilter for Cachegrind/Callgrind-genererede profildata-filer" - -#: cachegrindloader.cpp:738 -#, c-format -msgid "Loading %1" -msgstr "Indlæser %1" - -#: callview.cpp:47 callview.cpp:51 -msgid "Count" -msgstr "Tæl" - -#: 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 "" -"Liste af direkte kaldere" -"

      Denne liste viser alle funktioner der kalder den valgte direkte, sammen med " -"en kald-tælling og omkostninger forbrugt i den aktuelle funktion der bliver " -"kaldt fra funktionen fra listen.

      " -"

      En ikon i stedet for en inklusivomkostning, angiver at dette er et kald " -"indeni en rekursiv cyklus. En inklusivomkostning giver ingen mening her.

      " -"

      Vælges en funktion gøres den til den aktuelle i dette informationspanel. Er " -"der to paneler (Opdelt tilstand), ændres funktionen i det andet panel i " -"stedet.

      " - -#: 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 "" -"Liste af direkte kaldte" -"

      Denne liste viser alle funktioner kaldt af den aktuelle direkte, sammen med " -"en kald-tæller og omkostningerne forbrugt i denne funktion mens den bliver " -"kaldt fra den valgte funktion.

      " -"

      Vælges en funktion gøres den til den aktuelle i dette informationspanel. Er " -"der to paneler (Opdelt tilstand), ændres funktionen i det andet panel i " -"stedet.

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

      ...at Hvad er dette?-hjælpen for hver GUI-kontrol\n" -"i KCachegrind indeholder detaljeret brugsinformation for kontrollen?\n" -"Det anbefales stærkt at læse i det mindste disse hjælpetekster ved første\n" -"brug. Bed om Hvad er dette?-hjælp ved at trykke på\n" -"Shift-F1 og klikke på kontrollen.

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

      ...at du kan få profilinformation på instruktionsniveau\n" -"med Calltree når du bruger flaget --dump-instr=yes?\n" -"Brug Assembler-visningen for instruktionsannotationer.\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 "" -"

      ...at du kan bruge Alt-Venstre/Højre-taster på dit tastatur til at\n" -"gå tilbage/fremad i den aktive objekt-historikken ?

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

      ...at du kan navigere i Kaldte/Kalder-kortvisningen ved brug af\n" -"piletaster? Brug venstre/højre til sidelæns bevægelser;\n" -"brug op/ned til at et indlejringsniveau op eller ned. For at vælge\n" -"dette punkt trykkes på mellemrumstasten og for at \n" -"aktivere det Return.\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 "" -"

      ...at du kan navigere i Kaldegraf-visningen ved brug af\n" -"piletaster? Brug op/ned for at gå et kaldeniveau op/ned,\n" -"alternerende mellem kald og funktioner. Brug venstre/højre\n" -"til sidelæns ændringer fra det valgte kald. For at gøre dette\n" -"punkt til det valgte trykkes på Return.\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 "" -"

      ...at du kan finde en funktion hurtigt ved at indtaste en del\n" -"af dens navn (ikke versalfølsomt) i redigeringslinjen på\n" -"værktøjslinjen og trykke på Enter?

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

      ...at du kan tilknytte selvvalgte farver til \n" -"ELF-objekter/C++ klasser/Kildefiler for graf-kolorering\n" -"i Opsætning->Indstil 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 "" -"

      ...at du kan se om der er fejlretningsinfo tilstede for en valgt \n" -"funktion ved at kigge på stedetiketten i Info-fanebladet eller\n" -"kildelistningsoverskriften i kildefanebladet?

      \n" -"

      Navnet på kildefilen (med endelse) skal være der.\n" -"Hvis KCachegrind stadig ikke viser kilden, så sørg for at du\n" -"har tilføjet kataloget for kildefilen til\n" -"Kildekataloger-listen i indstillingen.\n" - -#: tips.cpp:69 -msgid "" -"

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

      \n" -msgstr "" -"

      ...at du kan indstille om KCachgrind skal vise\n" -"absolutte begivenhedstællere eller relative (procent-visning)?

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

      ...at du kan indstille det maksimale antal punkter\n" -"for alle funktionslister i KCachegrind? Begrænsning af antallet\n" -"af punkter gøres for at få et hurtigt reagerende GUI. Det sidste punkt\n" -"på listen vil vise dig antallet af oversprungne funktioner, sammen\n" -"med en omkostningsbetingelse for disse oversprungne funktioner.

      \n" -"

      For at aktivere en funktion med lille omkostning, søges efter den og den\n" -"vælges i den flade profil. Valg af funktioner med lille omkostning vil\n" -"midlertidigt tilføje dem til den flade profilliste.

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

      ...at dækningsfanebladet - i modsætning til kaldliste-fanebladet -\n" -"viser alle funktioner der kalder den valgte funktion\n" -"(øvre del) / bliver kaldet af den valgte funktion (nedre del),\n" -"ligegyldigt hvor mange funktioner der er mellem dem på stakken?

      \n" -"

      Eksempler:

      \n" -"

      En indgang i den øvre liste for funktion foo1() med en værdi på 50%\n" -"med funktion bar() valgt betyder at 50% af alle omkostninger for funktionen\n" -"bar() skete mens den blev kaldet fra funktion foo1().

      \n" -"

      En indgang i den nederste liste for funktion foo2() med en værdi på 50%\n" -"med funktion bar() valgt betyder at 50% af alle omkostninger af funktionen\n" -"bar() skete mens foo2() blev kaldet fra bar().

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

      ...at hvis man venter på værktøjsvink indeni et trækort\n" -"så vil listen af navne på de indlejrede rektangler muse-\n" -"markøren er over vises?

      \n" -"

      Punkter fra denne liste kan vælges ved at trykke på\n" -"højre museknap.

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

      ...at du kan begrænse de omkostningstællere der vises til kun\n" -"nogle få parter af hele sporet ved at vælge disse dele i\n" -"\"Spor-valg\" dokbar?

      \n" -"

      For at generer flere parter i en profileringskørsel med\n" -"cachegrind, bruges f.eks. flaget --cachedumps=xxx for parter\n" -"af længde på xxx basale blokke (En basal blok er en kørsel\n" -"af ikke-forgrenede assembler-udsagn indeni din program-\n" -"kode).

      \n" - -#: configdlg.cpp:60 -msgid "Source Files" -msgstr "Kildefiler" - -#: configdlg.cpp:61 -msgid "C++ Classes" -msgstr "C++ Klasser" - -#: configdlg.cpp:62 -msgid "Function (no Grouping)" -msgstr "Funktion (ingen gruppering)" - -#: configdlg.cpp:157 configdlg.cpp:350 configdlg.cpp:371 -msgid "(always)" -msgstr "(altid)" - -#: configdlg.cpp:210 -msgid "KCachegrind Configuration" -msgstr "KCachegrind indstilling" - -#: configdlg.cpp:211 -msgid "" -"The Maximum Number of List Items should be below 500.The previous set value " -"(%1) will still be used." -msgstr "" -"Det maksimale antal listepunkter skal være under 500. Den tidligere satte værdi " -"(%1) vil stadig blive brugt." - -#: configdlg.cpp:384 -msgid "Choose Source Folder" -msgstr "Vælg kildemappe" - -#: partgraph.cpp:167 -#, c-format -msgid "Profile Part %1" -msgstr "Profil part %1" - -#: partgraph.cpp:226 -msgid "(no trace)" -msgstr "(intet spor)" - -#: partgraph.cpp:229 -msgid "(no part)" -msgstr "(ingen part)" - -#: partview.cpp:51 -msgid "Comment" -msgstr "Kommentar" - -#: 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 "" -"Spor-part-liste" -"

      Denne liste viser alle spor-parter for det indlæste spor. For hver part " -"vises egen-/inklusivomkostninger for den valgte funktion der bruges i parten; " -"procentomkostninger er altid relativt til den totale omkostning " -"for parten (ikke til hele sporet som i spor-part-overblikket). Kald der " -"sker til/fra denne funktion indeni spor-parten, vises også.

      " -"

      Ved at vælge en eller flere spor-parter fra listen, vil omkostningerne der " -"vises globalt i KCachegrind begrænses til netop dem i de valgte parter. Hvis " -"ingen er markeret på listen, vælges alle spor-parter implicit.

      " -"

      Dette er en multivalg-liste. Du kan vælge områder ved at trække musen eller " -"bruge SHIFT/CTRL-tasterne. Markering/afmarkering af spor-parter kan også " -"udføres ved brug af det dokbare spor-parts overblik. Den understøtter også " -"multivalg.

      " -"

      Bemærk at listen er skjult hvis der kun er indlæst én spor-part.

      " - -#: partview.cpp:106 -msgid "Select '%1'" -msgstr "Vælg '%1'" - -#: partview.cpp:107 -msgid "Hide '%1'" -msgstr "Skjul '%1'" - -#: partview.cpp:111 -msgid "Hide Selected" -msgstr "Skjul valgt" - -#: partview.cpp:112 -msgid "Show All" -msgstr "Vis alt" - -#~ msgid "(unnamed)" -#~ msgstr "(unavngiven)" - -#~ msgid "Function Query" -#~ msgstr "Funktionsforespørgsel" - -#~ msgid "Type part of a function name (insensitive) to get a list of matching functions from current function group" -#~ msgstr "Skriv en del af et funktionsnavn (ikke versalfølsomt) for at få en liste af matchende funktioner fra denne funktionsgruppe" diff --git a/tde-i18n-da/messages/tdesdk/tdecachegrind.po b/tde-i18n-da/messages/tdesdk/tdecachegrind.po new file mode 100644 index 00000000000..2cf3c7709cc --- /dev/null +++ b/tde-i18n-da/messages/tdesdk/tdecachegrind.po @@ -0,0 +1,2938 @@ +# Danish translation of tdecachegrind +# Copyright (C). +# +# Erik Kjær Pedersen , 2004, 2005. +# Rune Rønde Laursen , 2004, 2005. +msgid "" +msgstr "" +"Project-Id-Version: tdecachegrind\n" +"POT-Creation-Date: 2008-07-08 01:21+0200\n" +"PO-Revision-Date: 2005-12-29 08:33-0500\n" +"Last-Translator: Erik Kjær Pedersen \n" +"Language-Team: Danish \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" +"Plural-Forms: \n" + +#: instritem.cpp:106 sourceitem.cpp:86 +msgid "Active call to '%1'" +msgstr "Aktivt kald til '%1'" + +#: instritem.cpp:108 sourceitem.cpp:88 +msgid "" +"_n: %n call to '%1'\n" +"%n calls to '%1'" +msgstr "" +"%n kald til '%1'\n" +"%n kald til '%1'" + +#: instritem.cpp:137 +msgid "Jump %1 of %2 times to 0x%3" +msgstr "Spring %1 ud af %2 gange til 0x%3" + +#: instritem.cpp:142 +msgid "Jump %1 times to 0x%2" +msgstr "Spring %1 gange til 0x%2" + +#: instritem.cpp:185 sourceitem.cpp:169 +msgid "(cycle)" +msgstr "(cykel)" + +#: tracedata.cpp:157 +msgid "Abstract Item" +msgstr "Abstrakt punkt" + +#: tracedata.cpp:158 +msgid "Cost Item" +msgstr "Omkostningspunkt" + +#: tracedata.cpp:159 +msgid "Part Source Line" +msgstr "Part kildelinje" + +#: tracedata.cpp:160 +msgid "Source Line" +msgstr "Kildelinje" + +#: tracedata.cpp:161 +msgid "Part Line Call" +msgstr "Part linjekald" + +#: tracedata.cpp:162 +msgid "Line Call" +msgstr "Linjekald" + +#: tracedata.cpp:163 +msgid "Part Jump" +msgstr "Part spring" + +#: tracedata.cpp:164 +msgid "Jump" +msgstr "Spring" + +#: tracedata.cpp:165 +msgid "Part Instruction" +msgstr "Part instruktion" + +#: tracedata.cpp:166 +msgid "Instruction" +msgstr "Instruktion" + +#: tracedata.cpp:167 +msgid "Part Instruction Jump" +msgstr "Part instruktionsspring" + +#: tracedata.cpp:168 +msgid "Instruction Jump" +msgstr "Instruktionsspring" + +#: tracedata.cpp:169 +msgid "Part Instruction Call" +msgstr "Part instruktionskald" + +#: tracedata.cpp:170 +msgid "Instruction Call" +msgstr "Instruktionskald" + +#: tracedata.cpp:171 +msgid "Part Call" +msgstr "Part kald" + +#: tracedata.cpp:172 +msgid "Call" +msgstr "Kald" + +#: tracedata.cpp:173 +msgid "Part Function" +msgstr "Part funktion" + +#: tracedata.cpp:174 +msgid "Function Source File" +msgstr "Funktion kildefil" + +#. 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 "Funktion" + +#: tracedata.cpp:176 +msgid "Function Cycle" +msgstr "Funktionscykel" + +#: tracedata.cpp:177 +msgid "Part Class" +msgstr "Part klasse" + +#: tracedata.cpp:178 +msgid "Class" +msgstr "Klasse" + +#: tracedata.cpp:179 +msgid "Part Source File" +msgstr "Part kildefil" + +#: tracedata.cpp:180 +msgid "Source File" +msgstr "Kildefil" + +#: tracedata.cpp:181 +msgid "Part ELF Object" +msgstr "Part ELF-objekt" + +#: tracedata.cpp:182 +msgid "ELF Object" +msgstr "ELF-objekt" + +#: partview.cpp:46 tracedata.cpp:183 +msgid "Profile Part" +msgstr "Profilpart" + +#: tracedata.cpp:184 +msgid "Program Trace" +msgstr "Program-spor" + +#: tracedata.cpp:245 +msgid "%1 from %2" +msgstr "%1 fra %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 "(ukendt)" + +#: tracedata.cpp:2587 +msgid "(no caller)" +msgstr "(ingen kalder)" + +#: tracedata.cpp:2594 tracedata.cpp:2613 +msgid "%1 via %2" +msgstr "%1 via %2" + +#: tracedata.cpp:2603 +msgid "(no callee)" +msgstr "(ingen kaldt)" + +#: tracedata.cpp:4471 +msgid "(not found)" +msgstr "(ikke fundet)" + +#: tracedata.cpp:5021 +msgid "Recalculating Function Cycles..." +msgstr "Genberegner funktionscykler..." + +#. i18n: file dumpselectionbase.ui line 550 +#: callmapview.cpp:59 partselection.cpp:58 rc.cpp:192 +#, no-c-format +msgid "Name" +msgstr "Navn" + +#. 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 "Omkostning" + +#: partselection.cpp:151 +msgid "Profile Part Overview: Current is '%1'" +msgstr "Profilpart overblik: Denne er '%1'" + +#: partselection.cpp:287 +msgid "Deselect" +msgstr "Afmarkér" + +#: partselection.cpp:287 partselection.cpp:311 +msgid "Select" +msgstr "Markér" + +#: partselection.cpp:292 +msgid "Select All Parts" +msgstr "Markér alle parter" + +#: partselection.cpp:294 +msgid "Visible Parts" +msgstr "Synlige parter" + +#: partselection.cpp:296 +msgid "Hide Selected Parts" +msgstr "Skjul markerede parter" + +#: partselection.cpp:297 +msgid "Unhide Hidden Parts" +msgstr "Afskjul skjulte parter" + +#: partselection.cpp:302 toplevel.cpp:1692 +msgid "Go Back" +msgstr "Gå tilbage" + +#: callgraphview.cpp:2571 partselection.cpp:320 +msgid "Visualization" +msgstr "Visualisering" + +#: partselection.cpp:322 +msgid "Partitioning Mode" +msgstr "Partitionerings-tilstand" + +#: partselection.cpp:323 +msgid "Diagram Mode" +msgstr "Diagramtilstand" + +#: partselection.cpp:324 +msgid "Zoom Function" +msgstr "Forstørrelses-funktion" + +#: partselection.cpp:325 +msgid "Show Direct Calls" +msgstr "Vis direkte kald" + +#: partselection.cpp:326 +msgid "Increment Shown Call Levels" +msgstr "Forøg viste kald-niveauer" + +#: partselection.cpp:340 +msgid "Draw Names" +msgstr "Tegn navne" + +#: partselection.cpp:341 +msgid "Draw Costs" +msgstr "Tegn omkostninger" + +#: callmapview.cpp:303 partselection.cpp:342 +msgid "Ignore Proportions" +msgstr "Ignorér proportioner" + +#: partselection.cpp:343 +msgid "Draw Frames" +msgstr "Tegn rammer" + +#: callmapview.cpp:304 partselection.cpp:344 treemap.cpp:2887 +msgid "Allow Rotation" +msgstr "Tillad rotation" + +#: partselection.cpp:359 +msgid "Hide Info" +msgstr "Skjul info" + +#: partselection.cpp:361 +msgid "Show Info" +msgstr "Vis info" + +#: partselection.cpp:541 +msgid "(no trace loaded)" +msgstr "(intet spor indlæst)" + +#: costtypeview.cpp:42 +msgid "Event Type" +msgstr "Begivenhedstype" + +#. 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 "Inkl." + +#. 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 "Selv" + +#: costtypeview.cpp:45 +msgid "Short" +msgstr "Kort" + +#: costtypeview.cpp:47 +msgid "Formula" +msgstr "Formel" + +#: 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 "" +"Omkostningstype-liste" +"

      Denne liste viser alle tilgængelige omkostningstyper og hvad " +"egen/inklusivomkostningerne er for aktuelle funktion for den " +"omkostningstype.

      " +"

      Ved at vælge en omkostningstype fra listen, ændrer du omkostningstypen for " +"omkostninger vist overalt i KCachegrind til at være den valgte.

      " + +#: costtypeview.cpp:98 +msgid "Set Secondary Event Type" +msgstr "Sæt sekundær begivenhedstype" + +#: costtypeview.cpp:100 +msgid "Remove Secondary Event Type" +msgstr "Fjern sekundær begivenhedstype" + +#: costtypeview.cpp:105 +msgid "Edit Long Name" +msgstr "Redigér langt navn" + +#: costtypeview.cpp:106 +msgid "Edit Short Name" +msgstr "Redigér kort navn" + +#: costtypeview.cpp:107 +msgid "Edit Formula" +msgstr "Redigér formel" + +#: costtypeview.cpp:115 +msgid "New Cost Type ..." +msgstr "Ny omkostningstype ..." + +#: costtypeview.cpp:149 costtypeview.cpp:154 +#, c-format +msgid "New%1" +msgstr "Ny%1" + +#: costtypeview.cpp:155 +#, c-format +msgid "New Cost Type %1" +msgstr "Ny omkostningstype %1" + +#: sourceitem.cpp:125 +msgid "Jump %1 of %2 times to %3" +msgstr "Spring %1 ud af %2 gange til %3" + +#: sourceitem.cpp:130 +msgid "Jump %1 times to %2" +msgstr "Spring %1 gange til %2" + +#: costlistitem.cpp:60 +#, c-format +msgid "" +"_n: (%n item skipped)\n" +"(%n items skipped)" +msgstr "" +"(%n punkt oversprunget)\n" +"(%n punkter oversprunget)" + +#: traceitemview.cpp:53 +msgid "No description available" +msgstr "Ingen beskrivelse tilgængelig" + +#. i18n: file partselectionbase.ui line 16 +#: rc.cpp:324 toplevel.cpp:281 toplevel.cpp:581 +#, no-c-format +msgid "Parts Overview" +msgstr "Part-overblik" + +#: 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 "" +"Part-overblik" +"

      Et spor består af flere spor-parter når der er flere spor-filer fra en " +"profil-kørsel. Spor-part-overblikkets dokbare viser disse, ordnet vandret efter " +"kørselstid. Rektanglernes størrelser er proportionale med den totale omkostning " +"forbrugt i parterne. Du kan vælge en eller flere parter for at begrænse de " +"viste omkostninger til kun disse parter.

      " +"

      Parterne er yderligere underinddelt: der er en partitionering og en " +"kaldt-opdelt tilstand: " +"

        " +"
      • Partitionering: Du ser partitioneringen i grupper for en spor-part, i " +"henhold til den valgte gruppe. Hvis f.eks. ELF-objektgrupper er valgt, ser du " +"farvede rektangler for hvert brugt ELF-objekt (delt bibliotek eller kørbar), " +"med størrelse der følger den omkostning der er brugt deri.
      • " +"
      • Kalder: Et rektangel der afspejler den inklusive omkostning af den valgte " +"funktion i spor-parten vises. Denne er igen opdelt i mindre rektangler for at " +"vise kaldernes omkostninger.

      " + +#: toplevel.cpp:318 +msgid "Top Cost Call Stack" +msgstr "Topomkostning kaldstak" + +#: 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 "" +"Top-omkostning kald-stak" +"

      Dette er en rent forestillet 'mest sandsynlig' kald-stak. Den er bygget op " +"startende med den valgte funktion og tilføjer så kaldere/kaldte med den højeste " +"omkostning foroven og forneden.

      " +"

      Omkostning- og Kald-søjlerne viser omkostninger brugt på alle " +"kald fra funktionen i linjen ovenfor.

      " + +#: toplevel.cpp:333 +msgid "Flat Profile" +msgstr "Flad profil" + +#: 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 "" +"Flad profil" +"

      Den flade profil indeholder en gruppe og en funktionmarkeringsliste. " +"Gruppelisten indeholder alle grupper hvor omkostninger er brugt, afhængig af " +"valgte gruppetype. Gruppelisten er skjult når gruppetypen 'Funktion' er valgt." +"

      " +"

      Funktionslisten indeholder funktionerne for den valgte gruppe (eller alle af " +"'Funktion' gruppetype), ordnet efter de omkostninger der brugt deri. Funktioner " +"med omkostninger mindre end 1% er skjult i standardopsætningen.

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

      Denne dokbare viser i den øverste del listen af indlæsbare profil-dump i " +"alle underkataloger af: " +"

        " +"
      • nuværende arbejdskatalog for KCachegrind, dvs hvor den blev startet fra, og " +"
      • standard profil-dump katalog givet i opsætningen.
      " +"Listen er sorteret efter målkommandoen profileret i det tilsvarende dump.

      " +"

      Ved valg af et profil-dump, vises information for den i det nederste område " +"af den dokbare: " +"

        " +"
      • Indstillinger tillader dig at se den profilerede kommando og " +"profil-tilvalg for denne dump. Ved at ændre et punkt, laves en ny (endnu ikke " +"eksisterende) profil-skabelon. Tryk på Kør profil " +"for at starte en profil-kørsel med disse tilvalg i baggrunden." +"
      • Info giver detaljeret info om det valgte dump såsom et sammendrag " +"for begivenhedens omkostning og den simulerede cache's egenskaber. " +"
      • Tilstand er kun tilgængelig for profil-kørsler der kører lige nu. " +"Tryk på Opdatér for at se forskellige tællere for kørslen, og et " +"stak-spor for positionen i programmet profileret. Afkryds Hver" +"-tilvalget for at lade KCachegrind trække disse data regulært. Afkryds " +"Sync-tilvalget for at lade den dokbare aktivere topfunktionen i den " +"indlæste dump.

      " + +#: toplevel.cpp:455 +msgid "&Duplicate" +msgstr "&Duplikér" + +#: toplevel.cpp:459 +msgid "" +"Duplicate Current Layout" +"

      Make a copy of the current layout.

      " +msgstr "Duplikér dette layout

      Lav en kopi af dette layout.

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

      Delete current layout and make the previous active.

      " +msgstr "" +"Fjern dette layout" +"

      Slet dette layout og gør det tidligere aktivt.

      " + +#: toplevel.cpp:470 +msgid "&Go to Next" +msgstr "&Gå til næste" + +#: toplevel.cpp:474 +msgid "Go to Next Layout" +msgstr "Gå til næste layout" + +#: toplevel.cpp:477 +msgid "&Go to Previous" +msgstr "&Gå til forrige" + +#: toplevel.cpp:481 +msgid "Go to Previous Layout" +msgstr "Gå til forrige layout" + +#: toplevel.cpp:484 +msgid "&Restore to Default" +msgstr "&Nulstil til standard" + +#: toplevel.cpp:487 +msgid "Restore Layouts to Default" +msgstr "Nulstiller layout til standard" + +#: toplevel.cpp:490 +msgid "&Save as Default" +msgstr "&Gem som standard" + +#: toplevel.cpp:493 +msgid "Save Layouts as Default" +msgstr "Gem layout som standard" + +#: toplevel.cpp:504 +msgid "New

      Open new empty KCachegrind window.

      " +msgstr "Ny

      Åbn nyt tomt KCachegrind-vindue.

      " + +#: toplevel.cpp:507 +msgid "&Add..." +msgstr "&Tilføj..." + +#: toplevel.cpp:510 +msgid "" +"Add Profile Data" +"

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

      " +msgstr "" +"Tilføj profildata" +"

      Dette åbner endnu en profildata-fil i nuværende vindue.

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

      This loads any new created parts, too.

      " +msgstr "" +"Genindlæs profildata" +"

      Dette indlæser også alle nyligt oprettede parter.

      " + +#: toplevel.cpp:526 +msgid "&Export Graph" +msgstr "&Eksportér graf" + +#: toplevel.cpp:530 +msgid "" +"Export Call Graph" +"

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

      " +msgstr "" +"Eksportér kald-graf" +"

      Genererer en fil med endelsen .dot for værktøjerne i GraphViz-pakken.

      " + +#: toplevel.cpp:536 +msgid "&Force Dump" +msgstr "&Påtving dump" + +#: 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 "" +"Påtving dump" +"

      Dette tvinger en dump for en Callgrind profil-kørsel i det aktuelle katalog. " +"Denne handling tjekkes mens KCachegrind kigger efter dumpen. Når dumpen er " +"afsluttet, genindlæser den automatisk det aktuelle spor. Hvis det er den fra " +"kørslen af Callgrind, vil den nylige spor-part også blive indlæst.

      " +"

      Påtving dump laver en fil 'callgrind.cmd', og tjekker hvert sekund for dens " +"eksistens. En kørende Callgrind vil detektere denne fil, dumpe en spor-part, og " +"slette 'callgrind.cmd'. Sletningen detekteres af KCachegrind, og den foretager " +"en genindlæsning. Hvis der ikke er nogen Callgrind der kører, tryk da " +"på 'Påtving dump' igen for at annullere dump-forespørgslen. Dette sletter " +"'callgrind.cmd' selv og holder op med at forespørge en ny dump.

      " +"

      Bemærk: En Callgrind kørsel only detekterer eksistensen af " +"'callgrind.cmd' når den har kørt aktivt nogle få millisekunder, dvs den " +"ikke sover. Vink: For et profileret GUI-program, kan du vække Callgrind f. " +"eks. ved at ændre størrelse for programmets vindue.

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

      This opens a profile data file, with possible multiple parts

      " +msgstr "" +"Åbn profildata" +"

      Dette åbner en profildata-fil, muligvis med flere dele

      " + +#: toplevel.cpp:586 +msgid "Show/Hide the Parts Overview Dockable" +msgstr "Vis/Skjul part overblik-dokbar" + +#: toplevel.cpp:590 +msgid "Call Stack" +msgstr "Kaldstak" + +#: toplevel.cpp:595 +msgid "Show/Hide the Call Stack Dockable" +msgstr "Vis/Skjul kaldstakkens dokbare" + +#. i18n: file functionselectionbase.ui line 16 +#: rc.cpp:297 toplevel.cpp:599 +#, no-c-format +msgid "Function Profile" +msgstr "Funktionsprofil" + +#: toplevel.cpp:604 +msgid "Show/Hide the Function Profile Dockable" +msgstr "Vis/Skjul funktionprofilens dokbare" + +#: toplevel.cpp:614 +msgid "Show/Hide the Profile Dumps Dockable" +msgstr "Vis/Skjul profil-dump dokbar" + +#: toplevel.cpp:619 +msgid "Show Relative Costs" +msgstr "Vis relative omkostninger" + +#: toplevel.cpp:626 +msgid "Show Absolute Costs" +msgstr "Vis absolutte omkostninger" + +#: toplevel.cpp:629 +msgid "Show relative instead of absolute costs" +msgstr "Vis relative i stedet for absolutte omkostninger" + +#: toplevel.cpp:633 +msgid "Percentage Relative to Parent" +msgstr "Procent relativ til afledt fra" + +#: toplevel.cpp:639 +msgid "Show percentage costs relative to parent" +msgstr "Vis procent omkostninger relativ til den der er afledt fra" + +#: 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 "" +"Vis procent omkostninger relativ til afledt fra" +"

        Hvis dette r slået fra, vil procent omkostninger altid vises relativt til de " +"totale omkostninger af de profil-parter der bliver gennemset for øjeblikket. " +"Ved at slå dette til, vil procent omkostningerne der vises være relativt til " +"omkostningerne for det punkt (parent) de er afledt fra. " +"

          " +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"" +"
          OmkostningstypeAfledt fra omkostning
          Funktion kumulativTotal
          Funktion selvFunktion gruppe (*) / Total
          KaldFunktion kumulativ
          KildelinjeFunktion kumulativ
          " +"

          (*) Kun hvis funktionsgruppering er slået til (f.eks. ELF " +"objekt-gruppering)." + +#: toplevel.cpp:658 +msgid "Do Cycle Detection" +msgstr "Udfør cykel-detektion" + +#: toplevel.cpp:664 +msgid "Skip Cycle Detection" +msgstr "Overspring cykeldetektion" + +#: 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 "" +"Detektér rekursive cykler" +"

          Hvis dette er slået fra vil trækortet vise sorte områder når et rekursivt " +"kald laves, i stedet for at tegne rekursionen i det uendelige. Bemærk at " +"størrelsen af sorte områder ofte vil være forkert, idet du ikke kan afgøre " +"omkostningen af et kald indeni rekursive cykler; fejlen er imidlertid lille for " +"falske cykler (se dokumentationen)." +"

          Den rigtige håndtering for cykler er at detektere dem og kollapse alle " +"funktioner for en cykel til en virtuel funktion, hvilket gøres når dette " +"tilvalg er markeret. Uheldigvis vil dette ofte føre til kæmpestore falske " +"cykler med GUI-programmer, og gør derved analyse umulig. Derfor er der " +"muligheden for at slå dette fra." + +#: toplevel.cpp:689 toplevel.cpp:729 +msgid "Go back in function selection history" +msgstr "Gå tilbage i funktionvalgshistorikken" + +#: toplevel.cpp:695 toplevel.cpp:741 +msgid "Go forward in function selection history" +msgstr "Gå frem i funktionvalgshistorikken" + +#: 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 "" +"Gå op" +"

          Gå til sidst valgte kalder af denne funktion. Hvis ingen kalder blev besøgt, " +"så brug den med den højeste omkostning.

          " + +#: toplevel.cpp:707 +msgid "&Up" +msgstr "&Op" + +#: toplevel.cpp:746 toplevel.cpp:1651 +msgid "Primary Event Type" +msgstr "Primær begivenhedstype" + +#: toplevel.cpp:748 +msgid "Select primary event type of costs" +msgstr "Vælg primær begivenhedstype for omkostninger" + +#: toplevel.cpp:758 toplevel.cpp:1654 +msgid "Secondary Event Type" +msgstr "Sekundær begivenhedstype" + +#: toplevel.cpp:760 +msgid "Select secondary event type for cost e.g. shown in annotations" +msgstr "" +"Vælg sekundær begivenhedstype for omkostninger f.eks. vist i påtegninger" + +#: functionselection.cpp:243 toplevel.cpp:768 +msgid "Grouping" +msgstr "Gruppering" + +#: toplevel.cpp:771 +msgid "Select how functions are grouped into higher level cost items" +msgstr "" +"Vælg hvordan funktioner er grupperet i højere niveau omkostningspunkter" + +#: functionselection.cpp:52 toplevel.cpp:777 +msgid "(No Grouping)" +msgstr "(Ingen gruppering)" + +#: toplevel.cpp:787 +msgid "Split" +msgstr "Opdelt" + +#: toplevel.cpp:791 +msgid "Show two information panels" +msgstr "Vis to informationspaneler" + +#: toplevel.cpp:795 +msgid "Split Horizontal" +msgstr "Opdel vandret" + +#: toplevel.cpp:800 +msgid "Change Split Orientation when main window is split." +msgstr "Ændr opdelingsorienteringen når hovedvinduet opdeles" + +#: toplevel.cpp:808 +msgid "Tip of the &Day..." +msgstr "&Dagens vink..." + +#: toplevel.cpp:809 +msgid "Show \"Tip of the Day\"" +msgstr "Vis \"Dagens vink\"" + +#: toplevel.cpp:1012 toplevel.cpp:1061 +msgid "" +"cachegrind.out* callgrind.out*|Callgrind Profile Data\n" +"*|All Files" +msgstr "" +"cachegrind.out* callgrind.out*|Callgrind profildata\n" +"*|Alle filer" + +#: toplevel.cpp:1014 +msgid "Select Callgrind Profile Data" +msgstr "Vælg Callgrind profildata" + +#: toplevel.cpp:1063 +msgid "Add Callgrind Profile Data" +msgstr "Tilføj Callgrind profildata" + +#: toplevel.cpp:1221 toplevel.cpp:1574 +msgid "(Hidden)" +msgstr "(Skjult)" + +#: toplevel.cpp:1626 +msgid "Hide" +msgstr "Skjul" + +#: toplevel.cpp:1659 +msgid "Show Absolute Cost" +msgstr "Vis absolutte omkostninger" + +#: toplevel.cpp:1662 +msgid "Show Relative Cost" +msgstr "Vis relativ omkostning" + +#: toplevel.cpp:1693 +msgid "Go Forward" +msgstr "Gå fremad" + +#: toplevel.cpp:1694 +msgid "Go Up" +msgstr "Gå op" + +#: toplevel.cpp:1926 +#, c-format +msgid "Layout Count: %1" +msgstr "Layout antal: %1" + +#: toplevel.cpp:1933 +msgid "No profile data file loaded." +msgstr "Ingen profildata indlæst." + +#: toplevel.cpp:1942 +msgid "Total %1 Cost: %2" +msgstr "Total %1 Omkostning: %2" + +#: toplevel.cpp:1954 +msgid "No event type selected" +msgstr "Ingen begivenhedstype valgt" + +#: toplevel.cpp:2199 toplevel.cpp:2235 toplevel.cpp:2271 +msgid "(No Stack)" +msgstr "(Ingen stak)" + +#: toplevel.cpp:2205 +msgid "(No next function)" +msgstr "(Ingen næste funktion)" + +#: toplevel.cpp:2241 +msgid "(No previous function)" +msgstr "(Ingen forrige funktion)" + +#: toplevel.cpp:2276 +msgid "(No Function Up)" +msgstr "(Ingen funktion op)" + +#. 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 "Omkostning 2" + +#: instrview.cpp:129 +msgid "Hex" +msgstr "Hex" + +#: instrview.cpp:131 tabview.cpp:313 +msgid "Assembler" +msgstr "Assembler" + +#: instrview.cpp:132 +msgid "Source Position" +msgstr "Kildeposition" + +#: 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 "" +"Kommenteret assembler" +"

          Den kommenterede assemblerliste viser maskinkodeinstruktioner for den valgte " +"funktion sammen med egenomkostningen brugt mens en instruktion udføres. Hvis " +"det er en kald-instruktion, vil linjer med detaljer kaldet, blive indsat i " +"kildekoden: omkostninger forbrugt indeni kaldet, antallet af kald og kaldets " +"mål.

          " +"

          Disassembler-uddata der vises er genereret med 'objdump'-værktøjet fra " +"'binutils'-pakken.

          " +"

          Vælg en linje med kaldinformation for at gøre målfunktionen for dette kald " +"til det aktuelle.

          " + +#: 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 "Gå til '%1'" + +#: instrview.cpp:195 +#, c-format +msgid "Go to Address %1" +msgstr "Gå til adresse %1" + +#: instrview.cpp:207 +msgid "Hex Code" +msgstr "Hex-kode" + +#: instrview.cpp:426 +msgid "There is no instruction info in the profile data file." +msgstr "Der er ingen instruktionsinfo i profildata-filen." + +#: instrview.cpp:428 +msgid "For the Valgrind Calltree Skin, rerun with option" +msgstr "For Valgrind Calltree forside, kår igen med tilvalg" + +#: instrview.cpp:429 +msgid " --dump-instr=yes" +msgstr " --dump-instr=yes" + +#: instrview.cpp:430 +msgid "To see (conditional) jumps, additionally specify" +msgstr "For at se (betingede) spring, angiv yderligere" + +#: 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 "Der er en fejl ved forsøget på at køre kommandoen" + +#: instrview.cpp:634 instrview.cpp:900 +msgid "Check that you have installed 'objdump'." +msgstr "Tjek at du har installeret 'objdump'" + +#: instrview.cpp:636 instrview.cpp:902 +msgid "This utility can be found in the 'binutils' package." +msgstr "Dette redskab kan findes i 'binutils'-pakken." + +#: instrview.cpp:739 +msgid "(No Assembler)" +msgstr "(Ingen assembler)" + +#: instrview.cpp:875 +#, c-format +msgid "" +"_n: There is %n cost line without assembler code.\n" +"There are %n cost lines without assembler code." +msgstr "" +"Der er %n omkostningslinje uden assembler-kode.\n" +"Der er %n omkostningslinjer uden assembler-kode." + +#: instrview.cpp:877 +msgid "This happens because the code of" +msgstr "Dette sker på grund af koden i" + +#: instrview.cpp:880 +msgid "does not seem to match the profile data file." +msgstr "synes ikke at passe til profildata-filen." + +#: instrview.cpp:883 +msgid "Are you using an old profile data file or is the above mentioned" +msgstr "Bruger du en gammel profildata-fil eller er ovennævnte" + +#: instrview.cpp:885 +msgid "ELF object from an updated installation/another machine?" +msgstr "ELF-objekt fra en opdateret installation/en anden maskine?" + +#: instrview.cpp:893 +msgid "There seems to be an error trying to execute the command" +msgstr "Der synes at være en fejl ved forsøget på at køre kommandoen" + +#: instrview.cpp:898 +msgid "Check that the ELF object used in the command exists." +msgstr "Tjek at ELF-objektet der bruges i kommandoen eksisterer." + +#: callgraphview.cpp:306 +#, c-format +msgid "Call(s) from %1" +msgstr "Kald fra %1" + +#: callgraphview.cpp:307 +#, c-format +msgid "Call(s) to %1" +msgstr "Kald til %1" + +#: callgraphview.cpp:308 +msgid "(unknown call)" +msgstr "(ukendt kald)" + +#: 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 "" +"Kaldegraf omkring aktiv funktion" +"

          Afhængig af indstillingen, viser dette kaldegrafens omgivelser af den aktive " +"funktion. Bemærk: den viste omkostning er kun " +"den omkostning som er brugt mens den aktive funktion rent faktisk kørte; dvs. " +"den omkostning der vises for main() - hvis den er synlig - skal være den samme " +"som omkostningen for den aktive funktion, da det er delen af den inklusive " +"omkostning af main() brugt mens den aktive funktion kørte.

          " +"

          For cykler, indikerer blå kaldepile at dette er et kunstigt kald tilføjet " +"den rigtige tegning som rent faktisk aldrig skete.

          " +"

          Hvis grafen er større end kontrolområdet, vises en overblikstingest på en " +"kant. Der er lignende visualiseringstilvalg til Kald-trækortet; den valgte " +"funktion er fremhævet." +"

          " + +#: callgraphview.cpp:1789 +msgid "" +"Warning: a long lasting graph layouting is in progress.\n" +"Reduce node/edge limits for speedup.\n" +msgstr "" +"Advarsel: længerevarende grafudlægning under udførelse.\n" +"Reducér knude/rand-grænser for at øge hastigheden.\n" + +#: callgraphview.cpp:1792 +msgid "" +"Layouting stopped.\n" +msgstr "" +"Grafudlægning stoppet.\n" + +#: callgraphview.cpp:1794 +msgid "" +"The call graph has %1 nodes and %2 edges.\n" +msgstr "" +"Kaldgrafen har %1 knuder og %2 rande.\n" + +#: callgraphview.cpp:1827 +msgid "No item activated for which to draw the call graph." +msgstr "Intet punkt aktiveret at tegne kaldgrafen ud fra." + +#: callgraphview.cpp:1838 +msgid "No call graph can be drawn for the active item." +msgstr "Der kan ikke tegnes nogen kaldgraf for det valgte punkt." + +#: callgraphview.cpp:1867 +msgid "" +"No call graph is available because the following\n" +"command cannot be run:\n" +"'%1'\n" +msgstr "" +"Der er ingen kaldgraf til rådighed pga. at følgende\n" +"kommando ikke kan køres:\n" +"'%1'\n" + +#: callgraphview.cpp:1870 callgraphview.cpp:2200 +msgid "Please check that 'dot' is installed (package GraphViz)." +msgstr "Tjek at 'dot' er installeret (pakken GraphViz)." + +#: callgraphview.cpp:2199 +msgid "" +"Error running the graph layouting tool.\n" +msgstr "" +"Fejl ved kørsel af grafudlægnings-værktøjet.\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 "" +"Der er ingen kaldegraf tilgængelig for funktionen\n" +"\t'%1'\n" +"da den ikke har nogen omkostning for den valgte begivenhedstype." + +#: callgraphview.cpp:2428 +msgid "Stop Layouting" +msgstr "Stop udlægning" + +#: callgraphview.cpp:2436 +msgid "As PostScript" +msgstr "Som Postscript" + +#: callgraphview.cpp:2437 +msgid "As Image ..." +msgstr "Som billede ..." + +#: callgraphview.cpp:2439 +msgid "Export Graph" +msgstr "Eksportér graf" + +#: callgraphview.cpp:2444 callgraphview.cpp:2467 +msgid "Unlimited" +msgstr "Ubegrænset" + +#: callgraphview.cpp:2447 callgraphview.cpp:2470 +msgid "None" +msgstr "Ingen" + +#: callgraphview.cpp:2448 callgraphview.cpp:2471 +msgid "max. 2" +msgstr "maks. 2" + +#: callgraphview.cpp:2449 callgraphview.cpp:2472 +msgid "max. 5" +msgstr "maks. 5" + +#: callgraphview.cpp:2450 callgraphview.cpp:2473 +msgid "max. 10" +msgstr "maks. 10" + +#: callgraphview.cpp:2451 callgraphview.cpp:2474 +msgid "max. 15" +msgstr "maks. 15" + +#: callgraphview.cpp:2461 callgraphview.cpp:2484 +#, c-format +msgid "< %1" +msgstr "< %1" + +#: callgraphview.cpp:2490 +msgid "No Minimum" +msgstr "Intet minimum" + +#: 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 "Samme som knuden" + +#: callgraphview.cpp:2518 +#, c-format +msgid "50 % of Node" +msgstr "50 % af knuden" + +#: callgraphview.cpp:2519 +#, c-format +msgid "20 % of Node" +msgstr "20 % af knuden" + +#: callgraphview.cpp:2520 +#, c-format +msgid "10 % of Node" +msgstr "10 % af knuden" + +#: callgraphview.cpp:2530 +msgid "Caller Depth" +msgstr "Kalder-dybde" + +#: callgraphview.cpp:2531 +msgid "Callee Depth" +msgstr "Kaldt-dybde" + +#: callgraphview.cpp:2532 +msgid "Min. Node Cost" +msgstr "Min. knudeomkostning" + +#: callgraphview.cpp:2533 +msgid "Min. Call Cost" +msgstr "Min. kaldeomkostning" + +#: callgraphview.cpp:2535 +msgid "Arrows for Skipped Calls" +msgstr "Tillader oversprungen kald" + +#: callgraphview.cpp:2537 +msgid "Inner-cycle Calls" +msgstr "Indre-cykel kald" + +#: callgraphview.cpp:2539 +msgid "Cluster Groups" +msgstr "Klyngegrupper" + +#: callgraphview.cpp:2544 +msgid "Compact" +msgstr "Kompakt" + +#: callgraphview.cpp:2545 +msgid "Normal" +msgstr "Normal" + +#: callgraphview.cpp:2546 +msgid "Tall" +msgstr "Høj" + +#: callgraphview.cpp:2551 +msgid "Top to Down" +msgstr "Ovenfra nedad" + +#: callgraphview.cpp:2552 +msgid "Left to Right" +msgstr "Venstre mod højre" + +#: callgraphview.cpp:2553 +msgid "Circular" +msgstr "Cirkulær" + +#: callgraphview.cpp:2559 +msgid "TopLeft" +msgstr "TopVenstre" + +#: callgraphview.cpp:2560 +msgid "TopRight" +msgstr "TopHøjre" + +#: callgraphview.cpp:2561 +msgid "BottomLeft" +msgstr "NedeVenstre" + +#: callgraphview.cpp:2562 +msgid "BottomRight" +msgstr "NedeHøjre" + +#. i18n: file configdlgbase.ui line 246 +#: callgraphview.cpp:2563 rc.cpp:42 rc.cpp:51 rc.cpp:54 +#, no-c-format +msgid "Automatic" +msgstr "Automatisk" + +#: callgraphview.cpp:2570 +msgid "Graph" +msgstr "Graf" + +#: callgraphview.cpp:2572 +msgid "Birds-eye View" +msgstr "Fugleperspektiv" + +#: _translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "Erik Kjær Pedersen" + +#: _translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "erik@binghamton.edu" + +#: coverageitem.cpp:65 coverageitem.cpp:205 functionitem.cpp:72 +#, c-format +msgid "" +"_n: (%n function skipped)\n" +"(%n functions skipped)" +msgstr "" +"(%n funktion oversprunget)\n" +"(%n funktioner oversprunget)" + +#: main.cpp:38 +msgid "Run under cachegrind" +msgstr "Kør under cachegrind" + +#: main.cpp:39 +msgid "Show information of this trace" +msgstr "Vis information for dette spor" + +#: main.cpp:46 +msgid "KCachegrind" +msgstr "KCachegrind" + +#: main.cpp:48 +msgid "KDE Frontend for Cachegrind" +msgstr "KDE's forende for Cachegrind" + +#: main.cpp:50 +msgid "(C) 2002, 2003, 2004" +msgstr "(C) 2002, 2003, 2004" + +#: main.cpp:53 +msgid "Author/Maintainer" +msgstr "Forfatter/Vedligeholder" + +#: tabview.cpp:64 +msgid "Move to Top" +msgstr "Flyt til toppen" + +#: tabview.cpp:68 +msgid "Move to Right" +msgstr "Flyt til højre" + +#: tabview.cpp:72 +msgid "Move to Bottom" +msgstr "Flyt til bunden" + +#: tabview.cpp:76 +msgid "Move to Bottom Left" +msgstr "Flyt til nede til venstre" + +#: tabview.cpp:77 tabview.cpp:94 treemap.cpp:2908 +msgid "Bottom Left" +msgstr "For neden til venstre" + +#: tabview.cpp:79 +msgid "Move Area To" +msgstr "Flyt område til" + +#: tabview.cpp:81 +msgid "Hide This Tab" +msgstr "Skjul dette faneblad" + +#: tabview.cpp:82 +msgid "Hide Area" +msgstr "Skjul område" + +#: tabview.cpp:95 +msgid "Show Hidden On" +msgstr "Vis skjult for" + +#: tabview.cpp:242 +msgid "(No profile data file loaded)" +msgstr "(Ingen profildata-fil indlæst)" + +#: tabview.cpp:281 +msgid "Types" +msgstr "Typer" + +#: tabview.cpp:284 +msgid "Callers" +msgstr "Kaldere" + +#: tabview.cpp:287 +msgid "All Callers" +msgstr "Alle kaldere" + +#: tabview.cpp:290 +msgid "Caller Map" +msgstr "Kalder-kort" + +#: tabview.cpp:293 +msgid "Source" +msgstr "Kilde" + +#: tabview.cpp:297 +msgid "Parts" +msgstr "Dele" + +#: tabview.cpp:300 +msgid "Call Graph" +msgstr "Kald-graf" + +#: tabview.cpp:303 +msgid "Callees" +msgstr "Kaldte" + +#: tabview.cpp:306 +msgid "All Callees" +msgstr "Alle kaldte" + +#: tabview.cpp:310 +msgid "Callee Map" +msgstr "Oversigt over kaldte" + +#: 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 "" +"Informationsfaneblade" +"

          Denne kontrol viser information for den valgte funktion i forskellige " +"faneblade: " +"

            " +"
          • Fanebladet Omkostninger viser en liste af tilgængelige omkostningstyper og " +"inkluseive og egen-omkostninger med hensyn til disse typer.
          • " +"
          • Part-fanebladet viser en liste af spor-parter, hvis sporet består af mere " +"end en part (ellers er dette faneblad skjult). Der vises omkostninger forbrugt " +"i de forskellige parter af den aktuelle funktion, sammen med de kald der " +"sker.
          • " +"
          • Kaldte-lister-fanebladet viser mere detaljeret de direkte kaldere og kaldte " +"af funktionen.
          • " +"
          • Dækning-fanebladet viser det samme som i kaldte-lister-fanebladet, men ikke " +"blot direkte kaldere og kaldte, men også indirekte.
          • " +"
          • Kaldgraf-fanebladet er en grafisk visualisering af de kald der udføres af " +"denne funktion.
          • " +"
          • Kilde-fanebladet viser kommenteret kildekode hvis fejlretningsinformation " +"og kildefil er tilgængelig.
          • " +"
          • Assembler-fanebladet viser kommenteret assemblerkode hvis sporinformation " +"på instruktionsniveau er tilgængelig.
          For mere information, se " +"Hvad er dette?-hjælp for den tilsvarende fanebladskontrol

          " + +#: tabview.cpp:630 +msgid "(No Data loaded)" +msgstr "(Ingen data indlæst)" + +#: tabview.cpp:631 +msgid "(No function selected)" +msgstr "(Ingen funktion valgt)" + +#: sourceview.cpp:54 sourceview.cpp:554 +msgid "Source (unknown)" +msgstr "Kilde (ukendt)" + +#: 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 "" +"Kommenteret kildekode" +"

          Den kommenterede kildekodeliste viser kildelinjerne for den valgte funktion " +"sammen med egenomkostningerne forbrugt under udførsel af koden for denne " +"kildelinje. Hvis der var et kald i en kildelinje, vil linjer med detaljer om " +"kaldet blive indsat i kildekoden: omkostningerne forbrugt indeni kaldet, " +"antallet af kald og kaldets mål.

          " +"

          Vælg en indsat kaldinformationslinje for at gøre målfunktionen til den " +"aktuelle.

          " + +#: sourceview.cpp:120 +#, c-format +msgid "Go to Line %1" +msgstr "Gå til linje %1" + +#: sourceview.cpp:293 +msgid "(No Source)" +msgstr "(Ingen kilde)" + +#: sourceview.cpp:512 +msgid "There is no cost of current selected type associated" +msgstr "Der er ingen omkostning af valgt type associeret" + +#: sourceview.cpp:514 +msgid "with any source line of this function in file" +msgstr "med nogen kildelinje for denne funktion i filen" + +#: sourceview.cpp:518 +msgid "Thus, no annotated source can be shown." +msgstr "Derfor kan ingen annoteret kilde vises." + +#: sourceview.cpp:553 +msgid "Source ('%1')" +msgstr "Kilde ('%1')" + +#: sourceview.cpp:559 +msgid "--- Inlined from '%1' ---" +msgstr "--- Indlejret fra '%1' ---" + +#: sourceview.cpp:560 +msgid "--- Inlined from unknown source ---" +msgstr "--- Indlejret fra ukendt kilde ---" + +#: sourceview.cpp:565 +msgid "There is no source available for the following function:" +msgstr "Der er ingen kilde tilgængelig for følgende funktion:" + +#: sourceview.cpp:570 +msgid "This is because no debug information is present." +msgstr "Dette er fordi ingen fejlretningsinformation er til stede." + +#: sourceview.cpp:572 +msgid "Recompile source and redo the profile run." +msgstr "Rekompilér kilde og gør profilkørsel igen." + +#: sourceview.cpp:575 +msgid "The function is located in this ELF object:" +msgstr "Funktionen er placeret i dette ELF-objekt:" + +#: sourceview.cpp:583 +msgid "This is because its source file cannot be found:" +msgstr "Dette er fordi da dens kildefil ikke kan findes:" + +#: sourceview.cpp:587 +msgid "Add the folder of this file to the source folder list." +msgstr "Tilføj mappen for denne fil til listen af kildemapper." + +#: sourceview.cpp:589 +msgid "The list can be found in the configuration dialog." +msgstr "Listen kan findes i indstillingsdialogen." + +#: partlistitem.cpp:49 +msgid " (Thread %1)" +msgstr " (Tråd %1)" + +#: partlistitem.cpp:56 +msgid "(none)" +msgstr "(ingen)" + +#: callitem.cpp:82 partlistitem.cpp:152 +msgid "(active)" +msgstr "(aktiv)" + +#: functionselection.cpp:176 +#, c-format +msgid "Go to %1" +msgstr "Gå til %1" + +#: functionselection.cpp:203 +msgid "Show All Items" +msgstr "Vis alle punkter" + +#: functionselection.cpp:226 +msgid "No Grouping" +msgstr "Ingen gruppering" + +#: coverageview.cpp:48 coverageview.cpp:54 +msgid "Distance" +msgstr "Afstand" + +#. i18n: file dumpselectionbase.ui line 928 +#: coverageview.cpp:49 partview.cpp:49 rc.cpp:270 rc.cpp:315 +#, no-c-format +msgid "Called" +msgstr "Kaldet" + +#: callview.cpp:48 coverageview.cpp:50 +msgid "Caller" +msgstr "Kalder" + +#: coverageview.cpp:55 +msgid "Calling" +msgstr "Kalder" + +#: callview.cpp:52 coverageview.cpp:56 +msgid "Callee" +msgstr "Kaldt" + +#: 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 "" +"Liste af alle kaldere" +"

          Denne liste viser alle funktioner der kalder den valgte, enten direkte eller " +"med flere funktioner imellem på stakken; antallet af funktioner imellem øget " +"med 1 kaldes Afstanden (f.eks. for funktionerne A,B,C eksisterer der " +"et kald fra A til C når A kalder B og B kalder C, dvs. A => B => " +"C. Afstanden her er 2).

          " +"

          De absolutte omkostninger der er vist er omkostninger der bruges i den " +"valgte funktion mens den listede funktion er aktiv. De relative omkostninger er " +"den procentdel af alle omkostninger der bruges i den valgte funktion mens den " +"på listen er aktiv. Omkostningsgrafikken viser logaritmisk procent med en anden " +"farve for hver afstand.

          " +"

          Da der kan være mange kald fra den samme funktion, viser afstandssøjlen " +"sommetider området af afstande for alle kald der sker; så, i parentes er der " +"middel afstanden, dvs. afstande hvor de fleste af kaldets omkostninger var.

          " +"

          Vælges en en funktion, gøres den til den aktuelt valgte i dette " +"informationspanel. Hvis der er to paneler (Opdelt tilstand), ændres funktion " +"for det andet panel i stedet for.

          " + +#: 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 "" +"Liste af alle kaldte" +"

          Denne liste viser alle funktioner der kaldt af den valgte, enten direkte " +"eller med flere funktioner imellem på stakken; antallet af funktioner imellem " +"øget med 1 kaldes Afstanden (f.eks. for funktionerne A,B,C eksisterer " +"der et kald fra A til C når A kalder B og B kalder C, dvs. A => B => " +"C. Afstanden her er 2).

          " +"

          Absolut omkostning vist er den omkostning der bruges i den valgte funktion " +"mens listet funktion er aktiv; relativ omkostning den procent af al omkostning " +"der bruges i den valgte funktion mens den på listen er aktiv. " +"Omkostning-grafikken viser logaritmisk procent med en anden farve for hver " +"afstand.

          " +"

          Da der kan være mange kald fra den samme funktion, viser afstandssøjlen " +"sommetider området af afstande for alle kald der sker; så, i parentes er der " +"middel afstanden, dvs. afstande hvor de fleste af kaldets omkostninger var.

          " +"

          Valg af en funktion gør den til den valgte for dette informationspanel. Hvis " +"der er to paneler (Opdelt tilstand), ændres funktion for det andet panel i " +"stedet for.

          " + +#: configuration.cpp:63 +msgid "Instruction Fetch" +msgstr "Instruktionshentning" + +#: configuration.cpp:64 +msgid "Data Read Access" +msgstr "Data-læseadgang" + +#: configuration.cpp:65 +msgid "Data Write Access" +msgstr "Data-skriveadgang" + +#: configuration.cpp:66 +msgid "L1 Instr. Fetch Miss" +msgstr "L1 Instr. Fetch Miss" + +#: configuration.cpp:67 +msgid "L1 Data Read Miss" +msgstr "L1 Datalæse Miss" + +#: configuration.cpp:68 +msgid "L1 Data Write Miss" +msgstr "L1 Dataskrive Miss" + +#: configuration.cpp:69 +msgid "L2 Instr. Fetch Miss" +msgstr "L2 Instr. hente Miss" + +#: configuration.cpp:70 +msgid "L2 Data Read Miss" +msgstr "L2 Datalæse Miss" + +#: configuration.cpp:71 +msgid "L2 Data Write Miss" +msgstr "L2 dataskrive Miss" + +#: configuration.cpp:72 +msgid "Samples" +msgstr "Smagsprøver" + +#: configuration.cpp:73 +msgid "System Time" +msgstr "Systemtid" + +#: configuration.cpp:74 +msgid "User Time" +msgstr "Brugertid" + +#: configuration.cpp:75 +msgid "L1 Miss Sum" +msgstr "L1 Miss Sum" + +#: configuration.cpp:76 +msgid "L2 Miss Sum" +msgstr "L2 Miss Sum" + +#: configuration.cpp:77 +msgid "Cycle Estimation" +msgstr "Cykel-estimat" + +#. i18n: file tdecachegrindui.rc line 15 +#: rc.cpp:9 +#, no-c-format +msgid "&Layout" +msgstr "&Layout" + +#. i18n: file tdecachegrindui.rc line 32 +#: rc.cpp:12 +#, no-c-format +msgid "Sidebars" +msgstr "Sidebjælker" + +#. i18n: file tdecachegrindui.rc line 54 +#: rc.cpp:18 +#, no-c-format +msgid "State Toolbar" +msgstr "Tilstandsværktøjslinje" + +#. i18n: file configdlgbase.ui line 37 +#: rc.cpp:24 +#, no-c-format +msgid "General" +msgstr "Generelt" + +#. i18n: file configdlgbase.ui line 69 +#: rc.cpp:27 +#, no-c-format +msgid "Truncated when more/longer than:" +msgstr "Trunkeret når mere/længere end:" + +#. i18n: file configdlgbase.ui line 77 +#: rc.cpp:30 +#, no-c-format +msgid "Precision of percentage values:" +msgstr "Præcision ved procent-værdier:" + +#. i18n: file configdlgbase.ui line 85 +#: rc.cpp:33 +#, no-c-format +msgid "Symbols in tooltips and context menus" +msgstr "Symboler i værktøjsvink og sammenhængsmenuer" + +#. i18n: file configdlgbase.ui line 141 +#: rc.cpp:36 +#, no-c-format +msgid "Maximum number of items in lists:" +msgstr "Maksimalt antal punkter på lister:" + +#. i18n: file configdlgbase.ui line 162 +#: rc.cpp:39 +#, no-c-format +msgid "Cost Item Colors" +msgstr "Farver til omkostningspunkt" + +#. i18n: file configdlgbase.ui line 254 +#: rc.cpp:45 +#, no-c-format +msgid "Object:" +msgstr "Objekt:" + +#. i18n: file configdlgbase.ui line 262 +#: rc.cpp:48 +#, no-c-format +msgid "Class:" +msgstr "Klasse:" + +#. i18n: file configdlgbase.ui line 310 +#: rc.cpp:57 +#, no-c-format +msgid "File:" +msgstr "Fil:" + +#. i18n: file configdlgbase.ui line 376 +#: rc.cpp:60 +#, no-c-format +msgid "Annotations" +msgstr "Kommentarer" + +#. i18n: file configdlgbase.ui line 395 +#: rc.cpp:63 +#, no-c-format +msgid "Context lines in annotations:" +msgstr "Sammenhængslinjer i annotationer:" + +#. i18n: file configdlgbase.ui line 423 +#: rc.cpp:66 +#, no-c-format +msgid "Source Folders" +msgstr "Kildemapper" + +#. i18n: file configdlgbase.ui line 454 +#: rc.cpp:69 +#, no-c-format +msgid "Object / Related Source Base" +msgstr "Objekt / Relateret kildebasis" + +#. i18n: file configdlgbase.ui line 483 +#: rc.cpp:72 +#, no-c-format +msgid "Add..." +msgstr "Tilføj..." + +#. i18n: file dumpselectionbase.ui line 32 +#: rc.cpp:87 +#, no-c-format +msgid "Target" +msgstr "Mål" + +#. i18n: file dumpselectionbase.ui line 54 +#: rc.cpp:90 +#, no-c-format +msgid "Time" +msgstr "Tid" + +#. i18n: file dumpselectionbase.ui line 65 +#: rc.cpp:93 +#, no-c-format +msgid "Path" +msgstr "Sti" + +#. i18n: file dumpselectionbase.ui line 106 +#: rc.cpp:99 +#, no-c-format +msgid "Target command:" +msgstr "Mål-kommando:" + +#. i18n: file dumpselectionbase.ui line 119 +#: rc.cpp:102 +#, no-c-format +msgid "Profiler options:" +msgstr "Profil-indstillinger:" + +#. i18n: file dumpselectionbase.ui line 125 +#: rc.cpp:105 +#, no-c-format +msgid "Option" +msgstr "Valg" + +#. i18n: file dumpselectionbase.ui line 136 +#: rc.cpp:108 rc.cpp:219 +#, no-c-format +msgid "Value" +msgstr "Værdi" + +#. i18n: file dumpselectionbase.ui line 147 +#: rc.cpp:111 +#, no-c-format +msgid "Trace" +msgstr "Spor" + +#. i18n: file dumpselectionbase.ui line 160 +#: rc.cpp:114 rc.cpp:237 +#, no-c-format +msgid "Jumps" +msgstr "Spring" + +#. i18n: file dumpselectionbase.ui line 174 +#: rc.cpp:117 +#, no-c-format +msgid "Instructions" +msgstr "Instruktioner" + +#. i18n: file dumpselectionbase.ui line 189 +#: rc.cpp:120 rc.cpp:240 +#, no-c-format +msgid "Events" +msgstr "Begivenheder" + +#. i18n: file dumpselectionbase.ui line 202 +#: rc.cpp:123 +#, no-c-format +msgid "Full Cache" +msgstr "Fuld cache" + +#. i18n: file dumpselectionbase.ui line 216 +#: rc.cpp:126 +#, no-c-format +msgid "Custom" +msgstr "Indret selv" + +#. i18n: file dumpselectionbase.ui line 231 +#: rc.cpp:129 +#, no-c-format +msgid "Collect" +msgstr "Indsaml" + +#. i18n: file dumpselectionbase.ui line 244 +#: rc.cpp:132 +#, no-c-format +msgid "At Startup" +msgstr "Ved opstart" + +#. i18n: file dumpselectionbase.ui line 258 +#: rc.cpp:135 +#, no-c-format +msgid "While In" +msgstr "Mens i" + +#. i18n: file dumpselectionbase.ui line 273 +#: rc.cpp:138 +#, no-c-format +msgid "Skip" +msgstr "Skip" + +#. 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 "Dump profil" + +#. i18n: file dumpselectionbase.ui line 328 +#: rc.cpp:150 +#, no-c-format +msgid "Every BBs" +msgstr "Hver BBs" + +#. i18n: file dumpselectionbase.ui line 342 +#: rc.cpp:153 rc.cpp:162 +#, no-c-format +msgid "On Entering" +msgstr "Ved indgang til" + +#. i18n: file dumpselectionbase.ui line 356 +#: rc.cpp:156 +#, no-c-format +msgid "On Leaving" +msgstr "Ved forlade" + +#. i18n: file dumpselectionbase.ui line 371 +#: rc.cpp:159 +#, no-c-format +msgid "Zero Events" +msgstr "Nul-begivenheder" + +#. i18n: file dumpselectionbase.ui line 399 +#: rc.cpp:165 +#, no-c-format +msgid "Separate" +msgstr "Separat" + +#. i18n: file dumpselectionbase.ui line 412 +#: rc.cpp:168 +#, no-c-format +msgid "Threads" +msgstr "Tråde" + +#. i18n: file dumpselectionbase.ui line 426 +#: rc.cpp:171 +#, no-c-format +msgid "Recursions" +msgstr "Rekursioner" + +#. i18n: file dumpselectionbase.ui line 440 +#: rc.cpp:174 +#, no-c-format +msgid "Call Chain" +msgstr "Kalde-kæde" + +#. i18n: file dumpselectionbase.ui line 470 +#: rc.cpp:177 +#, no-c-format +msgid "Custom profiler options:" +msgstr "Brugervalgte profil-indstillinger:" + +#. i18n: file dumpselectionbase.ui line 508 +#: rc.cpp:180 +#, no-c-format +msgid "Run New Profile" +msgstr "Kør ny profil" + +#. i18n: file dumpselectionbase.ui line 520 +#: rc.cpp:183 +#, no-c-format +msgid "Info" +msgstr "Info" + +#. i18n: file dumpselectionbase.ui line 531 +#: rc.cpp:186 +#, no-c-format +msgid "Dump reason:" +msgstr "Dump-grund:" + +#. i18n: file dumpselectionbase.ui line 544 +#: rc.cpp:189 +#, no-c-format +msgid "Event summary:" +msgstr "Begivenheds sammendrag:" + +#. i18n: file dumpselectionbase.ui line 561 +#: rc.cpp:195 +#, no-c-format +msgid "Sum" +msgstr "Sum" + +#. i18n: file dumpselectionbase.ui line 579 +#: rc.cpp:198 +#, no-c-format +msgid "Miscellaneous:" +msgstr "Diverse:" + +#. i18n: file dumpselectionbase.ui line 617 +#: rc.cpp:201 +#, no-c-format +msgid "Show" +msgstr "Vis" + +#. i18n: file dumpselectionbase.ui line 625 +#: rc.cpp:204 +#, no-c-format +msgid "Compare" +msgstr "Sammenlign" + +#. i18n: file dumpselectionbase.ui line 637 +#: rc.cpp:207 +#, no-c-format +msgid "State" +msgstr "Tilstand" + +#. i18n: file dumpselectionbase.ui line 656 +#: rc.cpp:210 +#, no-c-format +msgid "Update" +msgstr "Opdatér" + +#. i18n: file dumpselectionbase.ui line 664 +#: rc.cpp:213 +#, no-c-format +msgid "Every [s]:" +msgstr "Hver [s]:" + +#. i18n: file dumpselectionbase.ui line 677 +#: rc.cpp:216 +#, no-c-format +msgid "Counter" +msgstr "Tæller" + +#. i18n: file dumpselectionbase.ui line 699 +#: rc.cpp:222 +#, no-c-format +msgid "Dumps Done" +msgstr "Dump færdig" + +#. i18n: file dumpselectionbase.ui line 713 +#: rc.cpp:225 +#, no-c-format +msgid "Is Collecting" +msgstr "Samler" + +#. i18n: file dumpselectionbase.ui line 727 +#: rc.cpp:228 +#, no-c-format +msgid "Executed" +msgstr "Kørt" + +#. i18n: file dumpselectionbase.ui line 740 +#: rc.cpp:231 +#, no-c-format +msgid "Basic Blocks" +msgstr "Basale blokke" + +#. i18n: file dumpselectionbase.ui line 754 +#: callmapview.cpp:63 rc.cpp:234 rc.cpp:339 +#, no-c-format +msgid "Calls" +msgstr "Kald" + +#. 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 "Forskellige" + +#. i18n: file dumpselectionbase.ui line 824 +#: configdlg.cpp:58 rc.cpp:249 +#, no-c-format +msgid "ELF Objects" +msgstr "ELF-Objekter" + +#. i18n: file dumpselectionbase.ui line 838 +#: rc.cpp:252 +#, no-c-format +msgid "Functions" +msgstr "Funktioner" + +#. i18n: file dumpselectionbase.ui line 852 +#: rc.cpp:255 +#, no-c-format +msgid "Contexts" +msgstr "Sammenhænge" + +#. i18n: file dumpselectionbase.ui line 890 +#: rc.cpp:258 +#, no-c-format +msgid "Stack trace:" +msgstr "Stak-spor:" + +#. i18n: file dumpselectionbase.ui line 898 +#: rc.cpp:261 +#, no-c-format +msgid "Sync." +msgstr "Sync." + +#. i18n: file dumpselectionbase.ui line 950 +#: callmapview.cpp:61 rc.cpp:276 rc.cpp:321 +#, no-c-format +msgid "Location" +msgstr "Sted" + +#. i18n: file dumpselectionbase.ui line 976 +#: rc.cpp:279 +#, no-c-format +msgid "Start" +msgstr "Start" + +#. i18n: file dumpselectionbase.ui line 1001 +#: rc.cpp:282 +#, no-c-format +msgid "Zero" +msgstr "Zero" + +#. i18n: file dumpselectionbase.ui line 1009 +#: rc.cpp:285 +#, no-c-format +msgid "Dump" +msgstr "Dump" + +#. i18n: file dumpselectionbase.ui line 1021 +#: rc.cpp:288 +#, no-c-format +msgid "Messages" +msgstr "Beskeder" + +#. i18n: file dumpselectionbase.ui line 1045 +#: rc.cpp:291 +#, no-c-format +msgid "Kill Run" +msgstr "Dræb kørsel" + +#. i18n: file functionselectionbase.ui line 41 +#: rc.cpp:300 +#, no-c-format +msgid "&Search:" +msgstr "&Søg:" + +#. i18n: file functionselectionbase.ui line 73 +#: rc.cpp:306 +#, no-c-format +msgid "Group" +msgstr "Gruppe" + +#. i18n: file partselectionbase.ui line 60 +#: rc.cpp:327 +#, no-c-format +msgid "(no trace parts)" +msgstr "(ingen spor-parter)" + +#. i18n: file stackselectionbase.ui line 16 +#: rc.cpp:330 +#, no-c-format +msgid "Stack Selection" +msgstr "Stak-valg" + +#. i18n: file stackselectionbase.ui line 42 +#: rc.cpp:336 +#, no-c-format +msgid "Cost2" +msgstr "Omkostning 2" + +#: treemap.cpp:1281 +#, c-format +msgid "Text %1" +msgstr "Tekst %1" + +#: treemap.cpp:2809 +msgid "Recursive Bisection" +msgstr "Rekursiv bisektion" + +#: treemap.cpp:2810 +msgid "Columns" +msgstr "Søjler" + +#: treemap.cpp:2811 +msgid "Rows" +msgstr "Rækker" + +#: treemap.cpp:2812 +msgid "Always Best" +msgstr "Altid bedst" + +#: treemap.cpp:2813 +msgid "Best" +msgstr "Bedste" + +#: treemap.cpp:2814 +msgid "Alternate (V)" +msgstr "Alternér (V)" + +#: treemap.cpp:2815 +msgid "Alternate (H)" +msgstr "Alternér (H)" + +#: treemap.cpp:2872 +msgid "Nesting" +msgstr "Indeni hinanden" + +#: treemap.cpp:2875 +msgid "Correct Borders Only" +msgstr "Kun rigtige kanter" + +#: treemap.cpp:2877 treemap.cpp:2878 treemap.cpp:2879 treemap.cpp:2880 +#, c-format +msgid "Width %1" +msgstr "Bredde %1" + +#: callmapview.cpp:321 treemap.cpp:2889 +msgid "Shading" +msgstr "Skygning" + +#: treemap.cpp:2902 +msgid "Visible" +msgstr "Synlig" + +#: treemap.cpp:2903 +msgid "Take Space From Children" +msgstr "Tag plads fra afledte" + +#: treemap.cpp:2905 +msgid "Top Left" +msgstr "For oven til venstre" + +#: treemap.cpp:2906 +msgid "Top Center" +msgstr "For oven i midten" + +#: treemap.cpp:2907 +msgid "Top Right" +msgstr "For oven til højre" + +#: treemap.cpp:2909 +msgid "Bottom Center" +msgstr "For neden i midten" + +#: treemap.cpp:2910 +msgid "Bottom Right" +msgstr "For neden til højre" + +#: treemap.cpp:2987 +msgid "No %1 Limit" +msgstr "Ingen %1-grænse" + +#: callmapview.cpp:243 treemap.cpp:3039 +msgid "No Area Limit" +msgstr "Ingen område-grænse" + +#: callmapview.cpp:258 treemap.cpp:3045 +msgid "Area of '%1' (%2)" +msgstr "Område for '%1' (%2)" + +#: treemap.cpp:3056 treemap.cpp:3067 +#, c-format +msgid "" +"_n: 1 Pixel\n" +"%n Pixels" +msgstr "" +"1 Pixel\n" +"%n Pixels" + +#: callmapview.cpp:264 treemap.cpp:3071 +msgid "Double Area Limit (to %1)" +msgstr "Fordobl områdegrænse (til %1)" + +#: treemap.cpp:3073 +msgid "Halve Area Limit (to %1)" +msgstr "Halvér områdegrænse (til %1)" + +#: callmapview.cpp:187 treemap.cpp:3101 +msgid "No Depth Limit" +msgstr "Ingen dybdegrænse" + +#: callmapview.cpp:198 treemap.cpp:3107 +msgid "Depth of '%1' (%2)" +msgstr "Dybde på '%1' (%2)" + +#: treemap.cpp:3118 +#, c-format +msgid "Depth %1" +msgstr "Dybde %1" + +#: treemap.cpp:3122 +msgid "Decrement (to %1)" +msgstr "Gå ned (til %1)" + +#: treemap.cpp:3124 +msgid "Increment (to %1)" +msgstr "Gå op (til %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 "" +"Kalderafbildning" +"

          Denne graf viser det indlejrede hierarki af alle kaldere af den aktiverede " +"funktion. Hver farvet rektangel repræsenterer en funktion; dets størrelse " +"forsøger at være proportional med den omkostning der er brugt deri men den " +"aktive funktion kører (der er imidlertid tegningsbegrænsninger).

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

          Denne graf viser det indlejrede hierarki af alle kaldere af den aktiverede " +"funktion. Hver farvet rektangel repræsenterer en funktion; dets størrelse " +"forsøger at være proportional med den omkostning der er brugt deri men den " +"aktive funktion kører (der er imidlertid tegningsbegrænsninger).

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

          Valgmuligheder for udseendet findes i sammenhængsmenuen. For at få nøjagtige " +"størrelsesproportioner vælges 'Skjul forkerte kanter'. Da denne tilstand kan " +"have meget stort tidsforbrug, vil du muligvis begrænse den maksimalt " +"tegnede indlejring først. 'Bedste' afgør opdelingsretningen for afledte ud fra " +"den given aspekt-ratio. 'Altid bedst' beslutter sig for resten af pladsen hvad " +"sideordnede angår. 'Ignorér proportioner' tager plads til tegning af " +"funktionsnavne før hver afledt tegnes. Bemærk at " +"størrelsesproportioner kan blive meget forkerte.

          " +"

          Dette er en Trækort kontrol. Tastaturnavigation er mulig med " +"venstre/højre piletaster for at gå sidelæns, og op/ned piletaster for at gå en " +"indlejringsniveau op/ned. Return aktiverer dette punkt.

          " + +#: callmapview.cpp:167 +msgid "Go To" +msgstr "Gå til" + +#: callmapview.cpp:184 +msgid "Stop at Depth" +msgstr "Stop ved dybde" + +#: callmapview.cpp:190 +msgid "Depth 10" +msgstr "Dybde 10" + +#: callmapview.cpp:192 +msgid "Depth 15" +msgstr "Dybde 15" + +#: callmapview.cpp:194 +msgid "Depth 20" +msgstr "Dybde 20" + +#: callmapview.cpp:204 +msgid "Decrement Depth (to %1)" +msgstr "Sæt dybde ned (til %1)" + +#: callmapview.cpp:205 +msgid "Increment Depth (to %1)" +msgstr "Sæt dybde up (til %1)" + +#: callmapview.cpp:209 +msgid "Stop at Function" +msgstr "Stop ved funktion" + +#: callmapview.cpp:210 +msgid "No Function Limit" +msgstr "Ingen funktionsgrænse" + +#: callmapview.cpp:240 +msgid "Stop at Area" +msgstr "Stop ved område" + +#: callmapview.cpp:246 +msgid "50 Pixels" +msgstr "50 Pixel" + +#: callmapview.cpp:248 +msgid "100 Pixels" +msgstr "100 Pixel" + +#: callmapview.cpp:250 +msgid "200 Pixels" +msgstr "200 Pixel" + +#: callmapview.cpp:252 +msgid "500 Pixels" +msgstr "500 Pixel" + +#: callmapview.cpp:266 +msgid "Half Area Limit (to %1)" +msgstr "Halvér områdegrænse (til %1)" + +#: callmapview.cpp:273 +msgid "Visualisation" +msgstr "Visualisering" + +#: callmapview.cpp:277 +msgid "Split Direction" +msgstr "Opdelt retning" + +#: callmapview.cpp:279 +msgid "Skip Incorrect Borders" +msgstr "Overspring forkerte grænser" + +#: callmapview.cpp:284 +msgid "Border Width" +msgstr "Kantbredde" + +#: callmapview.cpp:285 +msgid "Border 0" +msgstr "Kant 0" + +#: callmapview.cpp:288 +msgid "Border 1" +msgstr "Kant 1" + +#: callmapview.cpp:290 +msgid "Border 2" +msgstr "Kant 2" + +#: callmapview.cpp:292 +msgid "Border 3" +msgstr "Kant 3" + +#: callmapview.cpp:297 +msgid "Draw Symbol Names" +msgstr "Tegn symbolnavne" + +#: callmapview.cpp:298 +msgid "Draw Cost" +msgstr "Tegn omkostning" + +#: callmapview.cpp:299 +msgid "Draw Location" +msgstr "Tegn sted" + +#: callmapview.cpp:300 +msgid "Draw Calls" +msgstr "Tegn kald" + +#: callmapview.cpp:431 +msgid "Call Map: Current is '%1'" +msgstr "Kalde-kort: Nuværende er '%1'" + +#: callmapview.cpp:599 +msgid "(no function)" +msgstr "(ingen funktion)" + +#: callmapview.cpp:741 callmapview.cpp:858 +msgid "(no call)" +msgstr "(intet kald)" + +#: cachegrindloader.cpp:141 +msgid "Import filter for Cachegrind/Callgrind generated profile data files" +msgstr "Importfilter for Cachegrind/Callgrind-genererede profildata-filer" + +#: cachegrindloader.cpp:738 +#, c-format +msgid "Loading %1" +msgstr "Indlæser %1" + +#: callview.cpp:47 callview.cpp:51 +msgid "Count" +msgstr "Tæl" + +#: 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 "" +"Liste af direkte kaldere" +"

          Denne liste viser alle funktioner der kalder den valgte direkte, sammen med " +"en kald-tælling og omkostninger forbrugt i den aktuelle funktion der bliver " +"kaldt fra funktionen fra listen.

          " +"

          En ikon i stedet for en inklusivomkostning, angiver at dette er et kald " +"indeni en rekursiv cyklus. En inklusivomkostning giver ingen mening her.

          " +"

          Vælges en funktion gøres den til den aktuelle i dette informationspanel. Er " +"der to paneler (Opdelt tilstand), ændres funktionen i det andet panel i " +"stedet.

          " + +#: 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 "" +"Liste af direkte kaldte" +"

          Denne liste viser alle funktioner kaldt af den aktuelle direkte, sammen med " +"en kald-tæller og omkostningerne forbrugt i denne funktion mens den bliver " +"kaldt fra den valgte funktion.

          " +"

          Vælges en funktion gøres den til den aktuelle i dette informationspanel. Er " +"der to paneler (Opdelt tilstand), ændres funktionen i det andet panel i " +"stedet.

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

          ...at Hvad er dette?-hjælpen for hver GUI-kontrol\n" +"i KCachegrind indeholder detaljeret brugsinformation for kontrollen?\n" +"Det anbefales stærkt at læse i det mindste disse hjælpetekster ved første\n" +"brug. Bed om Hvad er dette?-hjælp ved at trykke på\n" +"Shift-F1 og klikke på kontrollen.

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

          ...at du kan få profilinformation på instruktionsniveau\n" +"med Calltree når du bruger flaget --dump-instr=yes?\n" +"Brug Assembler-visningen for instruktionsannotationer.\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 "" +"

          ...at du kan bruge Alt-Venstre/Højre-taster på dit tastatur til at\n" +"gå tilbage/fremad i den aktive objekt-historikken ?

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

          ...at du kan navigere i Kaldte/Kalder-kortvisningen ved brug af\n" +"piletaster? Brug venstre/højre til sidelæns bevægelser;\n" +"brug op/ned til at et indlejringsniveau op eller ned. For at vælge\n" +"dette punkt trykkes på mellemrumstasten og for at \n" +"aktivere det Return.\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 "" +"

          ...at du kan navigere i Kaldegraf-visningen ved brug af\n" +"piletaster? Brug op/ned for at gå et kaldeniveau op/ned,\n" +"alternerende mellem kald og funktioner. Brug venstre/højre\n" +"til sidelæns ændringer fra det valgte kald. For at gøre dette\n" +"punkt til det valgte trykkes på Return.\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 "" +"

          ...at du kan finde en funktion hurtigt ved at indtaste en del\n" +"af dens navn (ikke versalfølsomt) i redigeringslinjen på\n" +"værktøjslinjen og trykke på Enter?

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

          ...at du kan tilknytte selvvalgte farver til \n" +"ELF-objekter/C++ klasser/Kildefiler for graf-kolorering\n" +"i Opsætning->Indstil 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 "" +"

          ...at du kan se om der er fejlretningsinfo tilstede for en valgt \n" +"funktion ved at kigge på stedetiketten i Info-fanebladet eller\n" +"kildelistningsoverskriften i kildefanebladet?

          \n" +"

          Navnet på kildefilen (med endelse) skal være der.\n" +"Hvis KCachegrind stadig ikke viser kilden, så sørg for at du\n" +"har tilføjet kataloget for kildefilen til\n" +"Kildekataloger-listen i indstillingen.\n" + +#: tips.cpp:69 +msgid "" +"

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

          \n" +msgstr "" +"

          ...at du kan indstille om KCachgrind skal vise\n" +"absolutte begivenhedstællere eller relative (procent-visning)?

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

          ...at du kan indstille det maksimale antal punkter\n" +"for alle funktionslister i KCachegrind? Begrænsning af antallet\n" +"af punkter gøres for at få et hurtigt reagerende GUI. Det sidste punkt\n" +"på listen vil vise dig antallet af oversprungne funktioner, sammen\n" +"med en omkostningsbetingelse for disse oversprungne funktioner.

          \n" +"

          For at aktivere en funktion med lille omkostning, søges efter den og den\n" +"vælges i den flade profil. Valg af funktioner med lille omkostning vil\n" +"midlertidigt tilføje dem til den flade profilliste.

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

          ...at dækningsfanebladet - i modsætning til kaldliste-fanebladet -\n" +"viser alle funktioner der kalder den valgte funktion\n" +"(øvre del) / bliver kaldet af den valgte funktion (nedre del),\n" +"ligegyldigt hvor mange funktioner der er mellem dem på stakken?

          \n" +"

          Eksempler:

          \n" +"

          En indgang i den øvre liste for funktion foo1() med en værdi på 50%\n" +"med funktion bar() valgt betyder at 50% af alle omkostninger for funktionen\n" +"bar() skete mens den blev kaldet fra funktion foo1().

          \n" +"

          En indgang i den nederste liste for funktion foo2() med en værdi på 50%\n" +"med funktion bar() valgt betyder at 50% af alle omkostninger af funktionen\n" +"bar() skete mens foo2() blev kaldet fra bar().

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

          ...at hvis man venter på værktøjsvink indeni et trækort\n" +"så vil listen af navne på de indlejrede rektangler muse-\n" +"markøren er over vises?

          \n" +"

          Punkter fra denne liste kan vælges ved at trykke på\n" +"højre museknap.

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

          ...at du kan begrænse de omkostningstællere der vises til kun\n" +"nogle få parter af hele sporet ved at vælge disse dele i\n" +"\"Spor-valg\" dokbar?

          \n" +"

          For at generer flere parter i en profileringskørsel med\n" +"cachegrind, bruges f.eks. flaget --cachedumps=xxx for parter\n" +"af længde på xxx basale blokke (En basal blok er en kørsel\n" +"af ikke-forgrenede assembler-udsagn indeni din program-\n" +"kode).

          \n" + +#: configdlg.cpp:60 +msgid "Source Files" +msgstr "Kildefiler" + +#: configdlg.cpp:61 +msgid "C++ Classes" +msgstr "C++ Klasser" + +#: configdlg.cpp:62 +msgid "Function (no Grouping)" +msgstr "Funktion (ingen gruppering)" + +#: configdlg.cpp:157 configdlg.cpp:350 configdlg.cpp:371 +msgid "(always)" +msgstr "(altid)" + +#: configdlg.cpp:210 +msgid "KCachegrind Configuration" +msgstr "KCachegrind indstilling" + +#: configdlg.cpp:211 +msgid "" +"The Maximum Number of List Items should be below 500.The previous set value " +"(%1) will still be used." +msgstr "" +"Det maksimale antal listepunkter skal være under 500. Den tidligere satte værdi " +"(%1) vil stadig blive brugt." + +#: configdlg.cpp:384 +msgid "Choose Source Folder" +msgstr "Vælg kildemappe" + +#: partgraph.cpp:167 +#, c-format +msgid "Profile Part %1" +msgstr "Profil part %1" + +#: partgraph.cpp:226 +msgid "(no trace)" +msgstr "(intet spor)" + +#: partgraph.cpp:229 +msgid "(no part)" +msgstr "(ingen part)" + +#: partview.cpp:51 +msgid "Comment" +msgstr "Kommentar" + +#: 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 "" +"Spor-part-liste" +"

          Denne liste viser alle spor-parter for det indlæste spor. For hver part " +"vises egen-/inklusivomkostninger for den valgte funktion der bruges i parten; " +"procentomkostninger er altid relativt til den totale omkostning " +"for parten (ikke til hele sporet som i spor-part-overblikket). Kald der " +"sker til/fra denne funktion indeni spor-parten, vises også.

          " +"

          Ved at vælge en eller flere spor-parter fra listen, vil omkostningerne der " +"vises globalt i KCachegrind begrænses til netop dem i de valgte parter. Hvis " +"ingen er markeret på listen, vælges alle spor-parter implicit.

          " +"

          Dette er en multivalg-liste. Du kan vælge områder ved at trække musen eller " +"bruge SHIFT/CTRL-tasterne. Markering/afmarkering af spor-parter kan også " +"udføres ved brug af det dokbare spor-parts overblik. Den understøtter også " +"multivalg.

          " +"

          Bemærk at listen er skjult hvis der kun er indlæst én spor-part.

          " + +#: partview.cpp:106 +msgid "Select '%1'" +msgstr "Vælg '%1'" + +#: partview.cpp:107 +msgid "Hide '%1'" +msgstr "Skjul '%1'" + +#: partview.cpp:111 +msgid "Hide Selected" +msgstr "Skjul valgt" + +#: partview.cpp:112 +msgid "Show All" +msgstr "Vis alt" + +#~ msgid "(unnamed)" +#~ msgstr "(unavngiven)" + +#~ msgid "Function Query" +#~ msgstr "Funktionsforespørgsel" + +#~ msgid "Type part of a function name (insensitive) to get a list of matching functions from current function group" +#~ msgstr "Skriv en del af et funktionsnavn (ikke versalfølsomt) for at få en liste af matchende funktioner fra denne funktionsgruppe" -- cgit v1.2.1