Hi Glenn, Thanks for the tips. I think I mentioned that I am a first time user of gdb, so tips like this are very helpful. I was having problems debugging at first, getting nothing useful, and did a web search and found a suggestion to compile with -O0 and -g. Once I did that change in the Makefile I got the first result I posted on the first try. Then for today's run I switched the -g to -ggdb to see if it made any difference and didn't notice anything.
This memmove call is for clearing a spot in the ranked list to insert a new entry in the list by moving everything after it 2 bytes to the right. So the intent of the code is to move each byte pair (uint16) to the right by 2 bytes starting at the end of the list (deleting the last entry if the list is full, which has not been in both crash cases). Best Regards, Kennon > On 02/25/2026 10:47 PM PST Glenn Strauss <[email protected]> wrote: > > > On Wed, Feb 25, 2026 at 10:22:47PM -0800, KENNON J CONRAD via Cygwin wrote: > > Hi Brian, > > > > I installed the version of the cygwin-debuginfo that is on my test > > computer to the build machine (version 3.6.6-1). I put the memmove back in > > the code in place of the bloated code that has been running the past 4 days > > without any problem (and the past ~10 years before changing to memset) and > > got another SIGTRAP in gbd on that memset within 2 hours. The backtrace > > looks very similar: > > When debugging issues with low-level library calls such as memmove, > I highly suggest testing using reduced compiler optimization settings. > > If you can, pull the function in question into a separate .c or .cxx > file, and compile that translation unit with -Os -ggdb. If you can > reproduce the issue, compile that translation unit with -O0 -ggdb and > try again. > > Question: are you replacing old code with memmove() from address x+y to > address x, i.e. shifting left? Or are replacing existing code with > memmove() and shifting right onto overlapping ranges? In both cases for > memmove(), the resulting assembly code should detect if the ranges > overlap and should not overwrite existing data before it gets moved. > > Cheers, Glenn -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple

