(From the perspective of CDT...) When debugging a Cygwin-built program, and we've told gdb to stop on shared library events, the invocation (run) of the program produces a series of stopped events because of library loads. But these events are absolutely bare. Gdb gives no indication that the target stopped because of a library load. Typically, such an indication comes in the form of a stream record that accompanies the stopped event. Again, in this case, we get *nothing*. See the attached gdb log. This represents all the activity from the beginning of the session up to reaching main(). Note that getting to main() required hitting the resume button three times (three library load events). Notice the bare *stopped message and the lack of any stream records revealing the reason. Here's what a normal stopped-for-library-load event looks like: 152-exec-continue 152^running (gdb) ~"Stopped due to shared library event\n" Stopped due to shared library event 152*stopped,thread-id="1" With this information, CDT is able to realize that the stop is because of a shared library and auto-resume the target. Without the information, the user just sees the program stopped for no apparent reason.
Created attachment 4730 [details] gdb/mi log showing that gdb stops for library loads without providing a reason
BTW, the behavior was observed with both gdb 6.8 from both MinGW and Cygwin. It's not present in MinGW gdb 7.0, so perhaps this was a 6.8 bug? Since there is yet no official Cygwin 7.0 gdb, I can't confirm that.
I think this was the fix: 2009-11-13 Pedro Alves <pedro@codesourcery.com> * infrun.c (handle_inferior_event): Set stop_print_frame on TARGET_WAITKIND_LOADED events, if stopping on solib-events. That's posterior to 7.0, but it's in 7.1. I don't know how your mingw gdb doesn't have this problem; maybe it's not really 7.0, but 7.0.50 (a cvs snapshot), or the patch was backported. BTW, building GDB on Cygwin should be straightforward. Pop up no irc if you'd want to try it, and need help.
Indeed it is. Specifically, C:\MinGW\bin>gdb -version GNU gdb (GDB) 7.0.50.20100202 Thanks!
You're welcome. Closing then.