> On 29 December 2015 at 13:16, Brian Inglis > <Brian.Inglis <at> systematicsw.ab.ca> wrote: >> The utmpname implementation in newlib-cygwin/winsup/cygwin/syscalls.cc >> could probably be improved to: avoid a memory leak; return -1 if >> strdup fails, zero otherwise; default the path if a null pointer or string >> argument is passed. >> That would also fix utmpxname which is an alias. >> Such a change would have little likely impact on downstream apps, but could >> produce warnings about ignoring return values. >> Unfortunately there appears to be no standard defined names to access the >> default file name although GNU and Cygwin provide UTMP_FILE and UTMPX_FILE; >> GNU also provide UTMP_FILENAME and UTMPX_FILENAME. >> _PATH_UTMP and _PATH_UTMPX are implementation reserved names which may or >> may not be provided, though adding the latter in paths.h would be trivial. >> As the developers say, patches always welcome.
David Lee <mailtolky <at> gmail.com> writes: > Sorry I am totally unfamiliar with Cygwin internals, here are some > related questions: > 1. how does one test a code path that involves a failed syscall > (strdup() in this case, but can be others) in cygwin dll? Unlikely to happen, but could test in your code for errno == ENOMEM, as errno should never be cleared, but relies on appropriate tests. > 2. If the call to strdup() fails, I want to debug_print() the errno > value set by strdup(). Do I have to save errno before debug_print() > that and restore afterwards? Save only and use your saved copy. > 3. Does the instruction from 6.21 in > https://cygwin.com/faq/faq.html#faq.programming.building-cygwin > generates a debugging dll (i.e. contains debug symbols usable by > gdb)? If not, what modifications are needed to create one? https://cygwin.com/faq/faq.html#faq.programming.debugging-cygwin FAQ 6.22 explains to install cygwin-debuginfo for released dll and that 6.21 generates debug info for custom dll. -- 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