Qualifying Symbol Names
The way you describe a scope is similar to the way you specify a file. The scopes in a program form a tree, with the outermost scope (which is your program) as the root. At the next level are executable files and dynamic libraries; further down are compilation units (source files), procedures, modules, and other scoping units (for example, blocks) supported by the programming language. Qualifying a symbol is equivalent to describing the path to a file in UNIX file systems.
A symbol is fully scoped when you name all levels of its tree. The following example shows how to scope a symbol and also indicates parts that are optional:
[##executable-or-lib#][file#][procedure-or-line#]symbol
The pound sign (#) separates elements of the fully qualified name.
*Because of the number of different types of elements that can appear in your program, a complete description of what can appear and their possible order is complicated and unreadable. In contrast, after you see a name in the Stack Frame Pane, it is easy to read a variable’s scoped name.
TotalView interprets most programs and components as follows:
*If a qualified symbol begins with ##, the name that follows indicates the name of the executable or shared library (just as an absolute file path begins with a directory immediately in the root directory). If you omit the executable or library component, the qualified symbol doesn’t begin with #.
*The source file’s name can appear after the possibly omitted executable or shared library.
*Because programming languages typically do not let you name blocks, that portion of the qualifier is specified using the symbols $b followed by a number that indicates which block. For example, the first unnamed block is named $b1, the second is $b2, and so on.
 
RELATED TOPICS 
 
Issues with scoping
The dbreak command
dbreak command description
Breakpoints at locations
Lookup Function
The View > Lookup Function topic in the in-product help
Lookup Variable
The View > Lookup Variable topic in the in-product help