public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Ken Brown <kbrown@cornell.edu>
To: "cygwin@cygwin.com" <cygwin@cygwin.com>
Subject: Re: Can't debug bash with gdb 8.2.1-1
Date: Wed, 24 Jul 2019 14:42:00 -0000	[thread overview]
Message-ID: <cdda52b1-44a9-396d-25d6-4bdf38187f85@cornell.edu> (raw)
In-Reply-To: <69e822c7-d02c-170c-9fed-c0972df16438@cornell.edu>

On 7/24/2019 10:32 AM, Ken Brown wrote:
> On 7/24/2019 8:33 AM, Ken Brown wrote:
>> $ cat getpgrp_test.c
>> #include <unistd.h>
>> #include <stdio.h>
>> #include <errno.h>
>>
>> int
>> main ()
>> {
>>      pid_t pid = getpid ();
>>      pid_t pgid = getpgid (0);
>>      printf ("getpid () = %d, getpgid (0) = %d, errno = %d\n", pid, pgid, errno);
>> }
>>
>> $ gcc -o getpgrp_test -Wall -g -O0 getpgrp_test.c
>>
>> $ ./getpgrp_test.exe
>> getpid () = 1424, getpgid (0) = 1424, errno = 0
>>
>> $ gdb ./getpgrp_test.exe
>> GNU gdb (GDB) (Cygwin 8.2.1-1) 8.2.1
>> [...]
>> (gdb) r
>> Starting program: /home/kbrown/Documents/programming/misc_examples/getpgrp_test.exe
>> [...]
>> getpid () = 1427, getpgid (0) = -1, errno = 0
>> [...]
>> [Inferior 1 (process 23872) exited normally]
>>
>> So getpgid (0) returns -1 without setting errno.  I think this means that
>> pinfo::init() didn't fail, but for some reason myself->pgid == -1.
> 
> I just ran the above gdb session under strace and found several lines like this:
> 
>      25 32828861 [main] gdb 1799 tcsetpgrp: 0 = tcsetpgrp(0, -1)
> 
> I haven't looked at the gdb code, but doesn't this mean that gdb is trying to
> set pgrp to -1?  If so, why?  And shouldn't tcsetpgrp return -1 with EINVAL?

I just looked at the gdb commit that Jon pointed to earlier in the thread.  It 
adds calls like this:

   result = tcsetpgrp (0, getpgid (inf->pid));

It then checks for errors and takes appropriate action.  But tcsetpgrp returns 
success.

So this all seems to boil down to the fact that Cygwin's tcsetpgrp() doesn't 
check the validity of its second argument.

Ken

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


  reply	other threads:[~2019-07-24 14: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
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 [this message]
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=cdda52b1-44a9-396d-25d6-4bdf38187f85@cornell.edu \
    --to=kbrown@cornell.edu \
    --cc=cygwin@cygwin.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).