Debugger limitations

Is there some limit to the amount of symbol information that Delphi 1 can cope with? I've a large project ( 100+ units ) which has started to show debugging problems. The browser doesn't always know about a symbol when asked, and setting breakpoints doesn't always work on lines that are definitely being called. Yes, I've got all the debug flags ( except TDW ) on, yes, I'm building everything in sight, and no, I'm not optimising for load time.
Is this a known problem? Any way to fix ? Does delphi 2 have any such limits ?
LVL 12
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

I've heard of this before, but haven't experienced it myself. I believe it has something to do with some internal limitations in the IDE debugger.

As far as I know you can't fix it... Consider DLLs is the best idea I can come up with.

I haven't experienced nor heard of any such problems in D2...


andrewjbAuthor Commented:
Current thoughts are that it might be something to do with the number of UNITS you've got, not their size. Although this sounds strange, someone else has indicated that a fix is to combine units into one.
That might work, if the problem is that the "namespace" of the debugger is too small. I've also seen comments indicating that keeping the units in the same directory would help.


Introduction to R

R is considered the predominant language for data scientist and statisticians. Learn how to use R for your own data science projects.

nils pipenbrinckCommented:
At least I can help you with the breakpoint problem.

If you want to raise a breakpoint you can hardcode it into your
program. Just use these three lines:

    int 3;

Int3 will be trapped by the debugger and will always work. But be sure you removed all these calls before you run the program without delphi. It'll crash!

It´s the length of the combined path of all your units which hits the roof in Delphi.
Shorten your paths or place all units in one dir near the root ex. c:\src\
You can, however, debug as it is now, just use a high level unit in the unit you wish to debug.
(Mail me if you did´nt get that :-) )

UNIT LowLevelUnit;


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
andrewjbAuthor Commented:
Interesting! Looks as though this might be helping. Two questions :
First, how did you find this out? Is there something documented somewhere, or was it by experimenting ?
Second, Sorry I didn't understand your 'include a high level unit' bit to get it to debug now. Could you explain again??

100 points are about to be yours!!.......

Found out the hard way - 350 units, 250.000 lines of code...

The units first parsed when you compile is low level units - file handling, math routines etc.
Your Mainform is prob. a very high level unit. (My own definition).

If you wish to debug f.ex. a math unit, place your mainforms unit name in the uses statement of the implementation in the math unit and rebuild. That should do the trick.

Happy coding, I hope Delphi 2/3 solves the problem.
What´s happening Andrew ?
andrewjbAuthor Commented:
Sorry, miv, just checking that it actually works.....
No problems so far. Still no reply from Borland!
Here are your points !
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.