Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* Last build failure in alpha-osf1-tdep.c (I promise :)
@ 2003-06-04  0:45 Joel Brobecker
  2003-06-04  3:09 ` Andrew Cagney
  0 siblings, 1 reply; 4+ messages in thread
From: Joel Brobecker @ 2003-06-04  0:45 UTC (permalink / raw)
  To: gdb-patches

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

A recent change in the tdep structure for the alpha target caused a
build failure on Tru64: skip_sigtramp_frame has been removed.

I really don't know what to do to fix this. It looks like Richard has
implemented a better unwinder in alpha-mdebug-tdep, which I should be
able to use on Tru64 as well. Here is just a diff showing the little
play on sources I did in order to illustrate my changes.

I haven't had time to look at this closer, so I don't know what I'm
doing. Help, please?

        * config/alpha/alpha-osf1.mt (TDEPFILES): Add alpha-mdebug-tdep.o.
        * alpha-osf1-tdep.c (alpha_osf1_init_abi): Do not set
        skip_sigtramp_frame in tdep structure, field no longer exists.

Thanks,
-- 
Joel

[-- Attachment #2: alpha-tdep.diff --]
[-- Type: text/plain, Size: 1287 bytes --]

Index: alpha-osf1-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/alpha-osf1-tdep.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 alpha-osf1-tdep.c
*** alpha-osf1-tdep.c	3 Jun 2003 23:49:32 -0000	1.12
--- alpha-osf1-tdep.c	4 Jun 2003 00:32:06 -0000
*************** alpha_osf1_init_abi (struct gdbarch_info
*** 95,101 ****
       argument handling and bp_call_dummy takes care of stopping the dummy.  */
    set_gdbarch_call_dummy_address (gdbarch, alpha_call_dummy_address);
  
-   tdep->skip_sigtramp_frame = alpha_osf1_skip_sigtramp_frame;
    tdep->sigcontext_addr = alpha_osf1_sigcontext_addr;
  
    tdep->jb_pc = 2;
--- 99,104 ----
Index: config/alpha/alpha-osf1.mt
===================================================================
RCS file: /cvs/src/src/gdb/config/alpha/alpha-osf1.mt,v
retrieving revision 1.2
diff -c -3 -p -r1.2 alpha-osf1.mt
*** config/alpha/alpha-osf1.mt	25 Apr 2002 02:28:57 -0000	1.2
--- config/alpha/alpha-osf1.mt	4 Jun 2003 00:32:07 -0000
***************
*** 1,3 ****
  # Target: Little-endian Alpha
! TDEPFILES= alpha-tdep.o alpha-osf1-tdep.o
  TM_FILE= tm-alpha.h
--- 1,3 ----
  # Target: Little-endian Alpha
! TDEPFILES= alpha-tdep.o alpha-osf1-tdep.o alpha-mdebug-tdep.o
  TM_FILE= tm-alpha.h

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

* Re: Last build failure in alpha-osf1-tdep.c (I promise :)
  2003-06-04  0:45 Last build failure in alpha-osf1-tdep.c (I promise :) Joel Brobecker
@ 2003-06-04  3:09 ` Andrew Cagney
  2003-06-04  5:24   ` Richard Henderson
  2003-06-04  5:35   ` [commit] " Joel Brobecker
  0 siblings, 2 replies; 4+ messages in thread
From: Andrew Cagney @ 2003-06-04  3:09 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: gdb-patches

> A recent change in the tdep structure for the alpha target caused a
> build failure on Tru64: skip_sigtramp_frame has been removed.
> 
> I really don't know what to do to fix this. It looks like Richard has
> implemented a better unwinder in alpha-mdebug-tdep, which I should be
> able to use on Tru64 as well. Here is just a diff showing the little
> play on sources I did in order to illustrate my changes.
> 
> I haven't had time to look at this closer, so I don't know what I'm
> doing. Help, please?

The function was being called from:

static CORE_ADDR
alpha_frame_chain (struct frame_info *frame)

but that's now all gone.  In its place are per-frame frame unwinders. 
In the alpha there are:

alpha_sigtramp_frame_this_id()
alpha_heuristic_frame_this_id()
alpha_mdebug_frame_this_id()

>         * config/alpha/alpha-osf1.mt (TDEPFILES): Add alpha-mdebug-tdep.o.

Check alpha-linux-tdep.c, you'll want to steal the call:

   /* Hook into the MDEBUG frame unwinder.  */
   alpha_mdebug_init_abi (info, gdbarch);

adding it to alpha-osf1-tdep.c.  That will enable mdebug.

>         * alpha-osf1-tdep.c (alpha_osf1_init_abi): Do not set
>         skip_sigtramp_frame in tdep structure, field no longer exists.

Check this in.  In fact, consider a patch to delete all occurances of 
that function across alpha*tdep.c pre-approved.

Andrew


> Index: alpha-osf1-tdep.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/alpha-osf1-tdep.c,v
> retrieving revision 1.12
> diff -c -3 -p -r1.12 alpha-osf1-tdep.c
> *** alpha-osf1-tdep.c	3 Jun 2003 23:49:32 -0000	1.12
> --- alpha-osf1-tdep.c	4 Jun 2003 00:32:06 -0000
> *************** alpha_osf1_init_abi (struct gdbarch_info
> *** 95,101 ****
>        argument handling and bp_call_dummy takes care of stopping the dummy.  */
>     set_gdbarch_call_dummy_address (gdbarch, alpha_call_dummy_address);
>   
> -   tdep->skip_sigtramp_frame = alpha_osf1_skip_sigtramp_frame;
>     tdep->sigcontext_addr = alpha_osf1_sigcontext_addr;
>   
>     tdep->jb_pc = 2;
> --- 99,104 ----
> Index: config/alpha/alpha-osf1.mt
> ===================================================================
> RCS file: /cvs/src/src/gdb/config/alpha/alpha-osf1.mt,v
> retrieving revision 1.2
> diff -c -3 -p -r1.2 alpha-osf1.mt
> *** config/alpha/alpha-osf1.mt	25 Apr 2002 02:28:57 -0000	1.2
> --- config/alpha/alpha-osf1.mt	4 Jun 2003 00:32:07 -0000
> ***************
> *** 1,3 ****
>   # Target: Little-endian Alpha
> ! TDEPFILES= alpha-tdep.o alpha-osf1-tdep.o
>   TM_FILE= tm-alpha.h
> --- 1,3 ----
>   # Target: Little-endian Alpha
> ! TDEPFILES= alpha-tdep.o alpha-osf1-tdep.o alpha-mdebug-tdep.o
>   TM_FILE= tm-alpha.h



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

* Re: Last build failure in alpha-osf1-tdep.c (I promise :)
  2003-06-04  3:09 ` Andrew Cagney
@ 2003-06-04  5:24   ` Richard Henderson
  2003-06-04  5:35   ` [commit] " Joel Brobecker
  1 sibling, 0 replies; 4+ messages in thread
From: Richard Henderson @ 2003-06-04  5:24 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: Joel Brobecker, gdb-patches

On Tue, Jun 03, 2003 at 11:09:39PM -0400, Andrew Cagney wrote:
> Check alpha-linux-tdep.c, you'll want to steal the call:
> 
>   /* Hook into the MDEBUG frame unwinder.  */
>   alpha_mdebug_init_abi (info, gdbarch);
> 
> adding it to alpha-osf1-tdep.c.  That will enable mdebug.

Yep.  I should have gone ahead and done this registration
for all the alpha targets...


r~


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

* [commit] Re: Last build failure in alpha-osf1-tdep.c (I promise :)
  2003-06-04  3:09 ` Andrew Cagney
  2003-06-04  5:24   ` Richard Henderson
@ 2003-06-04  5:35   ` Joel Brobecker
  1 sibling, 0 replies; 4+ messages in thread
From: Joel Brobecker @ 2003-06-04  5:35 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: gdb-patches

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

> Check alpha-linux-tdep.c, you'll want to steal the call:
>
>   /* Hook into the MDEBUG frame unwinder.  */
>   alpha_mdebug_init_abi (info, gdbarch);

A separate patch will be posted real-soon-now...

> adding it to alpha-osf1-tdep.c.  That will enable mdebug.
> 
> >        * alpha-osf1-tdep.c (alpha_osf1_init_abi): Do not set
> >        skip_sigtramp_frame in tdep structure, field no longer exists.
> 
> Check this in.  In fact, consider a patch to delete all occurances of 
> that function across alpha*tdep.c pre-approved.

Here is what I committed:

2003-06-03  J. Brobecker  <brobecker@gnat.com>

        * alpha-osf1-tdep.c (alpha_osf1_skip_sigtramp_frame): Delete.
        (alpha_osf1_init_abi): Do not set skip_sigtramp_frame in tdep
        structure, field no longer exists.

There is still the alphanbsd-tdep.c file. I will take care of this one
momentarily.

Thanks for the hand,
-- 
Joel

[-- Attachment #2: sigtramp.diff --]
[-- Type: text/plain, Size: 1263 bytes --]

Index: alpha-osf1-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/alpha-osf1-tdep.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 alpha-osf1-tdep.c
*** alpha-osf1-tdep.c	3 Jun 2003 23:49:32 -0000	1.12
--- alpha-osf1-tdep.c	4 Jun 2003 05:06:58 -0000
***************
*** 28,46 ****
  
  #include "alpha-tdep.h"
  
- /* Under OSF/1, the __sigtramp routine is frameless and has a frame
-    size of zero, but we are able to backtrace through it.  */
- static CORE_ADDR
- alpha_osf1_skip_sigtramp_frame (struct frame_info *frame, CORE_ADDR pc)
- {
-   char *name;
- 
-   find_pc_partial_function (pc, &name, (CORE_ADDR *) NULL, (CORE_ADDR *) NULL);
-   if (PC_IN_SIGTRAMP (pc, name))
-     return frame->frame;
-   return 0;
- }
- 
  static int
  alpha_osf1_pc_in_sigtramp (CORE_ADDR pc, char *func_name)
  {
--- 28,33 ----
*************** alpha_osf1_init_abi (struct gdbarch_info
*** 95,101 ****
       argument handling and bp_call_dummy takes care of stopping the dummy.  */
    set_gdbarch_call_dummy_address (gdbarch, alpha_call_dummy_address);
  
-   tdep->skip_sigtramp_frame = alpha_osf1_skip_sigtramp_frame;
    tdep->sigcontext_addr = alpha_osf1_sigcontext_addr;
  
    tdep->jb_pc = 2;
--- 89,94 ----

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

end of thread, other threads:[~2003-06-04  5:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-04  0:45 Last build failure in alpha-osf1-tdep.c (I promise :) Joel Brobecker
2003-06-04  3:09 ` Andrew Cagney
2003-06-04  5:24   ` Richard Henderson
2003-06-04  5:35   ` [commit] " Joel Brobecker

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