Solaris - procfs: couldn't find pid 32748 (kernel thread 21) in procinfo list

Petr Sumbera petr.sumbera@oracle.com
Tue Jun 2 07:32:08 GMT 2020


On 01.06.2020 21:12, Pedro Alves wrote:
> On 6/1/20 12:39 PM, Petr Sumbera via Gdb wrote:
>> The issue seems to be that the LWP exits and the status->kind is set to TARGET_WAITKIND_SPURIOUS:
>>
>> https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gdb/procfs.c;h=f6c6b0e71c16224d3e7345ca09e011cdcf06349a;hb=HEAD#l2214
>>
>> But instantly it's added into the list again here:
>>
>> https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gdb/infrun.c;h=95fc3bfe45930b53c33cb4de165db9c070449ad8;hb=HEAD#l5200
>>
>> But there is no longer such LWP in /proc.
>>
>> Any suggestion?

Thanks for looking at it!

> Either:
> 
> - replace TARGET_WAITKIND_SPURIOUS with TARGET_WAITKIND_THREAD_EXITED, or,

With this I'm getting:

[LWP    21         exited]
[LWP    21         exited]
/builds/psumbera/userland-gdb-procinfo/components/gdb/gdb-9.2/gdb/thread.c:459: 
internal-error: void delete_thread_1(thread_info*, bool): Assertion `thr 
!= nullptr' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.

> - replace
>      status->kind = TARGET_WAITKIND_SPURIOUS;
>      return retval;
>    with
>      goto wait_again;
>    instead.

and with this:

[LWP    20         exited]
[LWP    20         exited]
/builds/psumbera/userland-gdb-procinfo/components/gdb/gdb-9.2/gdb/thread.c:459: 
internal-error: void delete_thread_1(thread_info*, bool): Assertion `thr 
!= nullptr' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.

--

Note that in both cases there are TWO exits for one LWP. But LWP numbers 
differ.

Any other comment?

Thanks!

Petr


More information about the Gdb mailing list