This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug threads/19354] "info threads" error with multiple inferiors


https://sourceware.org/bugzilla/show_bug.cgi?id=19354

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Pedro Alves <palves@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=a6904d5a6aa63e4bef7207407250d8b76b56f8a9

commit a6904d5a6aa63e4bef7207407250d8b76b56f8a9
Author: Pedro Alves <palves@redhat.com>
Date:   Thu Dec 17 14:20:52 2015 +0000

    Fix PR threads/19354: "info threads" error with multiple inferiors

    Note: this applies on top of:
     [PATCH] Remove support for LinuxThreads and vendor 2.4 kernels w/
backported NPTL
     https://sourceware.org/ml/gdb-patches/2015-12/msg00214.html

    We try to avoid using libthread_db.so to list threads in the inferior
    when debugging live processes, but the code that decides whether to
    use it decides incorrectly if you have more than one inferior, and the
    current inferior doesn't have execution yet.  The result is visible
    as:

     (gdb) add-inferior
     Added inferior 2
     (gdb) inferior 2
     [Switching to inferior 2 [<null>] (<noexec>)]
     (gdb) info inferiors
       Num  Description       Executable
       1    process 15397     /home/pedro/gdb/tests/threads
     * 2    <null>
     (gdb) info threads
     Cannot find new threads: generic error
     (gdb)

    Fix this by checking whether each inferior has execution rather than
    just the current inferior.

    By moving the core updating to linux-nat.c's update_thread_list
    implementation, this also ends up fixing the
    lwp-last-seen-running-on-core updating in the case we're debugging a
    program that uses raw clone rather than pthreads, as linux-thread-db.c
    isn't pushed in the target stack in that scenario.

    Tested on x86_64 Fedora 20.

    gdb/ChangeLog:
    2015-12-17  Pedro Alves  <palves@redhat.com>

        PR threads/19354
        * linux-nat.c (linux_nat_update_thread_list): Update process cores
        each lwp was last seen running on here.
        * linux-thread-db.c (update_thread_core): Delete.
        (thread_db_update_thread_list_td_ta_thr_iter): Rename to ...
        (thread_db_update_thread_list): ... this.  Skip inferiors with
        execution.  Also call the target beneath.
        (thread_db_update_thread_list): Delete.

    gdb/testsuite/ChangeLog:
    2015-12-17  Pedro Alves  <palves@redhat.com>

        PR threads/19354
        * gdb.multi/info-threads.exp: New file.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]