[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

492.0. "Running out of symbol table" by AUNTB::BRILEY () Tue Jun 09 1987 12:24

    I have a customer who has an application written in COBOL and DCL.
    The application processes data and produces reports.  After a user
    run the program for a while, he gets an error saying that he has
    run out of symbol table space.  He tried raising CLISYMTBL to 500,
    but that just seem to postpone the occurence of the problem.  On
    possible offender in his opinion is the PRINT/DELETE DCL command,
    I'm not so sure.  Does anyone out there have some ideas as to what
    I should look for?
    
    Thanks much,
    Rob
T.RTitleUserPersonal
Name
DateLines
492.1SHOW SYMBOL/ALLUSHS01::BLANDOReality, what a concept!Wed Jun 10 1987 01:036
    PRINT/DELETE does not create any symbols (Unless PRINT is actually
    not print but redefined to do something else).  When you get the
    error do a SHOW SYMBOL/ALL and see what it shows.  It should help
    you track the problem.
    
    FJBlando
492.2What about other thingsAUNTB::BRILEYWed Jun 10 1987 12:477
    That has been done.  There do not appear to be a lot a symbols.
    However, according to some sources, symbols aren't the only thing
    that is put in the symbol tables.  There is alos some scratch stuff
    stored in this area.
       
    Thanks,
    Rob
492.3how I solve memory depletion bugsVIDEO::OSMANtype video::user$7:[osman]eric.sixWed Jun 10 1987 20:4920
What I've done to solve memory-depletion problems of this sort, is something
like this, in order:

o	Make program or .COM file to drive the system in a loop,
	such that you can reproducibly show the problem

o	Remove about half of the "guts" of the sysem, and see
	if problem still exists.

o	If so, remove half of what's left.

o	If removing half makes problem go away, put it back, and remove the
	other half, and verify that problem still exists.  Now you've cut entire
	thing in half, so you repeat.

In this fashion, you quickly narrow down to what is causing the problem.

If this doesn't make sense, I'll be glad to explain more, just ask.

/Eric
492.4Understood but....AUNTB::BRILEYThu Jun 11 1987 13:066
    I understand the technique.  Thats no problem.  I guess my question
    is, what is the other stuff that gets put in symbol table space?
    I understand that process symbols and global symbols get mapped
    there, but what are the other things that get put there?
    
    Rob
492.5CTLPAGES ?FNYFS::REZLANThu Jun 11 1987 18:446
    
Hi,
    
    Did you try to increase the sysgen parameter CTLPAGES ?`
    
    Alain.
492.6Labels, tooMDVAX3::COARA wretched hive of bugs and flamers.Mon Dec 14 1987 18:579
    The only other thing I can think of at the moment that goes into
    the `local symbol' table is the internal representation of all labels
    in the current command procedure.  Try reducing the number of GOTOs
    and unused labels in the .COM file.  At any rate, raising CLISYMTBL
    should correct this - eventually.  Changing it online will NOT affect
    existing processes - he'd have to log off and back on again to get
    the benefit of the new value.
    
    #ken	:-)}