[Ada] Do not compute task ptid when debugging core file
[deliverable/binutils-gdb.git] / gdb / ada-tasks.c
index f57f44ff96e9aad1c2cdea4dcd38099429f2a7ba..8e42252d42e3fe62e27ff794305d284bd25150c0 100644 (file)
@@ -583,9 +583,18 @@ read_atcb (CORE_ADDR task_id, struct ada_task_info *task_info)
         }
     }
 
-  /* And finally, compute the task ptid.  */
-
-  if (ada_task_is_alive (task_info))
+  /* And finally, compute the task ptid.  Note that there are situations
+     where this cannot be determined:
+       - The task is no longer alive - the ptid is irrelevant;
+       - We are debugging a core file - the thread is not always
+         completely preserved for us to link back a task to its
+         underlying thread.  Since we do not support task switching
+         when debugging core files anyway, we don't need to compute
+         that task ptid.
+     In either case, we don't need that ptid, and it is just good enough
+     to set it to null_ptid.  */
+
+  if (target_has_execution && ada_task_is_alive (task_info))
     task_info->ptid = ptid_from_atcb_common (common_value);
   else
     task_info->ptid = null_ptid;
This page took 0.041414 seconds and 4 git commands to generate.