From: Ken Brown <kbrown@cornell.edu>
To: Jon Turney <jon.turney@dronecode.org.uk>,
The Cygwin Mailing List <cygwin@cygwin.com>
Cc: Eric Blake <eblake@redhat.com>
Subject: Re: Can't debug bash with gdb 8.2.1-1
Date: Tue, 23 Jul 2019 15:42:00 -0000 [thread overview]
Message-ID: <10d70ba8-41a8-10e8-0ab0-5be526931de7@cornell.edu> (raw)
In-Reply-To: <73dcccf2-33a0-7608-269b-e9cb9abc2238@dronecode.org.uk>
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 2260 bytes --]
On 7/23/2019 9:51 AM, Jon Turney wrote:
> On 22/07/2019 15:59, Ken Brown wrote:
>> With the test version of gdb, attempting to debug bash fails as follows:
>>
>> $ gdb bash
>> GNU gdb (GDB) (Cygwin 8.2.1-1) 8.2.1
>> [...]
>> Reading symbols from bash...Reading symbols from
>> /usr/lib/debug//usr/bin/bash.exe.dbg...done.
>> done.
>> (gdb) r -c ls
>> Starting program: /usr/bin/bash -c ls
>> [...]
>> /usr/bin/bash: initialize_job_control: getpgrp failed: No error
>> [...]
>> [Inferior 1 (process 31876) exited with code 01]
>>
>> This problem doesn't occur with gdb-8.1.1-1.
> Thanks for reporting this.
>
> I had also tripped over this problem recently: It seems that changes in gdb
> (bisection lands on [1]) mean that any call to getpgrp() in the inferior fails
> (this can be demonstrated with a test program that just calls that).
I can't reproduce that with the following test program:
$ cat getpgrp_test.c
#include <unistd.h>
int
main ()
{
pid_t t = getpgrp ();
}
> I believe this is behaviour is caused by some kind of defect in the cygwin DLL,
> but I haven't made much progress in investigating it. (I don't really understand
> how the inferior gets into a state where getpgrp() fails, which isn't really
> supposed to happen...)
POSIX says that getpgrp() never fails, but Cygwin's getpgrp() can in fact fail.
I'm about to send a proposed fix to cygwin-patches. I've just checked that the
bash example succeeds with my patch installed.
BTW, I think there's also a bash bug here. The bash-4.4.12 source code has the
following in jobs.c:
shell_pgrp = getpgid (0);
if (shell_pgrp == -1)
{
sys_error (_("initialize_job_control: getpgrp failed"));
exit (1);
}
At first glance this might seem OK, since getpgid() is allowed to fail. But a
macro earlier in the code redefines getpgid() in terms of getpgrp(), which is
not supposed to fail.
I've added Eric to the CC in case he wants to follow up on this.
Ken
\0ТÒÐÐ¥\a&ö&ÆVÒ\a&W\x06÷'G3¢\x02\x02\x02\x02\x02\x02\x06GG\x03¢òö7wvâæ6öÒ÷\a&ö&ÆV×2æFÖÀФd\x15\x13¢\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x06GG\x03¢òö7wvâæ6öÒöf\x17\x12ðФFö7VÖVçF\x17Föã¢\x02\x02\x02\x02\x02\x02\x02\x02\x06GG\x03¢òö7wvâæ6öÒöFö72æFÖÀÐ¥Vç7V'67&&R\x06æfó¢\x02\x02\x02\x02\x02\x06GG\x03¢òö7wvâæ6öÒöÖÂò7Vç7V'67&&R×6×\x06ÆPÐ Ð
next prev parent reply other threads:[~2019-07-23 15:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-22 14:59 Ken Brown
2019-07-23 13:52 ` Jon Turney
2019-07-23 15:42 ` Ken Brown [this message]
2019-07-23 18:02 ` Jon Turney
2019-07-24 12:33 ` Ken Brown
2019-07-24 14:32 ` Ken Brown
2019-07-24 14:42 ` Ken Brown
2019-07-25 12:12 ` Jon Turney
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=10d70ba8-41a8-10e8-0ab0-5be526931de7@cornell.edu \
--to=kbrown@cornell.edu \
--cc=cygwin@cygwin.com \
--cc=eblake@redhat.com \
--cc=jon.turney@dronecode.org.uk \
/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).