The Log is all good. Nothing that would indicate an incorrect setting in the IDE.
It is beyond strange that gdb has issues getting the values as locals, but can do them as watch. Especially for basic types like HWnd (which in the end is just an int or cardinal...)
It even gets the values, with the threads and stackframes (for thread and stack window), which is very similar to the local data.
To me it looks like a bug in gdb. But not sure what triggers it.
Between successfully getting it for stack/thread and then failing for locals, the only thing happening is getting the disassembler.
Are you using dwarf or stabs? It looks like stabs (Project > Project Options > Debugging: Debug information type).
I do highly recommend to use "dwarf (with sets)".
Does it make a difference?
(If you debug in packages, you may need to change it for each package too.)
As for the issue (
if dwarf does not help), I would recommend to try one of the alternative debuggers
https://sourceforge.net/projects/lazarus/files/Lazarus%20Windows%2032%20bits/Alternative%20GDB/I have no test results for Win 7.
On Windows 10, all tests show that 8.2 is good. (And I am planing to change to it for the next major release, i.e., 2.2.0)
I would expect it to be fine on Win7 too.
If you for any reason want to use "stabs", then you should go with GDB 7.7.1.
It is (remotely) possible that a recent Windows update could have caused changes. For once cross debugging (Bitness of IDE and app differ) lost the ability to pause the debugged app (fixed in trunk / But that fix would not help you). Some people reported running in compatibility mode helped them.
I don't however see, how that could cause the observed inconsistency in gdb....
I also noted you do receive a strange
stopped,reason="signal-received
For which I found no reason.
Maybe try DissableLoadSymbolForLibraries in the Tools > Option > Debugger
But that seems otherwise unrelated to the issue
I hope some of this will help