Also, each static variable is enclosed in a static block. I'm not sure how to find which symbol of that name is the right one. For more information on linker stab relocation, See section Having the Linker Relocate Stabs in ELF . The value of the symbol, instead of being the address of the variable itself, is the address of a pointer to that variable. The exact form of the stab depends on how the parameter is being passed.
Debuggers use the second one to find the value, and the first one to know that it is an argument.
The symbol's value is the register number. As of version 4.9, GDB should handle either one. I haven't verified whether the system actually does what the documentation indicates. There is a case similar to an argument in a register, which is an argument that is actually stored as a local variable. Sometimes this happens when the argument was passed in a register and then the compiler stores it as a local variable.