Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* Re: [rfa:threads] Report when using libthread_db
@ 2003-08-22 19:40 Michael Elizabeth Chastain
  0 siblings, 0 replies; 18+ messages in thread
From: Michael Elizabeth Chastain @ 2003-08-22 19:40 UTC (permalink / raw)
  To: ac131313, kettenis, msnyder; +Cc: cgd, ezannoni, gdb-patches

Crap.  I'm having test bed troubles here.  My test bed says that
there are regressions in gdb.base/relocate.exp, but it turns out
that I have extra crap in my versions of gdb, so my before/after
property is dirty.  Then I re-ran it and borked up the commands.

I gotta forget about other stuff and focus on getting a clean
test of this patch.

Michael C

  2003-08-05  Andrew Cagney  <cagney@redhat.com>

	  * thread-db.c (verbose_dlsym): New function.
	  (thread_db_load): Use verbose_dlsym
	  (thread_db_new_objfile): Print that libthread_db was loaded, and
	  that thread debugging was enabled.


^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [rfa:threads] Report when using libthread_db
@ 2003-09-08  3:05 Michael Elizabeth Chastain
  2003-09-08 13:21 ` Andrew Cagney
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Elizabeth Chastain @ 2003-09-08  3:05 UTC (permalink / raw)
  To: drow; +Cc: ac131313, cgd, ezannoni, gdb-patches, kettenis, msnyder

The new message is printed on a separate line:

  (gdb) file object.o^M
  Reading symbols from object.o...done.^M
  Using host libthread_db library "/lib/libthread_db.so.1".^M
  (gdb) FAIL: gdb.stabs/weird.exp: Errors reading weirdx.o

Or am I missing something?

Michael C


^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [rfa:threads] Report when using libthread_db
@ 2003-09-08  2:28 Michael Elizabeth Chastain
  2003-09-08  3:01 ` Daniel Jacobowitz
  2003-09-09 14:29 ` Elena Zannoni
  0 siblings, 2 replies; 18+ messages in thread
From: Michael Elizabeth Chastain @ 2003-09-08  2:28 UTC (permalink / raw)
  To: ezannoni; +Cc: ac131313, cgd, gdb-patches, kettenis, msnyder

Somebody's mailer expanded the tabs to spaces, which made me
do a little more work.  No big deal.  And it needs a ChangeLog.

Other than that, this patch works fine in my test bed.  It fixes the
problem all right.

I would write it differently, with the "Reading symbols ..." as a common
part and then a "(|Using host libthread_db ...)".  But I'd like to just
get it done and move on to the next problem.

Recommended for approval, on HEAD only, not the branch.
The new message is not on the branch so this is not needed
on the branch.

Michael C

===

--- gdb+dejagnu-5.3.90_20030710/gdb/testsuite/gdb.base/relocate.exp.1   Fri Aug 15 11:20:44 2003
+++ gdb+dejagnu-5.3.90_20030710/gdb/testsuite/gdb.base/relocate.exp     Fri Aug 15 11:23:31 2003
@@ -67,7 +67,7 @@ gdb_reinitialize_dir $srcdir/$subdir
 
 # Load the object file.
 gdb_test "add-symbol-file ${binfile} 0" \
-       "Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\." \
+       "(Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\.)|(Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\..*Using host libthread_db library .*libthread_db.so.*\\.)" \
        "add-symbol-file ${testfile}.o 0" \
        "add symbol table from file \".*${testfile}\\.o\" at\[ \t\r\n\]+\.text_addr = 0x0\[\r\n\]+\\(y or n\\) " \
        "y"
@@ -116,7 +116,7 @@ gdb_test "set \$offset = 0x10000" ""
 
 # Load the object file.
 gdb_test "add-symbol-file ${binfile} \$offset" \
-       "Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\." \
+       "(Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\.)|(Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\..*Using host libthread_db library .*libthread_db.so.*\\.)" \
        "add-symbol-file ${testfile}.o \$offset" \
        "add symbol table from file \".*${testfile}\\.o\" at\[ \t\r\n\]+\.text_addr = 0x10000\[\r\n\]+\\(y or n\\) " \
        "y"


^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [rfa:threads] Report when using libthread_db
@ 2003-08-23  1:49 Michael Elizabeth Chastain
  2003-09-04 17:24 ` Andrew Cagney
  2003-09-05 15:42 ` Elena Zannoni
  0 siblings, 2 replies; 18+ messages in thread
From: Michael Elizabeth Chastain @ 2003-08-23  1:49 UTC (permalink / raw)
  To: ac131313, kettenis, msnyder; +Cc: cgd, ezannoni, gdb-patches

Tested on native i686-pc-linux-gnu, red hat linux 8,
gcc v2 and v3, dwarf-2 and stabs+.

The extra messages cause regressions in three tests:

  gdb.base/relocate.exp: add-symbol-file relocate.o $offset
  gdb.base/relocate.exp: add-symbol-file relocate.o 0
  gdb.stabs/weird.exp: Errors reading weirdx.o

The relocate.exp FAILs happened in every configuration,
and the weird.exp FAILs happened with -gstabs+.

Looking at gdb.log there doesn't appear to be an actual semantic
problem.  Still I would be nervous about sliding this into the release.
How about HEAD only, and then fix up the affected tests?

Michael C

  2003-08-05  Andrew Cagney  <cagney@redhat.com>

	* thread-db.c (verbose_dlsym): New function.
	(thread_db_load): Use verbose_dlsym
	(thread_db_new_objfile): Print that libthread_db was loaded, and
	that thread debugging was enabled.


^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [rfa:threads] Report when using libthread_db
@ 2003-08-08 15:51 Michael Elizabeth Chastain
  0 siblings, 0 replies; 18+ messages in thread
From: Michael Elizabeth Chastain @ 2003-08-08 15:51 UTC (permalink / raw)
  To: ac131313, cgd; +Cc: ezannoni, gdb-patches

> Michael, Mark, ok for mainline?  Too risky for 6.0?

Proofread, but not tested.

I would say, throw it on mainline and see if it bounces.
But keep it out of 6.0.  It doesn't fix a regression or a serious bug.

Michael C


^ permalink raw reply	[flat|nested] 18+ messages in thread
* Re: [rfa:threads] Report when using libthread_db
@ 2003-08-05 19:51 Michael Elizabeth Chastain
  2003-08-05 20:10 ` Elena Zannoni
  0 siblings, 1 reply; 18+ messages in thread
From: Michael Elizabeth Chastain @ 2003-08-05 19:51 UTC (permalink / raw)
  To: ac131313, gdb-patches

> Should the "Loading" message come after the (C) notice, or the (C) put 
> before the modules are initialized?

I am not a lawyer, but ... the legal requirement is that copyright
notices appear in a prominent place.  I don't think it has to be the
very first thing printed, it just has to be prominent.  I think the idea
is that if someone copies it without your permission, and then they
claim "I didn't notice that you copyrighted it!", then you would say
"any half-awake person would have seen my copyright notice WHILE THEY
WERE COPYING THE REST OF MY WORK!"

If you look at a book, the copyright notice isn't on the cover.
But it's close to the front.

There might be a GNU coding standard about it though.

Michael C


^ permalink raw reply	[flat|nested] 18+ messages in thread
* [rfa:threads] Report when using libthread_db
@ 2003-08-05 19:26 Andrew Cagney
  2003-08-07 19:57 ` Andrew Cagney
  0 siblings, 1 reply; 18+ messages in thread
From: Andrew Cagney @ 2003-08-05 19:26 UTC (permalink / raw)
  To: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 908 bytes --]

Hello,

This modifies thread-db.c so that reports when libthread_db has been 
loaded and when it is being used vis:

The load ...

Loading libthread_db library "libthread_db.so.1"
GNU gdb 2003-08-05-cvs
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU ....
(gdb)

The use ...

(gdb) run
Starting program: 
/home/cagney/PENDING/2003-08-05-warn-thread-db/N-x86_64-unknow
n-linux-gnu/gdb/testsuite/gdb.threads/pthreads
Threaded debugging using libthread_db enabled.
[New Thread 182894192832 (LWP 23928)]
[Switching to Thread 182894192832 (LWP 23928)]

Thoughts?

Perhaphs the enabled message should be in []?
Should the "Loading" message come after the (C) notice, or the (C) put 
before the modules are initialized?
Anyone know of a way of finding the exact actual libthread_db version so 
that can be printed as well?

If that's resolved, ok for 6.0 or mainline?

Andrew

[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 3341 bytes --]

2003-08-05  Andrew Cagney  <cagney@redhat.com>

	* thread-db.c (verbose_dlsym): New function.
	(thread_db_load): Use verbose_dlsym.  Print that the libthread-db
	is being loaded.
	(thread_db_new_objfile): Print that thread debugging was enabled.

Index: thread-db.c
===================================================================
RCS file: /cvs/src/src/gdb/thread-db.c,v
retrieving revision 1.33
diff -u -r1.33 thread-db.c
--- thread-db.c	5 Jun 2003 18:22:02 -0000	1.33
+++ thread-db.c	5 Aug 2003 19:16:02 -0000
@@ -375,6 +375,15 @@
   target_beneath = target;
 }
 
+static void *
+verbose_dlsym (void *handle, const char *name)
+{
+  void *sym = dlsym (handle, name);
+  if (sym == NULL)
+    warning ("Symbol \"%s\" not found in libthread_db: %s", name, dlerror ());
+  return sym;
+}
+
 static int
 thread_db_load (void)
 {
@@ -390,51 +399,57 @@
 			"GDB will not be able to debug pthreads.\n\n");
       return 0;
     }
+  else
+    {
+      fprintf_unfiltered (gdb_stdlog, "Loading libthread_db library \"%s\"\n",
+			  LIBTHREAD_DB_SO);
+			  
+    }
 
   /* Initialize pointers to the dynamic library functions we will use.
      Essential functions first.  */
 
-  td_init_p = dlsym (handle, "td_init");
+  td_init_p = verbose_dlsym (handle, "td_init");
   if (td_init_p == NULL)
     return 0;
 
-  td_ta_new_p = dlsym (handle, "td_ta_new");
+  td_ta_new_p = verbose_dlsym (handle, "td_ta_new");
   if (td_ta_new_p == NULL)
     return 0;
 
-  td_ta_map_id2thr_p = dlsym (handle, "td_ta_map_id2thr");
+  td_ta_map_id2thr_p = verbose_dlsym (handle, "td_ta_map_id2thr");
   if (td_ta_map_id2thr_p == NULL)
     return 0;
 
-  td_ta_map_lwp2thr_p = dlsym (handle, "td_ta_map_lwp2thr");
+  td_ta_map_lwp2thr_p = verbose_dlsym (handle, "td_ta_map_lwp2thr");
   if (td_ta_map_lwp2thr_p == NULL)
     return 0;
 
-  td_ta_thr_iter_p = dlsym (handle, "td_ta_thr_iter");
+  td_ta_thr_iter_p = verbose_dlsym (handle, "td_ta_thr_iter");
   if (td_ta_thr_iter_p == NULL)
     return 0;
 
-  td_thr_validate_p = dlsym (handle, "td_thr_validate");
+  td_thr_validate_p = verbose_dlsym (handle, "td_thr_validate");
   if (td_thr_validate_p == NULL)
     return 0;
 
-  td_thr_get_info_p = dlsym (handle, "td_thr_get_info");
+  td_thr_get_info_p = verbose_dlsym (handle, "td_thr_get_info");
   if (td_thr_get_info_p == NULL)
     return 0;
 
-  td_thr_getfpregs_p = dlsym (handle, "td_thr_getfpregs");
+  td_thr_getfpregs_p = verbose_dlsym (handle, "td_thr_getfpregs");
   if (td_thr_getfpregs_p == NULL)
     return 0;
 
-  td_thr_getgregs_p = dlsym (handle, "td_thr_getgregs");
+  td_thr_getgregs_p = verbose_dlsym (handle, "td_thr_getgregs");
   if (td_thr_getgregs_p == NULL)
     return 0;
 
-  td_thr_setfpregs_p = dlsym (handle, "td_thr_setfpregs");
+  td_thr_setfpregs_p = verbose_dlsym (handle, "td_thr_setfpregs");
   if (td_thr_setfpregs_p == NULL)
     return 0;
 
-  td_thr_setgregs_p = dlsym (handle, "td_thr_setgregs");
+  td_thr_setgregs_p = verbose_dlsym (handle, "td_thr_setgregs");
   if (td_thr_setgregs_p == NULL)
     return 0;
 
@@ -624,6 +639,8 @@
       break;
 
     case TD_OK:
+      fprintf_unfiltered (gdb_stdlog, "Threaded debugging using libthread_db enabled.\n");
+
       /* The thread library was detected.  Activate the thread_db target.  */
       push_target (&thread_db_ops);
       using_thread_db = 1;

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2003-09-09 14:29 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-22 19:40 [rfa:threads] Report when using libthread_db Michael Elizabeth Chastain
  -- strict thread matches above, loose matches on Subject: below --
2003-09-08  3:05 Michael Elizabeth Chastain
2003-09-08 13:21 ` Andrew Cagney
2003-09-08  2:28 Michael Elizabeth Chastain
2003-09-08  3:01 ` Daniel Jacobowitz
2003-09-09 14:29 ` Elena Zannoni
2003-08-23  1:49 Michael Elizabeth Chastain
2003-09-04 17:24 ` Andrew Cagney
2003-09-05 15:42 ` Elena Zannoni
2003-08-08 15:51 Michael Elizabeth Chastain
2003-08-05 19:51 Michael Elizabeth Chastain
2003-08-05 20:10 ` Elena Zannoni
2003-08-05 19:26 Andrew Cagney
2003-08-07 19:57 ` Andrew Cagney
     [not found]   ` <mailpost.1060286286.1556@news-sj1-1>
2003-08-07 20:31     ` cgd
2003-08-08 14:51       ` Andrew Cagney
2003-08-21 22:10         ` Andrew Cagney
2003-08-21 22:47           ` Mark Kettenis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox