Delphi 13 Florence: 64-bit IDE debugging experience
Anyone who has ever debugged a 64-bit application in Delphi, especially one that involves multiple threads, has probably experienced disconnected session issues, or the IDE not showing watch values, or simply getting non-responsive in the middle of a debugging session.
The new 64-bit IDE and its LLDB-based debugger provide a solution to such problems. You may no longer have to sprinkle your code with logging code that is otherwise not needed; nor will you have to waste hours trying to catch some error, only for Delphi to die on you when you are two lines of code away from discovering the problem.
However, it is not all that peachy. Namely, LLDB has its own quirks.
First of all, it is dog slow. It is slow when evaluating breakpoints, it is slow when handling exceptions (even ignored ones), it is slow when it stops at a breakpoint and shows local variable values. The more powerful computer you have, the better the experience will be.
While there is still plenty of room for improvement in this area, and I expect that there will be continuous speed improvements in further releases, the LLDB will never be as fast as the old, handcrafted Delphi debugger, just like the LLVM-based compiler's speed will never match the handcrafted Delphi compiler. The LLVM and LLDB toolchains are just slower, and that is a fact of life we have to deal with.
The fact is LLVM/LLDB were originally written for C and C++ languages and ever since the Turbo Pascal era, Borland/CodeGear/Embarcadero Pascal/Delphi compilers were known to run circles around the C and C++ compilers, and we have all been spoiled by their speed.
Another problem is that the LLDB debugger lacks some features of the old handcrafted Delphi debugger, which was made specifically for Delphi and is fine-tuned for its language features. Again, there is still room for improvement in this area, too, but adjusting a general-purpose toolchain which was built with C and C++ in mind will take time, and it is possible that there will always be some discrepancy between what the old compiler/debugger could do compared to the LLVM/LLDB-based equivalents.
In that light, as long as you still have the old debugger and 32-bit IDE, you may still want to do your base development and debugging in the old IDE, unless you have other reasons to use the 64-bit one by default, like a project that is too large for the 32-bit memory space.
But when the 32-bit IDE starts acting up during debugging, instead of cursing and pulling your hair, you can turn to the 64-bit IDE. Maybe you will progress at a tad slower pace, but you will be able to complete the debugging session without any interruptions and find the information you were after.
Comments
Post a Comment