meaning of tags in output

Tom Tromey
Tue Apr 23 18:17:00 GMT 2013

>>>>> "Markus" == Markus Teich <> writes:

Markus> Is there already a documented list?

There should be some information in the documentation.
If any are missing, we'd appreciate a patch or a bug report...

I don't think there is a complete list.  New ones are added whenever
necessary, but historically not always documented.

Markus> Since i am only working with C-Code right now, i tried to filter, which
Markus> tags are relevant for C and which are not.

If you are parsing the CLI output, you should know that MI is designed
for this.  Parsing the CLI output is always going to be fragile.

Markus> <synthetic pointer>
Markus> if "this" is not used in a C++ member function it is an
Markus> synthetic pointer.  irrelevant for C.

No, synthetic pointers are a DWARF extension typically used when the
compiler supports SRA.  GCC emits this in some cases.

Markus> <error reading variable>
Markus> occurs, when a variable is printed which is not yet initialized. Is it
Markus> C++ only?

Pretty much any error can wind up being printed this way.
I don't know of a way to categorize it.

Markus> <address of value unknown>
Markus> ???seems to be for errorhandling in gdb???

I see the code, but I don't know how this could happen.

Markus> <internal function %s>
Markus> ???

You can define internal functions in gdb; this is exposed to users via

These internal functions are represented as values with "internal
function" type.  If you try to print such a value, this is what you get.

Markus> <unavailable>
Markus> ???

I thought this one was documented, but I didn't immediately see it.

Some of a value's contents can be unavailable in some situations.
For example you might be examining saved trace data, and try to print a
register which was not traced.

Markus> <Error reading address %HEX?: %s>
Markus> could not read adress. What is the difference to the next tag?

Markus> <Address %HEX out of bounds>
Markus> Memory access on BADFOOD pointer

I see these both in val_print_string.
The difference comes from the error returned by the target code.
I don't know any more than that.

Markus> <invalid float value>
Markus> google hints: could be serious (stack corruption?).

Or, I think, an invalid bit pattern for a floating-point value.


More information about the Gdb mailing list