diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 9f959c176da..4b1b74e6e8f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2010-09-22 Joel Brobecker + + * ada-tasks.c (read_atcb): Do not compute the task ptid when + debugging a core file. + 2010-09-22 Jan Kratochvil Code cleanup. diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c index f57f44ff96e..8e42252d42e 100644 --- a/gdb/ada-tasks.c +++ b/gdb/ada-tasks.c @@ -583,9 +583,18 @@ read_atcb (CORE_ADDR task_id, struct ada_task_info *task_info) } } - /* And finally, compute the task ptid. */ + /* 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 (ada_task_is_alive (task_info)) + 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;