Re: [PATCH] Make interrupting tab-completion safe.

Sterling Augustine
2011-07-11T18:43:00Z

On Mon, Jun 13, 2011 at 10:44 AM, Sterling Augustine
<saugustine@google.com> wrote:
> On Sun, Jun 12, 2011 at 5:11 AM, Jan Kratochvil
> <jan.kratochvil@redhat.com> wrote:

> The race is between the conversion from psymtab to full symtab and you
> hitting ctrl-c. Some of this time is also spent handling filename
> completion, which doesn't have the problem. You need to be sure to
> interrupt c_type_print_args, when called from dwarf2read.c:5049.
>
>> It would be good to have a testcase for regressions anyway.
>
> Is there an existing test-case I can model this one on? (One that
> sends an asynchronous sigint to gdb is probably enough.) I can't seem
> to find any, but my deja-gnu foo is weak.

(Ping on this patch)

Writing a generic reproducible test-case for this is pretty hard.
Calling QUIT from dwarf2read.c:5049 is necessary, but not sufficient.
Counting QUITs is not a good solution, because recompiling the target
program can change the counts.

If I modify the source such that dwarf2read.c:5049 is the only place
that calls QUIT, reproducing it is easy, but that clearly isn't a good
way of writing a test case.

My understanding is that dwarf reading is not expected to be
interruptable, so I would expect something like this to be acceptable
without a new test.

Is there some other approach--short of rewriting all the *type_print*
stuff--that would be acceptable? I'd love to close out this problem.

Sterling