This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] detect inferior exit in call_function_by_hand


> +    send_gdb "set language c\n"
> +    gdb_expect {
> +	-re ".*$gdb_prompt $" {}
> +	timeout { fail "set language c (timeout)" ; return 0; }
> +    }
> +
> +    send_gdb "show language\n"
> +    gdb_expect {
> +	-re ".* source language is \"c\".*$gdb_prompt $" {
> +	    pass "set language to \"c\""
> +	    return 1
> +	}
> +	-re ".*$gdb_prompt $" {
> +	    fail "setting language to \"c\""
> +	    return 0
> +	}
> +	timeout {
> +	    fail "can't show language (timeout)"
> +	    return 0
> +	}
> +    }

Generally speaking, we try to avoid send_gdb/gdb_expect, and use
gdb_test_multiple. I realize that you probably inherited this
through copy/paste... In any case, I don't think it will necessary
to rewrite the above, because, Like Pedro, I don't think you need
the set lang c. The only time when I had to explicitly set the language
is after attaching to a program - you never know where you might end up,
and sometimes you find your way into asm frames, for instance. I propose
you remove this part entirely. That should simplify your testcase and
it's easy enough to put it back if we discover a case where it's
really needed.

> +if { ![set_lang_c] } {
> +    gdb_suppress_tests;
> +} else {
> +    if { ![runto_main] } {
> +	gdb_suppress_tests;
> +    }

We don't use gdb_suppress_tests anymore. As far as I know, the usual
way of doing things is to log a FAIL and then return. For instance:

    if ![runto_main] then {
        fail "Can't run to main"
        return 0
    }

-- 
Joel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]