This is the mail archive of the cygwin@sourceware.cygnus.com 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]

ioctl calls under gdb


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


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