Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 577572 Details for
Bug 811648
Cannot find new threads: generic error
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Some draft patch before it gets finalized.
gdb-libthreaddb-fail.patch (text/plain), 3.63 KB, created by
Jan Kratochvil
on 2012-04-15 18:05:56 UTC
(
hide
)
Description:
Some draft patch before it gets finalized.
Filename:
MIME Type:
Creator:
Jan Kratochvil
Created:
2012-04-15 18:05:56 UTC
Size:
3.63 KB
patch
obsolete
>diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c >index 4d09c6e..ca2d886 100644 >--- a/gdb/linux-thread-db.c >+++ b/gdb/linux-thread-db.c >@@ -185,6 +185,8 @@ struct thread_db_info > struct thread_db_info *thread_db_list; > > static void thread_db_find_new_threads_1 (ptid_t ptid); >+static int find_new_threads_once (struct thread_db_info *info, int iteration, >+ td_err_e *errp); > static void thread_db_find_new_threads_2 (ptid_t ptid, int until_no_new); > > /* Add the current inferior to the list of processes using libpthread. >@@ -739,6 +741,13 @@ try_thread_db_load_1 (struct thread_db_info *info) > info->td_thr_event_enable_p = dlsym (info->handle, "td_thr_event_enable"); > info->td_thr_tls_get_addr_p = dlsym (info->handle, "td_thr_tls_get_addr"); > >+ find_new_threads_once (info, 0, &err); >+ if (err != TD_OK) >+ { >+ warning (_("td_ta_thr_iter failed: %s"), thread_db_err_str (err)); >+ return 0; >+ } >+ > printf_unfiltered (_("[Thread debugging using libthread_db enabled]\n")); > > if (libthread_db_debug || *libthread_db_search_path) >diff --git a/gdb/testsuite/gdb.threads/gcore-thread.exp b/gdb/testsuite/gdb.threads/gcore-thread.exp >index dfb2314..7727e93 100644 >--- a/gdb/testsuite/gdb.threads/gcore-thread.exp >+++ b/gdb/testsuite/gdb.threads/gcore-thread.exp >@@ -143,11 +143,9 @@ proc load_core { corefile } { > global gdb_prompt > global libthread_db_seen > >- set libthread_db_seen 0 > gdb_test_multiple "core $corefile" \ > "re-load generated corefile" { > -re "\\\[Thread debugging using \[^ \r\n\]* enabled\\\]\r\n" { >- set libthread_db_seen 1 > exp_continue > } > -re " is not a core dump:.*\r\n$gdb_prompt $" { >@@ -170,39 +168,27 @@ proc load_core { corefile } { > return 1 > } > >-if ![load_core $corefile] { >- return >-} >- >-# FIXME: now what can we test about the thread state? >-# We do not know for certain that there should be at least >-# three threads, because who knows what kind of many-to-one >-# mapping various OS's may do? Let's assume that there must >-# be at least two threads: >- >-gdb_test "info threads" ".*${nl} 2 ${horiz}${nl}\\* 1 .*" \ >- "corefile contains at least two threads" >- >-# One thread in the corefile should be in the "thread2" function. >- >-gdb_test "info threads" ".* thread2 .*" \ >- "a corefile thread is executing thread2" >+foreach name { corefile core0file } { with_test_prefix $name { >+ if ![load_core [subst $$name]] { >+ continue >+ } > >-# The thread2 thread should be marked as the current thread. >+ # FIXME: now what can we test about the thread state? >+ # We do not know for certain that there should be at least >+ # three threads, because who knows what kind of many-to-one >+ # mapping various OS's may do? Let's assume that there must >+ # be at least two threads: > >-gdb_test "info threads" ".*${nl}\\* ${horiz} thread2 .*" \ >- "thread2 is current thread in corefile" >+ gdb_test "info threads" ".*${nl} 2 ${horiz}${nl}\\* 1 .*" \ >+ "corefile contains at least two threads" > >+ # One thread in the corefile should be in the "thread2" function. > >-# Test the uninitialized thread list. >+ gdb_test "info threads" ".* thread2 .*" \ >+ "a corefile thread is executing thread2" > >-if {"$core0file" != "" && [load_core $core0file]} { >- set test "zeroed-threads cannot be listed" >+ # The thread2 thread should be marked as the current thread. > >- if {!$libthread_db_seen} { >- verbose -log "No libthread_db loaded - -Wl,-z,relro compilation?" >- xfail $test >- } else { >- gdb_test "info threads" "Cannot find new threads: .*" $test >- } >-} >+ gdb_test "info threads" ".*${nl}\\* ${horiz} thread2 .*" \ >+ "thread2 is current thread in corefile" >+}}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 811648
:
577572