Logically, I would assume that there has to be. If im correct, I'm also assuming that its separate from the global symbol table, and that its created by the compiler when a function call is reached and deleted when the compiler reaches the end of the called function. I would also assume that within the symbol table, the variable locations would be stored as relative offsets from the stack base pointer. And just out of curiosity and with reference to all symbol tables, is the explicit length of a variable stored in the symbol table entry, or is the variable type stored (from which a length could be extrapolated), or perhaps both?
Although, each item compiler, may work different from another, including debugger and symbol table operation, one possible solution, it's to use the AST tree as a hierarchical symbol table.
Each tree node stores a symbol, in some cases, such as a function, stores subordinates symbols as local parameters, and local variables.
Each tree node, may store additional information for each symbol, like the source code file, where it was declared, line and row number, text of the variable or constant, and the current memory location.
Many debbugers work more like an interpreter, even if you are crafting a compiler.