#66 MinGW--LINES is lying when debugger attached

open
nobody
None
5
2009-06-30
2009-06-30
Anonymous
No

I have compiled PDCurses 3.4 and am statically linking it. If I use my debugger LINES is equal to 24. If I do not LINES is equal to 25.

This did not occur when I was using an older version of pdcurses (2.8 I think).
This happens with a simple test program no larger than initscr(); print("%i", LINES);.
I compiled pdc with the mingw makefile. I was using msys 1.0.10. This happens with pre-made DLLs as well.
I am using code::blocks as my IDE. I am also using the included debugger and compiler.
I am running WinXP Pro. I will test this on a Win 2000 Server when I get the chance.

LINES must be lying. Both windows are visually the same size; I can count 25 lines.
I'm at a complete loss for what could be causing this as I don't think I've ever seen a program behave differently with a debugger attached that wasn't actively trying to thwart reverse-engineering. My best guess is it's some sort of Windows bug in GetConsoleScreenBufferInfo which seems to be where COLS and LINES inevitebly come from. I've never actually used those Windows functions though and wouldn't know where to begin.

This can be worked around but debugging is harder when such an important variable changes.

Discussion