Question: Problems with too large Symbol/String Table

Answer: A large symbol/string table could cause the following error messages when running the simulator or the emulator (debugger):

  • Cannot find string table
  • Negative AUX table id

There are 2 possible ways a symbol is created:

  • in your code: global variables, functions go into the symbol table
  • in TI tools code: TI creates additional symbol table entries that the user may not be aware of. The number of entries get increased when the -g option is selected during compilation. Last versions of TI compilers have minimized the amount of symbols created.

Cause of the problem: A malloc in a PC environment cannot allocate more than 2^16 bytes. Our old debugger core version < 3.22 uses a regular malloc to allocate PC memory space for the entire string table. The size of the string table is variable (depends on the size of the names of the variables).

The solution: Get a debugger that has been compiled with core debugger version >3.22. You can obtain the core debugger version used in the debugger by typing "version+" in the debugger command window. The new core debugger creates a segmented version of malloc that is able to handle the situation. The only limit is determined by the memory available on your PC.

Following is the list of debugger tools that have incorporated the new malloc

  • C3x: simulator version >=2.2 . emulator version >=4.6
  • C4x: simulator version >=1.24 . emulator version >=2.2

The size of the symbol table is not a problem for the debugging tools because we issue an individual malloc for each symbol entry. The only limitation is not having enough memory in the PC (this problem has been also solved in the current tool releases by implementing a caching scheme).


Device: TMS320C3x
Category: TI Tools Information
Detail: Debugger Tools
Detail2: General
Title: Too Large Symbol/String Table
Source: Case from TMS320 Hotline
Date: 4/28/98
GenId: a2

© Copyright 1998 Texas Instruments Incorporated. All rights reserved.
Trademarks, Important Notice!