From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guy Harris To: gdb-patches@sourceware.cygnus.com Subject: Patch to let Alpha debuggers debug a remote target over Telnet Date: Tue, 25 Apr 2000 18:18:00 -0000 Message-id: <200004260118.SAA05848@tooting> X-SW-Source: 2000-04/msg00457.html This patch adds "ser-tcp.o" to debuggers hosted on Alpha machines running OSF/1 3.x and later, so that they can debug remote targets over a Telnet connection to a terminal server as well as over a direct serial connection. (Arguably, any debugger configuration that includes support for remote serial targets should include this as well.) I've attached a ChangeLog and a patch. >From guy@netapp.com Tue Apr 25 18:32:00 2000 From: Guy Harris To: gdb-patches@sourceware.cygnus.com Subject: Patches to add more PALcode operations to the Alpha disassembler Date: Tue, 25 Apr 2000 18:32:00 -0000 Message-id: <200004260132.SAA08988@tooting> X-SW-Source: 2000-04/msg00458.html Content-length: 110 "opcodes/alpha-opc.c" was missing some PALcode operations; I've attached a ChangeLog and a patch to add them. >From ac131313@cygnus.com Tue Apr 25 18:47:00 2000 From: Andrew Cagney To: Guy Harris Cc: gdb-patches@sourceware.cygnus.com Subject: Re: Patches to add more PALcode operations to the Alpha disassembler Date: Tue, 25 Apr 2000 18:47:00 -0000 Message-id: <39064A63.F91CE9DD@cygnus.com> References: <200004260132.SAA08988@tooting> X-SW-Source: 2000-04/msg00459.html Content-length: 415 Guy Harris wrote: > > "opcodes/alpha-opc.c" was missing some PALcode operations; I've attached > a ChangeLog and a patch to add them. FYI, opcodes is part of binutils. I'd send the patch to binutils@sourceware.cygnus.com. As soon as the binutils group commit it, it will be available to GDB (we've a common source tree). See src/MAINTAINERS for a rough breakdown of the top level directory. enjoy, Andrew >From ac131313@cygnus.com Tue Apr 25 19:02:00 2000 From: Andrew Cagney To: Guy Harris Cc: gdb-patches@sourceware.cygnus.com Subject: Re: Patch to let Alpha debuggers debug a remote target over Telnet Date: Tue, 25 Apr 2000 19:02:00 -0000 Message-id: <39064DEA.89647322@cygnus.com> References: <200004260118.SAA05848@tooting> X-SW-Source: 2000-04/msg00460.html Content-length: 534 Guy Harris wrote: > > This patch adds "ser-tcp.o" to debuggers hosted on Alpha machines > running OSF/1 3.x and later, so that they can debug remote targets over > a Telnet connection to a terminal server as well as over a direct serial > connection. (Arguably, any debugger configuration that includes support > for remote serial targets should include this as well.) What about ser-pipe.c? As to your more generic question/comment. Yes, that code should be selected by configure.in/autoconf and not via the XDEPFILES. Andrew >From guy@netapp.com Tue Apr 25 19:08:00 2000 From: Guy Harris To: Andrew Cagney Cc: Guy Harris , gdb-patches@sourceware.cygnus.com Subject: Re: Patch to let Alpha debuggers debug a remote target over Telnet Date: Tue, 25 Apr 2000 19:08:00 -0000 Message-id: <200004260208.TAA16542@tooting> References: <39064DEA.89647322@cygnus.com> X-SW-Source: 2000-04/msg00461.html Content-length: 311 > What about ser-pipe.c? We're not using it (we're using GDB 4.18 here, so we don't even have it), but if, as I infer, it's another alternative to directly communicating with the remote over a serial line, yes, it presumably should be supported whenever a serial line is supported, just as "ser-tcp.c" should. >From guy@netapp.com Tue Apr 25 19:46:00 2000 From: Guy Harris To: Guy Harris Cc: Andrew Cagney , gdb-patches@sourceware.cygnus.com Subject: Re: Patch to let Alpha debuggers debug a remote target over Telnet Date: Tue, 25 Apr 2000 19:46:00 -0000 Message-id: <200004260246.TAA23491@tooting> References: <200004260208.TAA16542@tooting> X-SW-Source: 2000-04/msg00462.html Content-length: 385 > We're not using it (we're using GDB 4.18 here, so we don't even have > it), but if, as I infer, it's another alternative to directly > communicating with the remote over a serial line, yes, it presumably > should be supported whenever a serial line is supported, just as > "ser-tcp.c" should. OK, see attached ChangeLog file and patch, which adds both "ser-tcp.o" and "ser-pipe.o". >From kevinb@cygnus.com Tue Apr 25 20:08:00 2000 From: Kevin Buettner To: gdb-patches@sourceware.cygnus.com Subject: [PATCH] examine_prologue() changes in ia64-tdep.c Date: Tue, 25 Apr 2000 20:08:00 -0000 Message-id: <1000426030839.ZM10372@ocotillo.lan> X-SW-Source: 2000-04/msg00463.html Content-length: 3212 Earlier today, I committed the changes below for the IA-64 port. * ia64-tdep.c (examine_prologue): Recognize store instructions; those whose source operands are input registers which haven't been seen before are considered to be part of the prologue. Index: ia64-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/ia64-tdep.c,v retrieving revision 1.4 diff -u -p -r1.4 ia64-tdep.c --- ia64-tdep.c 2000/04/25 06:36:51 1.4 +++ ia64-tdep.c 2000/04/25 23:00:18 @@ -707,7 +707,12 @@ examine_prologue (CORE_ADDR pc, CORE_ADD int mem_stack_frame_size = 0; int spill_reg = 0; CORE_ADDR spill_addr = 0; + char instores[8]; + char infpstores[8]; + memset (instores, 0, sizeof instores); + memset (infpstores, 0, sizeof infpstores); + if (frame && !frame->saved_regs) { frame_saved_regs_zalloc (frame); @@ -749,7 +754,13 @@ examine_prologue (CORE_ADDR pc, CORE_ADD if (next_pc == 0) break; - if (it == I && ((instr & 0x1eff8000000LL) == 0x00188000000LL)) + if (it == B || ((instr & 0x3fLL) != 0LL)) + { + /* Exit loop upon hitting a branch instruction or a predicated + instruction. */ + break; + } + else if (it == I && ((instr & 0x1eff8000000LL) == 0x00188000000LL)) { /* Move from BR */ int b2 = (int) ((instr & 0x0000000e000LL) >> 13); @@ -899,7 +910,49 @@ examine_prologue (CORE_ADDR pc, CORE_ADD spill_addr = 0; /* must be done spilling */ last_prologue_pc = next_pc; } + else if (qp == 0 && 32 <= rM && rM < 40 && !instores[rM-32]) + { + /* Allow up to one store of each input register. */ + instores[rM-32] = 1; + last_prologue_pc = next_pc; + } } + else if (it == M && ((instr & 0x1ff08000000LL) == 0x08c00000000LL)) + { + /* One of + st1 [rN] = rM + st2 [rN] = rM + st4 [rN] = rM + st8 [rN] = rM + Note that the st8 case is handled in the clause above. + + Advance over stores of input registers. One store per input + register is permitted. */ + int rM = (int) ((instr & 0x000000fe000LL) >> 13); + int qp = (int) (instr & 0x0000000003fLL); + if (qp == 0 && 32 <= rM && rM < 40 && !instores[rM-32]) + { + instores[rM-32] = 1; + last_prologue_pc = next_pc; + } + } + else if (it == M && ((instr & 0x1ff88000000LL) == 0x0cc80000000LL)) + { + /* Either + stfs [rN] = fM + or + stfd [rN] = fM + + Advance over stores of floating point input registers. Again + one store per register is permitted */ + int fM = (int) ((instr & 0x000000fe000LL) >> 13); + int qp = (int) (instr & 0x0000000003fLL); + if (qp == 0 && 8 <= fM && fM < 16 && !infpstores[fM - 8]) + { + infpstores[fM-8] = 1; + last_prologue_pc = next_pc; + } + } else if (it == M && ( ((instr & 0x1ffc8000000LL) == 0x08ec0000000LL) || ((instr & 0x1efc0000000LL) == 0x0aec0000000LL))) @@ -925,8 +978,6 @@ examine_prologue (CORE_ADDR pc, CORE_ADD last_prologue_pc = next_pc; } } - else if (it == B || ((instr & 0x3fLL) != 0LL)) - break; pc = next_pc; }