old-cross-binutils/gdb/testsuite/gdb.arch
Sergio Durigan Junior f33da99a54 Fix PR breakpoints/16889: gdb segfaults when printing ASM SDT arguments
This commit fixes PR breakpoints/16889, which is about a bug that
triggers when GDB tries to parse probes whose arguments do not contain
the initial (and optional) "N@" part.  For reference sake, the de
facto format is described here:

  <https://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation>

Anyway, this PR actually uncovered two bugs (related) that were
happening while parsing the arguments.  The first one was that the
parser *was* catching *some* arguments that were missing the "N@"
part, but it wasn't correctly setting the argument's type.  This was
causing a NULL pointer being dereferenced, ouch...

The second bug uncovered was that the parser was not catching all of
the cases for a probe which did not provide the "N@" part.  The fix
for that was to simplify the check that the code was making to
identify non-prefixed probes.  The code is simpler and easier to read
now.

I am also providing a testcase for this bug, only for x86_64
architectures.

gdb/
2014-05-02  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR breakpoints/16889
	* stap-probe.c (stap_parse_probe_arguments): Simplify
	check for non-prefixed probes (i.e., probes whose
	arguments do not start with "N@").  Always set the
	argument type to a sane value.

gdb/testsuite/
2014-05-02  Sergio Durigan Junior  <sergiodj@redhat.com>

	PR breakpoints/16889
	* gdb.arch/amd64-stap-optional-prefix.S: New file.
	* gdb.arch/amd64-stap-optional-prefix.exp: Likewise.
2014-05-02 17:45:35 -03:00
..
alpha-step.c
alpha-step.exp
altivec-abi.c
altivec-abi.exp
altivec-regs.c
altivec-regs.exp PowerPC64 little-endian fixes: AltiVec tests 2014-02-04 18:28:24 +01:00
amd64-byte.exp
amd64-disp-step.exp
amd64-disp-step.S
amd64-dword.exp
amd64-entry-value-inline.c
amd64-entry-value-inline.exp
amd64-entry-value-inline.S
amd64-entry-value-param.c
amd64-entry-value-param.exp
amd64-entry-value-param.S
amd64-entry-value.cc
amd64-entry-value.exp
amd64-entry-value.s
amd64-i386-address.exp
amd64-i386-address.S
amd64-prologue-xmm.c
amd64-prologue-xmm.exp
amd64-prologue-xmm.s
amd64-pseudo.c
amd64-stap-optional-prefix.exp Fix PR breakpoints/16889: gdb segfaults when printing ASM SDT arguments 2014-05-02 17:45:35 -03:00
amd64-stap-optional-prefix.S Fix PR breakpoints/16889: gdb segfaults when printing ASM SDT arguments 2014-05-02 17:45:35 -03:00
amd64-stap-special-operands.exp Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-stap-three-arg-disp.c Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-stap-three-arg-disp.S Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-stap-triplet.c Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-stap-triplet.S Fix for PR tdep/16397: SystemTap SDT probe support for x86 doesn't work with "triplet operands" 2014-02-20 18:49:09 -03:00
amd64-tailcall-cxx.exp
amd64-tailcall-cxx1.cc
amd64-tailcall-cxx1.S
amd64-tailcall-cxx2.cc
amd64-tailcall-cxx2.S
amd64-tailcall-noret.c
amd64-tailcall-noret.exp
amd64-tailcall-noret.S
amd64-tailcall-ret.c
amd64-tailcall-ret.exp
amd64-tailcall-ret.S
amd64-word.exp
arm-bl-branch-dest.c
arm-bl-branch-dest.exp
arm-disp-step.exp
arm-disp-step.S
e500-abi.c
e500-abi.exp
e500-prologue.c
e500-prologue.exp
e500-regs.c
e500-regs.exp
gdb1291.exp
gdb1291.s
gdb1431.exp
gdb1431.s
gdb1558.c
gdb1558.exp
i386-avx.c
i386-avx.exp
i386-avx512.c Add AVX512 registers support to GDB and GDBserver. 2014-04-24 16:30:03 +02:00
i386-avx512.exp Add AVX512 registers support to GDB and GDBserver. 2014-04-24 16:30:03 +02:00
i386-bp_permanent.exp
i386-byte.exp
i386-cfi-notcurrent.exp
i386-cfi-notcurrent.S
i386-disp-step.exp
i386-disp-step.S
i386-dr3-watch.c
i386-dr3-watch.exp
i386-float.exp
i386-float.S
i386-gnu-cfi-asm.S
i386-gnu-cfi.c
i386-gnu-cfi.exp
i386-mpx.c
i386-mpx.exp
i386-permbkpt.exp
i386-permbkpt.S
i386-prologue.c
i386-prologue.exp
i386-pseudo.c
i386-signal.c
i386-signal.exp
i386-size-overlap.c
i386-size-overlap.exp
i386-size.c
i386-size.exp
i386-sse-stack-align.c
i386-sse-stack-align.exp Fix i386-sse-stack-align.exp regression since GDB_PARALLEL. 2014-02-06 23:14:20 +01:00
i386-sse-stack-align.S
i386-sse.c
i386-sse.exp
i386-unwind.c
i386-unwind.exp
i386-word.exp
ia64-breakpoint-shadow.exp
ia64-breakpoint-shadow.S
iwmmxt-regs.c
iwmmxt-regs.exp
Makefile.in Add AVX512 registers support to GDB and GDBserver. 2014-04-24 16:30:03 +02:00
mips-octeon-bbit.c
mips-octeon-bbit.exp
mips16-thunks-inmain.c
mips16-thunks-main.c
mips16-thunks-sin.c
mips16-thunks-sinfrob.c
mips16-thunks-sinfrob16.c
mips16-thunks-sinmain.c
mips16-thunks-sinmips16.c
mips16-thunks.exp
pa-nullify.exp
pa-nullify.s
pa64-nullify.s
powerpc-aix-prologue.c
powerpc-aix-prologue.exp
powerpc-d128-regs.c
powerpc-d128-regs.exp PowerPC64 little-endian fixes: 128-bit DFP parameters / registers 2014-02-04 18:36:54 +01:00
powerpc-prologue.c
powerpc-prologue.exp
ppc-dfp.c
ppc-dfp.exp
ppc-fp.c
ppc-fp.exp
ppc64-atomic-inst.exp gdb.arch/ppc64-atomic-inst.exp: Improve error handling. 2014-04-01 12:12:59 +11:00
ppc64-atomic-inst.S Fix ppc64 single step over atomic sequence testcase. 2014-04-01 12:12:48 +11:00
s390-multiarch.c
s390-multiarch.exp
s390-tdbregs.c
s390-tdbregs.exp
sparc-sysstep.c
sparc-sysstep.exp
spu-info.c
spu-info.exp
spu-ls.c
spu-ls.exp
thumb-bx-pc.exp
thumb-bx-pc.S
thumb-prologue.c
thumb-prologue.exp
thumb-singlestep.exp
thumb-singlestep.S
thumb2-it.exp
thumb2-it.S
vsx-regs.c
vsx-regs.exp PowerPC64 little-endian fixes: VSX tests and pseudo-regs 2014-02-04 18:31:38 +01:00