* linux-proc.c (struct linux_corefile_thread_data): Add num_notes

member.
(linux_corefile_thread_callback): Increase args->num_notes.
(linux_make_note_section): Initialize thread_args.num_notes, and
use it to determine whether notes for any threads were created.
This commit is contained in:
Mark Kettenis 2002-08-23 19:06:05 +00:00
parent fcf6238032
commit 8acc293538
2 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,11 @@
2002-08-23 Mark Kettenis <kettenis@gnu.org>
* linux-proc.c (struct linux_corefile_thread_data): Add num_notes
member.
(linux_corefile_thread_callback): Increase args->num_notes.
(linux_make_note_section): Initialize thread_args.num_notes, and
use it to determine whether notes for any threads were created.
2002-08-23 Donn Terry <dterry@microsoft.com>
* proc-api.c (rw_table): Do not include a row for PCDSTOP if the

View File

@ -198,10 +198,12 @@ linux_do_thread_registers (bfd *obfd, ptid_t ptid,
return note_data;
}
struct linux_corefile_thread_data {
bfd *obfd;
struct linux_corefile_thread_data
{
bfd *obfd;
char *note_data;
int *note_size;
int *note_size;
int num_notes;
};
/* Function: linux_corefile_thread_callback
@ -224,6 +226,7 @@ linux_corefile_thread_callback (struct thread_info *ti, void *data)
ti->ptid,
args->note_data,
args->note_size);
args->num_notes++;
inferior_ptid = saved_ptid;
registers_changed ();
target_fetch_registers (-1); /* FIXME should not be necessary;
@ -271,11 +274,12 @@ linux_make_note_section (bfd *obfd, int *note_size)
thread_args.obfd = obfd;
thread_args.note_data = note_data;
thread_args.note_size = note_size;
thread_args.num_notes = 0;
iterate_over_threads (linux_corefile_thread_callback, &thread_args);
if (thread_args.note_data == note_data)
if (thread_args.num_notes == 0)
{
/* iterate_over_threads didn't come up with any threads;
just use inferior_ptid. */
just use inferior_ptid. */
note_data = linux_do_thread_registers (obfd, inferior_ptid,
note_data, note_size);
}