This is the mail archive of the cygwin mailing list for the Cygwin 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: Can't debug bash with gdb 8.2.1-1


On 23/07/2019 16:42, Ken Brown wrote:
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 ();
}

Hmm.... let me clarify what I mean:

$ cat getpgrp_test.c
#include <unistd.h>
#include <stdio.h>

int main() {
  printf("getpgrp() = %d\n", getpgrp());
}

$ gcc getpgrp_test.c -o getpgrp_test.exe

$ ./getpgrp_test
getpgrp() = 1241


$ gdb ./getpgrp_test
GNU gdb (GDB) (Cygwin 8.2.1-1) 8.2.1
[...]
Reading symbols from ./getpgrp_test...done.
(gdb) r
Starting program: /work/getpgrp_test
getpgrp() = -1
[Inferior 1 (process 11428) exited normally]

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.

--
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


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