dtrace-probe: Handle error while parsing probe argument.
authorJoel Brobecker <brobecker@adacore.com>
Thu, 26 Mar 2015 18:14:03 +0000 (19:14 +0100)
committerJoel Brobecker <brobecker@adacore.com>
Thu, 26 Mar 2015 20:56:51 +0000 (13:56 -0700)
commit429e1e811b400f07b5a514ea6b8a70b28e2d7ee9
tree639c6a7f54874d5b4e9bf2142a6b55f9b8209104
parent4593441bc5bcb7ec2e04b28591707cdebedd2e85
dtrace-probe: Handle error while parsing probe argument.

The debugger on Solaris has been broken since the introduction of
DTrace probe support:

    (gdb) start
    Temporary breakpoint 1 at 0x80593bc: file simple_main.adb, line 4.
    Starting program: /[...]/simple_main
    [Thread debugging using libthread_db enabled]
    No definition of "mutex_t" in current context.

The problem occurs while trying to parse a probe's argument,
and the exception propagates all the way to the top. This patch
fixes the issue by containing the exception and falling back on
using the "long" builtin type if the argument's type could not
be determined.

Also, the parsing should be done using the C language parser.

gdb/ChangeLog:

        * dtrace-probe.c (dtrace_process_dof_probe): Contain any
        exception raised while parsing the probe arguments.
        Force parsing to be done using the C language parser.
        * expression.h (parse_expression_with_language): Declare.
        * parse.c (parse_expression_with_language): New function.
gdb/ChangeLog
gdb/dtrace-probe.c
gdb/expression.h
gdb/parse.c