gdbinit 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. define starpu-print-job
  2. set language c
  3. set $job = (struct starpu_job_s *)$arg0
  4. printf "StarPU Job (%p)\n", $job
  5. printf "\ttask:\t\t\t\t<%p>\n", $job->task
  6. printf "\tsubmitted:\t\t\t<%d>\n", $job->submitted
  7. printf "\tterminated:\t\t\t<%d>\n", $job->terminated
  8. printf "\tjob_id:\t\t\t\t<%d>\n", $job->job_id
  9. if _starpu_use_fxt == 1
  10. printf "\tmodel_name:\t\t\t<%s>\n", $job->model_name
  11. end
  12. end
  13. document starpu-print-job
  14. Prints a StarPU job
  15. end
  16. define starpu-print-task
  17. set language c
  18. set $task = (struct starpu_task *)$arg0
  19. set $job = (struct starpu_job_s *)$task->starpu_private
  20. if $task->status == 0
  21. set $status="STARPU_TASK_INVALID"
  22. end
  23. if $task->status == 1
  24. set $status="STARPU_TASK_BLOCKED"
  25. end
  26. if $task->status == 2
  27. set $status="STARPU_TASK_READY"
  28. end
  29. if $task->status == 3
  30. set $status="STARPU_TASK_RUNNING"
  31. end
  32. if $task->status == 4
  33. set $status="STARPU_TASK_FINISHED"
  34. end
  35. if $task->status == 5
  36. set $status="STARPU_TASK_BLOCKED_ON_TAG"
  37. end
  38. if $task->status == 6
  39. set $status="STARPU_TASK_BLOCKED_ON_TASK"
  40. end
  41. if $task->status == 7
  42. set $status="STARPU_TASK_BLOCKED_ON_DATA"
  43. end
  44. printf "StarPU Task (%p)\n", $task
  45. printf "\tcodelet:\t\t\t<%p>\n", $task->cl
  46. printf "\tcallback:\t\t\t<%p>\n", $task->callback_func
  47. printf "\tsynchronous:\t\t\t<%d>\n", $task->synchronous
  48. printf "\texecute_on_a_specific_worker:\t<%d>\n", $task->execute_on_a_specific_worker
  49. printf "\tworkerid:\t\t\t<%d>\n", $task->workerid
  50. printf "\tdetach:\t\t\t\t<%d>\n", $task->detach
  51. printf "\tdestroy:\t\t\t<%d>\n", $task->destroy
  52. printf "\tregenerate:\t\t\t<%d>\n", $task->regenerate
  53. printf "\tstatus:\t\t\t\t<%s>\n", $status
  54. printf "\tjob:\t\t\t\t<%p>\n", $job
  55. printf "\tndeps:\t\t\t\t<%u>\n", $job->job_successors->ndeps
  56. printf "\tndeps_completed:\t\t<%u>\n", $job->job_successors->ndeps_completed
  57. printf "\tnsuccs:\t\t\t\t<%u>\n", $job->job_successors->nsuccs
  58. if $job
  59. starpu-print-job $job
  60. end
  61. end
  62. document starpu-print-task
  63. Prints a StarPU task
  64. end
  65. define starpu-tasks-on-worker
  66. set language c
  67. set $worker=config->workers[$arg0]
  68. set $task=$worker->local_tasks->head
  69. while $task != 0x0
  70. starpu-print-task $task
  71. set $task=$task->next
  72. end
  73. end
  74. define starpu-tasks-on-workers
  75. set language c
  76. set $num=0
  77. while $num<config->topology->nworkers
  78. printf "Worker %s\n", config->workers[$num].name
  79. starpu-tasks-on-worker $num
  80. set $num = $num + 1
  81. end
  82. end
  83. define starpu-workers
  84. set language c
  85. set $num=0
  86. printf "[Id] Name Arch Mask Devid Bindid Workerid Isrunning Isinitialized\n"
  87. while $num<config->topology->nworkers
  88. set $worker=&config->workers[$num]
  89. printf "[%2d] %-10s %-4d %-4d %-5d %-6d %-8d %-9d %-13d\n", $num, $worker->name, $worker->arch, $worker->worker_mask, \
  90. $worker->devid, $worker->bindid, $worker->workerid, $worker->worker_is_running, $worker->worker_is_initialized
  91. set $num = $num + 1
  92. end
  93. end
  94. document starpu-workers
  95. Prints a list of the StarPU workers
  96. end
  97. define starpu-tasks
  98. printf "%d submitted tasks\n", nsubmitted
  99. printf "TODO: currently running\n"
  100. end
  101. define starpu
  102. printf "Here I am...\n"
  103. end
  104. define starpu-print-mode
  105. if ($arg0 & 1)
  106. printf "R"
  107. end
  108. if ($arg0 & 2)
  109. printf "W"
  110. end
  111. if ($arg0 & 4)
  112. printf " SCRATCH"
  113. end
  114. if ($arg0 & 8)
  115. printf " REDUX"
  116. end
  117. end
  118. define starpu-print-data
  119. set language c
  120. set $data = $arg0
  121. printf "Data handle %p\n", $data
  122. printf "Home node %d\n", $data->home_node
  123. printf "Requests %d\n", $data->refcnt
  124. printf "Current mode "
  125. starpu-print-mode $data->current_mode
  126. printf "\n"
  127. if $data->current_mode & (4|8)
  128. set $n = 0
  129. while $n < config.topology.nworkers
  130. set $replicate = $data->per_worker[$n]
  131. printf "Worker %2d %10s:", $n, config->workers[$n]->name
  132. if $replicate->state == 0
  133. printf " OWNER"
  134. end
  135. if $replicate->state == 1
  136. printf " SHARED"
  137. end
  138. if $replicate->state == 2
  139. printf " INVALID"
  140. end
  141. if $replicate->initialized
  142. printf " initialized"
  143. end
  144. printf "\n"
  145. set $n = $n + 1
  146. end
  147. else
  148. set $n = 0
  149. while $n < descr.nnodes
  150. set $replicate = $data->per_node[$n]
  151. printf "Node %2d:", $n
  152. if $replicate->state == 0
  153. printf " OWNER"
  154. end
  155. if $replicate->state == 1
  156. printf " SHARED"
  157. end
  158. if $replicate->state == 2
  159. printf " INVALID"
  160. end
  161. if $replicate->initialized
  162. printf " initialized"
  163. end
  164. printf "\n"
  165. set $n = $n + 1
  166. end
  167. end
  168. printf "Post sync tasks\n"
  169. set $tasklist = $data->post_sync_tasks
  170. while $tasklist != 0x0
  171. starpu-print-task $tasklist->task
  172. set $tasklist = $tasklist->next
  173. end
  174. printf "Requester tasks\n"
  175. set $requesterlist = $data->req_list._head
  176. while $requesterlist != 0x0
  177. print "mode: "
  178. starpu-print-mode $requesterlist->mode
  179. print "\n"
  180. starpu-print-job $requesterlist->j
  181. set $requesterlist = $requesterlist->_next
  182. end
  183. if ($data->nchildren)
  184. printf "%d children\n", $data->nchildren
  185. end
  186. end
  187. define starpu-print-datas
  188. set $entry = registered_handles
  189. while $entry
  190. starpu-print-data $entry->handle
  191. printf "\n"
  192. set $entry = (struct handle_entry *) $entry.hh.next
  193. end
  194. end
  195. document starpu
  196. List of StarPU-specific gdb functions:
  197. starpu-workers prints a list of the StarPU workers
  198. starpu-tasks-on-workers prints a list of the tasks currently running on workers
  199. starpu-tasks-on-worker prints a list of the tasks running on the given worker
  200. starpu-print-job prints a StarPU job
  201. starpu-print-task prints a StarPU task
  202. starpu-print-data prints a StarPU data handle
  203. starpu-print-datas prints all StarPU data handles
  204. starpu-tasks prints a list of the tasks flowing in StarPU
  205. end