Adding architecture-specific commands in GDB
Matthieu Longo via Gdb <[email protected]> Mon, 22 Jun 2026 17:26:02 +0100
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi all, Today, GDB seems to support architecture-specific commands for show/set [1]. However, it is not clear to me whether any commands beyond the scope of show/set can/should be easily added. My usecase consists in adding AArch64-specific commands to dump some tables and permissions set up by the Linux kernel. # Constraints: 1. The tables are AArch64 specific and don't fit into an existing command. 2. The permissions/capability views require to fetch information in different tables and procfs files to be computed, so the computation of such permissions/capabilities is very tied to the architecture specificities. Since I don't see how I could add those features to existing commands, I was thinking about adding them under an "aarch64" namespace, and following the semantic of existing generic commands as much as possible. # Examples ## Dumping the tables show aarch64 <feature>-tables [TABLE_NAME]* NB: those tables should only be set by the kernel, only read access is required. The content is tied to the architecture. ## Dumping permissions aarch64 info <feature> <permissions-type> [some other options and args] ## Dumping capabilities for a code or data aarch64 info <feature> caps [some other options and args] Please note that in the previous examples, <feature> is a subcommand of info, and <permissions-type> or caps are subcommands of <feature>. Note: "info aarch64 <subcommand> <subsubcommand>" might make more sense than "aarch64 info <subcommand> <subsubcommand>" given the existing show/set commands. Please let me know if adding such architecture-specific commands is possible today, or if it requires changing the current commands framework. Those new commands would really be needed for debugging the new AArch64 feature and are not optional. Is such an architecture-specific support undesirable ? Should such commands be moved to Python extensions even if they are essential ? [1]: https://sourceware.org/gdb/current/onlinedocs/gdb.html/Embedded-Processors.html#Embedded-Processors Regards, Matthieu