11debugging_tools.doxy 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. * This file is part of the StarPU Handbook.
  3. * Copyright (C) 2009--2011 Universit@'e de Bordeaux
  4. * Copyright (C) 2010, 2011, 2012, 2013, 2014 CNRS
  5. * Copyright (C) 2011, 2012 INRIA
  6. * See the file version.doxy for copying conditions.
  7. */
  8. /*! \page DebuggingTools Debugging Tools
  9. StarPU provides several tools to help debugging applications. Execution traces
  10. can be generated and displayed graphically, see \ref
  11. GeneratingTracesWithFxT.
  12. Some gdb helpers are also provided to show the whole StarPU state:
  13. \verbatim
  14. (gdb) source tools/gdbinit
  15. (gdb) help starpu
  16. \endverbatim
  17. For instance, one can print all tasks with <c>starpu-print-all-tasks</c>,
  18. print all datas with <c>starpu-print-datas</c>, print all pending data
  19. transfers with <c>starpu-print-prequests</c>, <c>starpu-print-requests</c>, <c>starpu-print-frequests</c>, <c>starpu-print-irequests</c>,
  20. print pending MPI requests with
  21. <c>starpu-mpi-print-detached-requests</c>
  22. Some functions can only work if --enable-debug was passed to ./configure
  23. (because they impact performance)
  24. Valgrind can be used on StarPU: valgrind.h just needs to be found at ./configure
  25. time, to tell valgrind about some known false positives and disable host memory
  26. pinning. Other known false positives can be suppressed by giving the suppression
  27. files in tools/valgrind/ *.suppr to valgrind's --suppressions option.
  28. The environment variable \ref STARPU_DISABLE_KERNELS can also be set to 1 to make
  29. StarPU do everything (schedule tasks, transfer memory, etc.) except actually
  30. calling the application-provided kernel functions, i.e. the computation will not
  31. happen. This permits to quickly check that the task scheme is working properly.
  32. The Temanejo task debugger can also be used, see \ref UsingTheTemanejoTaskDebugger.
  33. \section UsingTheTemanejoTaskDebugger Using The Temanejo Task Debugger
  34. StarPU can connect to Temanejo >= 1.0rc2 (see
  35. http://www.hlrs.de/temanejo), to permit
  36. nice visual task debugging. To do so, build Temanejo's <c>libayudame.so</c>,
  37. install <c>Ayudame.h</c> to e.g. <c>/usr/local/include</c>, apply the
  38. <c>tools/patch-ayudame</c> to it to fix C build, re-<c>./configure</c>, make
  39. sure that it found it, rebuild StarPU. Run the Temanejo GUI, give it the path
  40. to your application, any options you want to pass it, the path to <c>libayudame.so</c>.
  41. It permits to visualize the task graph, add breakpoints, continue execution
  42. task-by-task, and run gdb on a given task, etc.
  43. \image html temanejo.png
  44. \image latex temanejo.png "" width=\textwidth
  45. Make sure to specify at least the same number of CPUs in the dialog box as your
  46. machine has, otherwise an error will happen during execution. Future versions
  47. of Temanejo should be able to tell StarPU the number of CPUs to use.
  48. Tag numbers have to be below <c>4000000000000000000ULL</c> to be usable for
  49. Temanejo (so as to distinguish them from tasks).
  50. */