ioctl calls under gdb

Ian Collins ianc@kiwiplan.co.nz
Wed May 12 16:37:00 GMT 1999


I am trying to debug an application that uses "raw" terminal i/o as follows,

if (ioctl(0, TCGETA, &tbuf) != -1){
  tbufsave = tbuf;
  tbuf.c_iflag &= ~(INLCR| ICRNL| IUCLC| ISTRIP| BRKINT);
  tbuf.c_oflag &= ~OPOST;
  tbuf.c_lflag &= ~(ICANON | ISIG | ECHO);
  tbuf.c_cc[4] = 1;      /* MIN */
  tbuf.c_cc[5] = 0;      /* TIME */
  if (ioctl(0, TCSETA, &tbuf) == -1){
     perror("kwrawmd ioctl (TCSETA) fail ");
     exit(1);
  }
}

When I run the app under gdb I get a "ioctl (TCGETA) fail : Invalid
argument" error.

I have tried using "gdb --tty=/dev/tty2 progname" (ie., another active
terminal), but gdb ignores the other terminal, and I still get the error.

I can't attach to the process "GDB can't read core files on this
machine...Can't attach to process.".

Does anyone know how to debug such an application (without resorting to the
age old printf statements throughout the code).

Ian Collins.


--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list