diff --git a/dev/feed_json_updated.json b/dev/feed_json_updated.json
index f6991337f..212f11688 100644
--- a/dev/feed_json_updated.json
+++ b/dev/feed_json_updated.json
@@ -1 +1 @@
-{"version": "https://jsonfeed.org/version/1", "title": "pwndbg Blog", "home_page_url": "https://pwndbg.re/pwndbg/latest/", "feed_url": "https://pwndbg.re/pwndbg/latest/feed_json_updated.json", "description": "pwndbg (/pa\u028an\u02c8di\u02ccb\u028c\u0261/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.", "icon": "https://pwndbg.re/pwndbg/assets/favicon.ico", "authors": [], "language": "en", "items": [{"id": "https://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/", "url": "https://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/", "title": "Pwndbg coding sprints report", "content_html": "Report of the two coding sprints with Pwndbg\n", "image": null, "date_modified": "2025-08-11T22:24:29+00:00", "authors": [{"name": "Disconnect3d"}], "tags": []}]}
\ No newline at end of file
+{"version": "https://jsonfeed.org/version/1", "title": "pwndbg Blog", "home_page_url": "https://pwndbg.re/pwndbg/latest/", "feed_url": "https://pwndbg.re/pwndbg/latest/feed_json_updated.json", "description": "pwndbg (/pa\u028an\u02c8di\u02ccb\u028c\u0261/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.", "icon": "https://pwndbg.re/pwndbg/assets/favicon.ico", "authors": [], "language": "en", "items": [{"id": "https://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/", "url": "https://pwndbg.re/pwndbg/latest/blog/2022/08/21/pwndbg-coding-sprints-report/", "title": "Pwndbg coding sprints report", "content_html": "Report of the two coding sprints with Pwndbg\n", "image": null, "date_modified": "2025-08-11T22:29:03+00:00", "authors": [{"name": "Disconnect3d"}], "tags": []}]}
\ No newline at end of file
diff --git a/dev/feed_rss_created.xml b/dev/feed_rss_created.xml
index a13a99e48..22c278461 100644
--- a/dev/feed_rss_created.xml
+++ b/dev/feed_rss_created.xml
@@ -1 +1 @@
-
DisassemblyAssistant ¤DisassemblyAssistant(architecture: X86_MATH_INSTRUCTIONS – access module-attribute ¤
access = {v: _efor (k, v) in items() if startswith('CS_AC_')}
+ (pwndbg.aglib.disasm.x86.X86_MATH_INSTRUCTIONS)" href=#pwndbg.aglib.disasm.x86.X86_MATH_INSTRUCTIONS>X86_MATH_INSTRUCTIONS – X86_MATH_INSTRUCTIONS module-attribute ¤
X86_MATH_INSTRUCTIONS = {
X86_INS_ADD: "+",
X86_INS_SUB: "-",
diff --git a/dev/reference/pwndbg/lib/abi/index.html b/dev/reference/pwndbg/lib/abi/index.html
index cc3621d45..66e8819d8 100644
--- a/dev/reference/pwndbg/lib/abi/index.html
+++ b/dev/reference/pwndbg/lib/abi/index.html
@@ -143,52 +143,52 @@
module-attribute
- (pwndbg.lib.abi.SIGRETURN_ABIS)" href=#pwndbg.lib.abi.SIGRETURN_ABIS>SIGRETURN_ABIS (dict[tuple[int, str, str], SigreturnABI]) – linux_aarch64 module-attribute ¤
linux_aarch64 = ABI(['x0', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7'], 16, 0)
-
linux_mips module-attribute ¤
linux_mips = ABI(['$a0', '$a1', '$a2', '$a3'], 4, 0)
+ (pwndbg.lib.abi.SIGRETURN_ABIS)" href=#pwndbg.lib.abi.SIGRETURN_ABIS>SIGRETURN_ABIS (dict[tuple[int, str, str], SigreturnABI]) – linux_aarch64 module-attribute ¤
linux_aarch64 = ABI(('x0', 'x1', 'x2', 'x3', 'x4', 'x5', 'x6', 'x7'), 16, 0)
+
linux_mips64 module-attribute ¤
linux_mips64 = ABI(
- ["$a0", "$a1", "$a2", "$a3", "$a4", "$a5", "$a6", "$a7"], 8, 0
+ ("$a0", "$a1", "$a2", "$a3", "$a4", "$a5", "$a6", "$a7"), 8, 0
)
-
linux_ppc module-attribute ¤
linux_ppc = ABI(['r3', 'r4', 'r5', 'r6', 'r7', 'r8', 'r9', 'r10'], 4, 0)
-
linux_ppc64 module-attribute ¤
linux_ppc64 = ABI(['r3', 'r4', 'r5', 'r6', 'r7', 'r8', 'r9', 'r10'], 8, 0)
-
linux_riscv32 module-attribute ¤
linux_riscv32 = ABI(['a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'], 4, 0)
-
linux_riscv64 module-attribute ¤
linux_riscv64 = ABI(['a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'], 8, 0)
+
linux_ppc module-attribute ¤
linux_ppc = ABI(('r3', 'r4', 'r5', 'r6', 'r7', 'r8', 'r9', 'r10'), 4, 0)
+
linux_ppc64 module-attribute ¤
linux_ppc64 = ABI(('r3', 'r4', 'r5', 'r6', 'r7', 'r8', 'r9', 'r10'), 8, 0)
+
linux_riscv32 module-attribute ¤
linux_riscv32 = ABI(('a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'), 4, 0)
+
linux_riscv64 module-attribute ¤
linux_riscv64 = ABI(('a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7'), 8, 0)
linux_i386_syscall module-attribute ¤
linux_i386_syscall = SyscallABI(
- ["eax", "ebx", "ecx", "edx", "esi", "edi", "ebp"], 4, 0
+ ("eax", "ebx", "ecx", "edx", "esi", "edi", "ebp"), 4, 0
)
linux_amd64_syscall module-attribute ¤
linux_amd64_syscall = SyscallABI(
- ["rax", "rdi", "rsi", "rdx", "r10", "r8", "r9"], 8, 0
+ ("rax", "rdi", "rsi", "rdx", "r10", "r8", "r9"), 8, 0
)
linux_arm_syscall module-attribute ¤
linux_arm_syscall = SyscallABI(
- ["r7", "r0", "r1", "r2", "r3", "r4", "r5", "r6"], 4, 0
+ ("r7", "r0", "r1", "r2", "r3", "r4", "r5", "r6"), 4, 0
)
linux_aarch64_syscall module-attribute ¤
linux_aarch64_syscall = SyscallABI(
- ["x8", "x0", "x1", "x2", "x3", "x4", "x5"], 16, 0
+ ("x8", "x0", "x1", "x2", "x3", "x4", "x5"), 16, 0
)
-
linux_mips_syscall module-attribute ¤
linux_mips_syscall = SyscallABI(['$v0', '$a0', '$a1', '$a2', '$a3'], 4, 0)
+
linux_mips_syscall module-attribute ¤
linux_mips_syscall = SyscallABI(('$v0', '$a0', '$a1', '$a2', '$a3'), 4, 0)
linux_mips64_syscall module-attribute ¤
linux_mips64_syscall = SyscallABI(
- ["$v0", "$a0", "$a1", "$a2", "$a3", "$a4", "$a5"], 4, 0
+ ("$v0", "$a0", "$a1", "$a2", "$a3", "$a4", "$a5"), 4, 0
)
linux_ppc_syscall module-attribute ¤
linux_ppc_syscall = SyscallABI(
- ["r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9"], 4, 0
+ ("r0", "r3", "r4", "r5", "r6", "r7", "r8", "r9"), 4, 0
)
linux_ppc64_syscall module-attribute ¤
linux_ppc64_syscall = SyscallABI(
- ["r0", "r3", "r4", "r5", "r6", "r7", "r8"], 8, 0
+ ("r0", "r3", "r4", "r5", "r6", "r7", "r8"), 8, 0
)
linux_riscv32_syscall module-attribute ¤
linux_riscv32_syscall = SyscallABI(
- ["a7", "a0", "a1", "a2", "a3", "a4", "a5", "a6"], 4, 0
+ ("a7", "a0", "a1", "a2", "a3", "a4", "a5", "a6"), 4, 0
)
linux_riscv64_syscall module-attribute ¤
linux_riscv64_syscall = SyscallABI(
- ["a7", "a0", "a1", "a2", "a3", "a4", "a5", "a6"], 8, 0
+ ("a7", "a0", "a1", "a2", "a3", "a4", "a5", "a6"), 8, 0
)
-
DEFAULT_ABIS module-attribute ¤
DEFAULT_ABIS: dict[tuple[int, str, str], ABI] = {
(32, "i386", "linux"): linux_arm_sigreturn,
}
-
ABI ¤
Encapsulates information about a calling convention.
Attributes:
-
register_arguments (list[str]) – -
register_arguments (tuple[str, ...]) – -
stack_minimum –
SyscallABI ¤
Bases: ABI
The syscall ABI treats the syscall number as the zeroth argument, which must be loaded into the specified register.
Attributes:
-
register_arguments (list[str]) – -
register_arguments (tuple[str, ...]) – -
returns –
register_arguments class-attribute instance-attribute ¤
SigreturnABI ¤
Bases: SyscallABI
The sigreturn ABI is similar to the syscall ABI, except that both PC and SP are loaded from the stack. Because of this, there is no 'return' slot necessary on the stack.
Attributes:
-
register_arguments (list[str]) – -
register_arguments (tuple[str, ...]) – -
syscall_register –