Great news to hear a confirmation. Thaddy made me doubt my whole understanding of generics :)
Thank you. I will wait for any result from you and will continue checking until resolved.
Why do you expect that?
At that point, there is no code yet, generics are templates, code generators with a fill-in or two..
You can only debug such code once you have specialized it.
Such assumptions will also fail in e.g. C++.
There is no code for the debugger to debug.
Please also note thatrequires fpc trunk to debug inside Bar (you can breakpoint there, but you will not see any fields of TFoo/self)
type TFoo = object procedure Bar;
Can I ask why FpDebug do not use the full path all the time?
And why the issue I faced is happening? It is the same project in different paths, even with a bug, shouldn't act the same? Why folder name effects this?
Thank you.
About the second question, I have the same project in two paths: C:\test\ and C:\test2. Both has the same unit Unit1. Why the first raises the error but the second does not? What I understood is that you say that there are basically two unit1 debugs, unit1 and unit1/project1. But it should happen for the both projects and raise the same issue.
Sorry if I am asking an irrelevant question. I will be waiting to test any solution from you.
That also explains why I have problems debugging parts of FPC with recent Lazarus versions. 😅 Why did this work with GDB however? 🤔
Okay, it seems I found it.
I created a new package, moved the Unit1 to the package and used the package in the project. Made sure to delete any build folder and clean up.
Now, again, it can not debug the Log function, with no blue dots. SimpleLog has blue dots.
I made a new test, that as you can see there is no blue dots and if you try to step the code with F8, it will jump to some random unknown place.
It seems a mix of multiple units and package.
That also explains why I have problems debugging parts of FPC with recent Lazarus versions. 😅 Why did this work with GDB however? 🤔
I don't know all the internals of gdb. So especially I am not sure how the query for the blue dots works correctly in gdb.
But, when setting the breakpoint fails on full name, the IDE will always sent "just filename" to gdb. And (I expect) gdb will then check all files (whatever full/partial/none path they have) . So the breakpoint will get set, if there is any way to do so.
At least with the 3.0 I still use my main issue isn't the blue dots and placing breakpoints, but accessing fields or even parameters which works with GDB.
At least with the 3.0 I still use my main issue isn't the blue dots and placing breakpoints, but accessing fields or even parameters which works with GDB.
Examples, please?
I know that old style "object" does not show parems (except with fpc trunk), but that is both gdb and fpdebug (afaik).
Seems like I was mistaken there. My main issue is htypechk.tcallcandidates and that was “recently” changed from class to object... 😕