From: Bernd Edlinger <bernd.edlinger@hotmail.de>
To: Simon Marchi <simon.marchi@polymtl.ca>,
Tom Tromey <tom@tromey.com>,
Simon Marchi via Gdb-patches <gdb-patches@sourceware.org>
Subject: Re: [PATCH] gdb/testsuite: capture GDB tty name in default_gdb_spawn
Date: Wed, 21 Jul 2021 21:54:33 +0200 [thread overview]
Message-ID: <AM8PR10MB47087AD6E10C02B4A4C9C1F2E4E39@AM8PR10MB4708.EURPRD10.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <AM8PR10MB47080ED22974A2B454E0A8EAE4E29@AM8PR10MB4708.EURPRD10.PROD.OUTLOOK.COM>
On 7/20/21 10:28 PM, Bernd Edlinger wrote:
> On 7/20/21 7:14 AM, Simon Marchi wrote:
>> On 2021-07-19 3:05 p.m., Bernd Edlinger wrote:
>>> expect 5.45.4-2build1
>>> tcl 8.6.9+1
>>> dejagnu 1.6.2-1
>>
>> For the record, I do see it on my Ubuntu 20.04 machine. It can be
>> reproduced by running `runtest --status` manually in gdb/testsuite, that
>> could make it a bit easier to debug.
>>
>> I attached GDB to runtest while it was doing its thing and waited for it
>> to segfault, that gave me the following backtrace (after installing the
>> appropriate -dbgsym packages):
>>
>> #0 0x00007fe176cd8b69 in exp_close (interp=interp@entry=0x5595b70269d0, esPtr=0x5595bb6968b0) at exp_command.c:370
>> #1 0x00007fe176ceef9a in exp_close_all (interp=0x5595b70269d0) at exp_chan.c:582
>> #2 0x00007fe176bd5b72 in InvokeExitHandlers () at ./generic/tclEvent.c:911
>> #3 0x00007fe176bd5c0a in Tcl_Exit (status=1) at ./generic/tclEvent.c:976
>> #4 0x00007fe176cdb959 in Exp_ExitObjCmd (clientData=<optimized out>, interp=0x5595b70269d0, objc=<optimized out>, objv=<optimized out>) at exp_command.c:2531
>> #5 0x00007fe176b4d5f2 in TclNRRunCallbacks (interp=interp@entry=0x5595b70269d0, result=0, rootPtr=0x0) at ./generic/tclBasic.c:4492
>> #6 0x00007fe176b4cfc5 in Tcl_EvalObjv (interp=interp@entry=0x5595b70269d0, objc=objc@entry=1, objv=objv@entry=0x5595b70342d0, flags=flags@entry=2097168) at ./generic/tclBasic.c:4215
>> #7 0x00007fe176b4e924 in TclEvalEx (interp=interp@entry=0x5595b70269d0, script=0x5595b70ade40 "# runtest.exp -- Test framework driver\n# Copyright (C) 1992-2016 Free Software Foundation, Inc.\n#\n# This file is part of DejaGnu.\n#\n# DejaGnu is free software; you can redistribute it and/or modify it"..., numBytes=<optimized out>, flags=flags@entry=0, line=1908, line@entry=1, clNextOuter=clNextOuter@entry=0x0, outerScript=0x5595b70ade40 "# runtest.exp -- Test framework driver\n# Copyright (C) 1992-2016 Free Software Foundation, Inc.\n#\n# This file is part of DejaGnu.\n#\n# DejaGnu is free software; you can redistribute it and/or modify it"...) at ./generic/tclBasic.c:5361
>> #8 0x00007fe176c08f79 in Tcl_FSEvalFileEx (encodingName=<optimized out>, pathPtr=0x5595b7063510, interp=0x5595b70269d0) at ./generic/tclIOUtil.c:1824
>> #9 Tcl_FSEvalFileEx (interp=0x5595b70269d0, pathPtr=0x5595b7063510, encodingName=<optimized out>) at ./generic/tclIOUtil.c:1724
>> #10 0x00007fe176c0784c in Tcl_EvalFile (interp=0x5595b70269d0, fileName=<optimized out>) at ./generic/tclIOUtil.c:424
>> #11 0x00007fe176ce856e in exp_interpret_cmdfilename (interp=0x5595b70269d0, filename=0x7fff61eef573 "/usr/share/dejagnu/runtest.exp") at exp_main_sub.c:953
>> #12 0x00005595b6cad2e9 in main (argc=4, argv=0x7fff61eeee38) at exp_main_exp.c:48
>>
>
> I narrowed it down to the following test case:
>
> make check-gdb RUNTESTFLAGS="gdb.base/gnu-debugdata.exp"
>
This seems to fix the problem for me:
--- a/gdb/testsuite/gdb.base/gnu-debugdata.exp
+++ b/gdb/testsuite/gdb.base/gnu-debugdata.exp
@@ -56,6 +56,7 @@ proc pipeline {test args} {
$input $output]} {
return -1
}
+ unset ::last_spawn_tty_name
set input_file $output
}
No Idea what is going on here,
there are other places where run_on_host
is called, and I don't see how run_on_host
can call spawn, it calls [eval remote_exec ...]
but I don't see how that is implemented.
How can last_spawn_tty_name cause an expect crash?
It appears to me, that changing the builtin spawn command
causes some kind of undefined behavior.
Bernd.
prev parent reply other threads:[~2021-07-21 19:54 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-08 21:21 Simon Marchi
2021-06-09 15:09 ` Tom Tromey
2021-06-09 15:15 ` Simon Marchi
2021-06-09 15:42 ` Simon Marchi
2021-06-10 18:26 ` Tom Tromey
2021-06-10 18:32 ` Simon Marchi
2021-07-19 18:36 ` Bernd Edlinger
2021-07-19 18:53 ` Simon Marchi
2021-07-19 19:05 ` Bernd Edlinger
2021-07-20 5:14 ` Simon Marchi
2021-07-20 20:28 ` Bernd Edlinger
2021-07-21 19:54 ` Bernd Edlinger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AM8PR10MB47087AD6E10C02B4A4C9C1F2E4E39@AM8PR10MB4708.EURPRD10.PROD.OUTLOOK.COM \
--to=bernd.edlinger@hotmail.de \
--cc=gdb-patches@sourceware.org \
--cc=simon.marchi@polymtl.ca \
--cc=tom@tromey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).