From: Michael Snyder <msnyder@cygnus.com>
To: Andrew Cagney <ac131313@cygnus.com>
Cc: gdb-patches@sourceware.cygnus.com, kettenis@wins.uva.nl
Subject: [patch] change printf to fprintf_unfiltered.
Date: Tue, 01 May 2001 13:38:00 -0000 [thread overview]
Message-ID: <3AEF1ED6.96DCA9FE@cygnus.com> (raw)
In-Reply-To: <3AEE0DE6.8B843E8D@cygnus.com>
Andrew Cagney wrote:
>
> Michael Snyder wrote:
>
> > ! if (debug_lin_lwp)
> > ! printf ("Delayed SIGSTOP caught for %s.\n",
> > ! target_pid_to_str (lp->pid));
> > !
>
> FYI, once this is in, someone should go through and change the
> printf()'s to:
OK:
2001-05-01 Michael Snyder <msnyder@redhat.com>
* lin-lwp.c: Change printf to fprintf_unfiltered.
Index: lin-lwp.c
===================================================================
RCS file: /cvs/src/src/gdb/lin-lwp.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 lin-lwp.c
*** lin-lwp.c 2001/04/30 20:25:07 1.12
--- lin-lwp.c 2001/05/01 20:36:46
*************** stop_wait_callback (struct lwp_info *lp,
*** 520,526 ****
target_pid_to_str (lp->pid));
}
if (debug_lin_lwp)
! printf ("%s exited.\n", target_pid_to_str (lp->pid));
delete_lwp (lp->pid);
return 0;
--- 520,527 ----
target_pid_to_str (lp->pid));
}
if (debug_lin_lwp)
! fprintf_unfiltered (gdb_stdlog,
! "%s exited.\n", target_pid_to_str (lp->pid));
delete_lwp (lp->pid);
return 0;
*************** stop_wait_callback (struct lwp_info *lp,
*** 549,557 ****
thread will have already tripped on it. */
if (debug_lin_lwp)
! printf ("Tripped breakpoint at %lx in LWP %d"
! " while waiting for SIGSTOP.\n",
! (long) read_pc_pid (lp->pid), pid);
/* Set the PC to before the trap. */
if (DECR_PC_AFTER_BREAK)
--- 550,559 ----
thread will have already tripped on it. */
if (debug_lin_lwp)
! fprintf_unfiltered (gdb_stdlog,
! "Tripped breakpoint at %lx in LWP %d"
! " while waiting for SIGSTOP.\n",
! (long) read_pc_pid (lp->pid), pid);
/* Set the PC to before the trap. */
if (DECR_PC_AFTER_BREAK)
*************** stop_wait_callback (struct lwp_info *lp,
*** 560,567 ****
else
{
if (debug_lin_lwp)
! printf ("Received %s in LWP %d while waiting for SIGSTOP.\n",
! strsignal (WSTOPSIG (status)), pid);
/* The thread was stopped with a signal other than
SIGSTOP, and didn't accidentiliy trip a breakpoint.
--- 562,570 ----
else
{
if (debug_lin_lwp)
! fprintf_unfiltered (gdb_stdlog,
! "Received %s in LWP %d while waiting for SIGSTOP.\n",
! strsignal (WSTOPSIG (status)), pid);
/* The thread was stopped with a signal other than
SIGSTOP, and didn't accidentiliy trip a breakpoint.
*************** lin_lwp_wait (int pid, struct target_wai
*** 620,627 ****
if (lp)
{
if (debug_lin_lwp)
! printf ("Using pending wait status for LWP %d.\n",
! GET_LWP (lp->pid));
status = lp->status;
lp->status = 0;
--- 623,631 ----
if (lp)
{
if (debug_lin_lwp)
! fprintf_unfiltered (gdb_stdlog,
! "Using pending wait status for LWP %d.\n",
! GET_LWP (lp->pid));
status = lp->status;
lp->status = 0;
*************** lin_lwp_wait (int pid, struct target_wai
*** 635,641 ****
else if (is_lwp (pid))
{
if (debug_lin_lwp)
! printf ("Waiting for specific LWP %d.\n", GET_LWP (pid));
/* We have a specific LWP to check. */
lp = find_lwp_pid (GET_LWP (pid));
--- 639,646 ----
else if (is_lwp (pid))
{
if (debug_lin_lwp)
! fprintf_unfiltered (gdb_stdlog,
! "Waiting for specific LWP %d.\n", GET_LWP (pid));
/* We have a specific LWP to check. */
lp = find_lwp_pid (GET_LWP (pid));
*************** lin_lwp_wait (int pid, struct target_wai
*** 645,652 ****
if (debug_lin_lwp)
if (status)
! printf ("Using pending wait status for LWP %d.\n",
! GET_LWP (lp->pid));
/* If we have to wait, take into account whether PID is a cloned
process or not. And we have to convert it to something that
--- 650,658 ----
if (debug_lin_lwp)
if (status)
! fprintf_unfiltered (gdb_stdlog,
! "Using pending wait status for LWP %d.\n",
! GET_LWP (lp->pid));
/* If we have to wait, take into account whether PID is a cloned
process or not. And we have to convert it to something that
*************** lin_lwp_wait (int pid, struct target_wai
*** 725,731 ****
target_pid_to_str (lp->pid));
}
if (debug_lin_lwp)
! printf ("%s exited.\n", target_pid_to_str (lp->pid));
delete_lwp (lp->pid);
--- 731,739 ----
target_pid_to_str (lp->pid));
}
if (debug_lin_lwp)
! fprintf_unfiltered (gdb_stdlog,
! "%s exited.\n",
! target_pid_to_str (lp->pid));
delete_lwp (lp->pid);
*************** lin_lwp_wait (int pid, struct target_wai
*** 743,750 ****
&& WSTOPSIG (status) == SIGSTOP)
{
if (debug_lin_lwp)
! printf ("Delayed SIGSTOP caught for %s.\n",
! target_pid_to_str (lp->pid));
/* This is a delayed SIGSTOP. */
lp->signalled = 0;
--- 751,759 ----
&& WSTOPSIG (status) == SIGSTOP)
{
if (debug_lin_lwp)
! fprintf_unfiltered (gdb_stdlog,
! "Delayed SIGSTOP caught for %s.\n",
! target_pid_to_str (lp->pid));
/* This is a delayed SIGSTOP. */
lp->signalled = 0;
From ezannoni@cygnus.com Tue May 01 20:17:00 2001
From: Elena Zannoni <ezannoni@cygnus.com>
To: Fernando Nasser <fnasser@redhat.com>
Cc: Elena Zannoni <ezannoni@cygnus.com>, gdb-patches@sources.redhat.com, hilfingr@otisco.mckusick.com
Subject: Re: RFA: [symfile.c} Fix to symbol_file_add()
Date: Tue, 01 May 2001 20:17:00 -0000
Message-id: <15087.31793.429533.289522@kwikemart.cygnus.com>
References: <3AED8391.C6B9A456@redhat.com> <15085.43538.55216.581538@kwikemart.cygnus.com> <3AEDF6A3.440D0C62@redhat.com> <15086.11696.278572.217415@kwikemart.cygnus.com> <3AEEB0E2.3232D2DE@redhat.com>
X-SW-Source: 2001-05/msg00008.html
Content-length: 2188
Fernando Nasser writes:
> Elena Zannoni wrote:
> >
> > > However, the bit:
> > > > > + /* Getting new symbols may change our opinion about
> > > > > + what is frameless. */
> > > > > + reinit_frame_cache ();
> > >
> > > should _always_ be done, whenever we load new symbols.
> > >
> >
> > I need to understand better what happens with shared libraries.
> > SOLIB_ADD ends up calling this. I see it used in the attach command
> > and in this case a reinit_frame_cache is OK, so is for the case in
> > sol-thread.c but what about the other calls?
> >
>
> The comment "Getting new symbols may change our opinion about what is
> frameless." basically answers your question. GDB is much more reliable
> at figuring out where the prologue ends when symbols are available. If
> you are stopped inside a function (in a shared library) and you did not
> had the symbols when you created the frame cache, you did a less job
> than you could have done if you had symbols.
>
(Gee, talk about cloning a comment throughout gdb!)
Yes, I agree with that. I was just thinking about a different case in
which the user may have manually loaded the shlibs ahead of time,
before the inferior calls any of the functions in the shlibs. But I
see that it is already called most, if not all, of the times.
> That is why the frame cache is always reset, so the frames can be
> reconstructed with mode information and, thus, more precisely.
>
Anyway, I think we could both be right, so I don't mind if you add the
call to the symbol_file_add function. I assume you would have to
adjust other code in shlib related files as well. Some of the
solib_add funtions are making sure that reinit_frame_cache is called
only once after loading all the shared libs. Now it will be done once
per shlib. I don't know what the overhead will be. Maybe shlib
maintainers can speak up once the new patch is posted.
Thanks for doing this, it turned out to be more work than the initial
patch was.
Elena
> --
> Fernando Nasser
> Red Hat Canada Ltd. E-Mail: fnasser@redhat.com
> 2323 Yonge Street, Suite #300
> Toronto, Ontario M4P 2C9
>
prev parent reply other threads:[~2001-05-01 13:38 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-04-30 11:34 [rfa] Printf debugging output in lin-lwp.c Michael Snyder
2001-04-30 12:06 ` Mark Kettenis
2001-04-30 18:14 ` Andrew Cagney
2001-05-01 13:38 ` Michael Snyder [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3AEF1ED6.96DCA9FE@cygnus.com \
--to=msnyder@cygnus.com \
--cc=ac131313@cygnus.com \
--cc=gdb-patches@sourceware.cygnus.com \
--cc=kettenis@wins.uva.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox