Gdb/i386-Features

From Get docs

G.5.4 i386 Features

The ‘org.gnu.gdb.i386.core’ feature is required for i386/amd64 targets. It should describe the following registers:

  • - ‘eax’ through ‘edi’ plus ‘eip’ for i386
  • - ‘rax’ through ‘r15’ plus ‘rip’ for amd64
  • - ‘eflags’, ‘cs’, ‘ss’, ‘ds’, ‘es’, ‘fs’, ‘gs
  • - ‘st0’ through ‘st7
  • - ‘fctrl’, ‘fstat’, ‘ftag’, ‘fiseg’, ‘fioff’, ‘foseg’, ‘fooff’ and ‘fop

The register sets may be different, depending on the target.

The ‘org.gnu.gdb.i386.sse’ feature is optional. It should describe registers:

  • - ‘xmm0’ through ‘xmm7’ for i386
  • - ‘xmm0’ through ‘xmm15’ for amd64
  • - ‘mxcsr

The ‘org.gnu.gdb.i386.avx’ feature is optional and requires the ‘org.gnu.gdb.i386.sse’ feature. It should describe the upper 128 bits of YMM registers:

  • - ‘ymm0h’ through ‘ymm7h’ for i386
  • - ‘ymm0h’ through ‘ymm15h’ for amd64

The ‘org.gnu.gdb.i386.mpx’ is an optional feature representing Intel Memory Protection Extension (MPX). It should describe the following registers:

  • - ‘bnd0raw’ through ‘bnd3raw’ for i386 and amd64.
  • - ‘bndcfgu’ and ‘bndstatus’ for i386 and amd64.

The ‘org.gnu.gdb.i386.linux’ feature is optional. It should describe a single register, ‘orig_eax’.

The ‘org.gnu.gdb.i386.segments’ feature is optional. It should describe two system registers: ‘fs_base’ and ‘gs_base’.

The ‘org.gnu.gdb.i386.avx512’ feature is optional and requires the ‘org.gnu.gdb.i386.avx’ feature. It should describe additional XMM registers:

  • - ‘xmm16h’ through ‘xmm31h’, only valid for amd64.

It should describe the upper 128 bits of additional YMM registers:

  • - ‘ymm16h’ through ‘ymm31h’, only valid for amd64.

It should describe the upper 256 bits of ZMM registers:

  • - ‘zmm0h’ through ‘zmm7h’ for i386.
  • - ‘zmm0h’ through ‘zmm15h’ for amd64.

It should describe the additional ZMM registers:

  • - ‘zmm16h’ through ‘zmm31h’, only valid for amd64.

The ‘org.gnu.gdb.i386.pkeys’ feature is optional. It should describe a single register, ‘pkru’. It is a 32-bit register valid for i386 and amd64.