Repository Analysis

pwndbg/pwndbg

Exploit Development and Reverse Engineering with GDB & LLDB Made Easy

14.0 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of pwndbg/pwndbg, a Python project with 10,637 GitHub stars. SynthScan v2.0 examined 115,697 lines of code across 776 source files, recording 1362 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 14.0 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

14.0
Adjusted Score
14.0
Raw Score
100%
Time Factor
2026-07-11
Last Push
10.6K
Stars
Python
Language
115.7K
Lines of Code
776
Files
1.4K
Pattern Hits
2026-07-14
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 14HIGH 6MEDIUM 47LOW 1295

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1362 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Unused Imports474 hits · 472 pts
SeverityFileLineSnippetContext
LOWgdbinit.py1CODE
LOWnix/bundle/bundle.py1CODE
LOWtests/tests.py2CODE
LOWtests/host/__init__.py1CODE
LOWtests/host/gdb/__init__.py1CODE
LOWtests/host/gdb/pytests_launcher.py1CODE
LOWtests/host/gdb/pytests_collect.py1CODE
LOWtests/host/lldb/__init__.py1CODE
LOWtests/host/lldb/launch_guest.py1CODE
LOWtests/unit_tests/test_net.py1CODE
LOWtests/unit_tests/test_arch.py1CODE
LOWtests/unit_tests/test_zig_asm.py1CODE
LOWtests/unit_tests/test_which.py1CODE
LOWtests/unit_tests/test_which.py19CODE
LOWtests/unit_tests/test_which.py20CODE
LOWtests/unit_tests/test_got.py1CODE
LOWtests/unit_tests/test_regs.py1CODE
LOWtests/unit_tests/test_bit_math.py1CODE
LOWtests/unit_tests/test_sock_diag.py1CODE
LOWtests/unit_tests/test_functions.py1CODE
LOWtests/unit_tests/test_memory.py1CODE
LOWtests/unit_tests/test_memory.py17CODE
LOWtests/unit_tests/test_memory.py18CODE
LOWtests/unit_tests/test_qemu.py1CODE
LOWtests/unit_tests/test_proc_fd.py1CODE
LOWtests/unit_tests/test_hex2ptr.py1CODE
LOWtests/library/gdb/conftest.py5CODE
LOWtests/library/gdb/tests/test_consistent_help.py1CODE
LOWtests/library/gdb/tests/test_callstack.py1CODE
LOWtests/library/gdb/tests/test_command_distance.py1CODE
LOWtests/library/gdb/tests/test_cymbol.py1CODE
LOWtests/library/gdb/tests/test_command_stepuntilasm.py1CODE
LOWtests/library/gdb/tests/test_command_xor.py1CODE
LOWtests/library/gdb/tests/test_command_killthreads.py1CODE
LOWtests/library/gdb/tests/test_attachp.py1CODE
LOWtests/library/gdb/tests/test_command_ignore.py1CODE
LOWtests/library/gdb/tests/test_command_cyclic.py1CODE
LOWtests/library/gdb/tests/test_readline.py1CODE
LOWtests/library/gdb/tests/test_readline.py18CODE
LOWtests/library/gdb/tests/test_command_onegadget.py1CODE
LOWtests/library/gdb/tests/test_gdblib_parameter.py1CODE
LOWtests/library/gdb/tests/test_triggers.py1CODE
LOWtests/library/gdb/tests/__init__.py1CODE
LOWtests/library/gdb/tests/test_command_vmmap.py1CODE
LOWtests/library/gdb/tests/test_glibc.py1CODE
LOWtests/library/gdb/tests/test_mprotect.py1CODE
LOWtests/library/gdb/tests/test_command_config.py1CODE
LOWtests/library/gdb/tests/test_command_flags.py1CODE
LOWtests/library/gdb/tests/test_function_base.py1CODE
LOWtests/library/gdb/tests/test_command_telescope.py1CODE
LOWtests/library/gdb/tests/test_go.py1CODE
LOWtests/library/gdb/tests/utils.py1CODE
LOWtests/library/gdb/tests/test_file.py1CODE
LOWtests/library/gdb/tests/test_commands.py1CODE
LOWtests/library/gdb/tests/test_prompt_recolor.py1CODE
LOWtests/library/gdb/tests/test_command_procinfo.py1CODE
LOWtests/library/gdb/tests/test_loads.py1CODE
LOWtests/library/gdb/tests/test_commands_elf.py1CODE
LOWtests/library/gdb/tests/test_commands_next.py1CODE
LOWtests/library/gdb/tests/test_commands_dumpargs.py1CODE
414 more matches not shown…
Hyper-Verbose Identifiers374 hits · 372 pts
SeverityFileLineSnippetContext
LOWtests/tests.py92def run_tests_and_print_stats(CODE
LOWtests/host/gdb/pytests_collect.py21 def pytest_collection_modifyitems(self, items):CODE
LOWtests/host/lldb/launch_guest.py121 def pytest_collection_modifyitems(self, items):CODE
LOWtests/unit_tests/test_net.py18def test_netlink_parses_all_fields() -> None:STRING
LOWtests/unit_tests/test_net.py40def test_netlink_str_route_decodes_named_groups() -> None:STRING
LOWtests/unit_tests/test_net.py52def test_netlink_str_non_route_uses_hex_groups() -> None:STRING
LOWtests/unit_tests/test_net.py70def test_format_netlink_groups_zero() -> None:STRING
LOWtests/unit_tests/test_net.py75def test_format_netlink_groups_route_known_bits() -> None:STRING
LOWtests/unit_tests/test_net.py80def test_format_netlink_groups_route_with_unknown_bits() -> None:STRING
LOWtests/unit_tests/test_net.py88def test_format_netlink_groups_non_route_is_hex() -> None:STRING
LOWtests/unit_tests/test_arch.py7def test_reg_set_mappings_exist():CODE
LOWtests/unit_tests/test_regs.py221def test_emulated_register_set_mips():CODE
LOWtests/unit_tests/test_sock_diag.py14def test_get_unix_peers_resolves_socketpair() -> None:CODE
LOWtests/unit_tests/test_sock_diag.py31def test_get_unix_peers_after_close() -> None:CODE
LOWtests/unit_tests/test_sock_diag.py47def test_find_socket_inode_owners_locates_self() -> None:CODE
LOWtests/unit_tests/test_sock_diag.py68def test_find_socket_inode_owners_empty_input() -> None:CODE
LOWtests/unit_tests/test_sock_diag.py72def test_find_socket_inode_owners_unknown_inode() -> None:CODE
LOWtests/unit_tests/test_functions.py15def test_functions_lookup_does_not_exist() -> None:CODE
LOWtests/unit_tests/test_functions.py21def test_format_flags_not_found() -> None:CODE
LOWtests/unit_tests/test_qemu.py6def test_parse_qgdbserverversion_empty():CODE
LOWtests/unit_tests/test_qemu.py11def test_parse_qgdbserverversion_without_version():CODE
LOWtests/unit_tests/test_qemu.py15def test_parse_qgdbserverversion_with_full_version():CODE
LOWtests/unit_tests/test_qemu.py20def test_parse_qgdbserverversion_with_partial_version():CODE
LOWtests/unit_tests/test_proc_fd.py14def test_find_pipe_endpoints_locates_both_ends() -> None:CODE
LOWtests/unit_tests/test_proc_fd.py36def test_find_pipe_endpoints_empty_input() -> None:CODE
LOWtests/unit_tests/test_proc_fd.py40def test_find_pipe_endpoints_unknown_inode() -> None:CODE
LOWtests/unit_tests/test_proc_fd.py46def test_read_fdinfo_mode_for_pipe_ends() -> None:CODE
LOWtests/unit_tests/test_proc_fd.py56def test_read_fdinfo_mode_unknown_fd() -> None:CODE
LOWtests/unit_tests/test_proc_fd.py61def test_pipe_str_renders_self_only() -> None:CODE
LOWtests/unit_tests/test_proc_fd.py70def test_pipe_str_renders_peer() -> None:CODE
LOWtests/unit_tests/test_proc_fd.py85def test_pipe_str_renders_multiple_peers() -> None:CODE
LOWtests/library/gdb/tests/test_command_xor.py14def test_command_xor_with_gdb_execute(start_binary):CODE
LOWtests/library/gdb/tests/test_command_xor.py27def test_command_xor_with_int(start_binary):CODE
LOWtests/library/gdb/tests/test_command_xor.py41def test_command_xor_with_hex(start_binary):CODE
LOWtests/library/gdb/tests/test_command_killthreads.py29def test_command_killthreads_kills_all_threads_except_current(start_binary):CODE
LOWtests/library/gdb/tests/test_command_killthreads.py42def test_command_killthreads_kills_specific_thread(start_binary):CODE
LOWtests/library/gdb/tests/test_command_killthreads.py80def test_command_killthreads_produces_error_when_unknown_thread_passed(start_binary):CODE
LOWtests/library/gdb/tests/test_command_killthreads.py97def test_command_killthreads_before_binary_start():CODE
LOWtests/library/gdb/tests/test_attachp.py60def test_attachp_command_attaches_to_procname(launched_sleep_binary):CODE
LOWtests/library/gdb/tests/test_attachp.py73def test_attachp_command_attaches_to_pid(launched_sleep_binary):CODE
LOWtests/library/gdb/tests/test_attachp.py85def test_attachp_command_attaches_to_procname_resolve_none(launched_sleep_binary):CODE
LOWtests/library/gdb/tests/test_attachp.py119def test_attachp_command_attaches_to_procname_resolve_none_no_truncate(launched_sleep_binary):CODE
LOWtests/library/gdb/tests/test_attachp.py154def test_attachp_command_attaches_to_procname_resolve_ask(launched_sleep_binary):CODE
LOWtests/library/gdb/tests/test_attachp.py195def test_attachp_command_attaches_to_procname_resolve_oldest(launched_sleep_binary):CODE
LOWtests/library/gdb/tests/test_attachp.py216def test_attachp_command_attaches_to_procname_resolve_newest(launched_sleep_binary):CODE
LOWtests/library/gdb/tests/test_attachp.py237def test_attachp_command_nonexistent_procname():CODE
LOWtests/library/gdb/tests/test_attachp.py244def test_attachp_command_no_pids():CODE
LOWtests/library/gdb/tests/test_command_ignore.py12def test_command_ignore_no_breakpoint_set():CODE
LOWtests/library/gdb/tests/test_command_ignore.py17def test_command_ignore_no_breakpoint_set_remove():CODE
LOWtests/library/gdb/tests/test_command_ignore.py25def test_command_ignore_no_breakpoint_found(start_binary):CODE
LOWtests/library/gdb/tests/test_command_ignore.py33def test_command_ignore_breakpoint_last_found_one():CODE
LOWtests/library/gdb/tests/test_command_ignore.py47def test_command_ignore_breakpoint_last_found_two():CODE
LOWtests/library/gdb/tests/test_command_ignore.py56def test_command_ignore_breakpoint_last_negative():CODE
LOWtests/library/gdb/tests/test_command_cyclic.py17def test_command_cyclic_detect(start_binary):CODE
LOWtests/library/gdb/tests/test_readline.py7def test_readline_import_error():CODE
LOWtests/library/gdb/tests/test_command_onegadget.py205def test_no_onegadget_installed(which):STRING
LOWtests/library/gdb/tests/test_command_onegadget.py216def test_no_libc_loaded_for_onegadget(which):STRING
LOWtests/library/gdb/tests/test_gdblib_parameter.py56def test_gdb_parameter_default_value_works(start_binary, params):CODE
LOWtests/library/gdb/tests/test_command_vmmap.py62def test_command_vmmap_on_coredump_on_crash_simple_binary(start_binary, unload_file):CODE
LOWtests/library/gdb/tests/test_glibc.py22def test_finding_glibc_filepath(start_binary, have_debugging_information):CODE
314 more matches not shown…
Deep Nesting176 hits · 174 pts
SeverityFileLineSnippetContext
LOWnix/bundle/bundle.py13CODE
LOWtests/library/gdb/tests/test_triggers.py17CODE
LOWtests/library/dbg/tests/test_try_free.py19CODE
LOWtests/library/dbg/tests/test_triggers.py17CODE
LOWscripts/custom-lint.py33CODE
LOWscripts/_docs/extract_command_docs.py74CODE
LOWscripts/_docs/extract_command_docs.py167CODE
LOWscripts/_docs/build_function_docs.py81CODE
LOWscripts/_docs/build_command_docs.py250CODE
LOWscripts/_docs/build_command_docs.py293CODE
LOWscripts/_docs/build_command_docs.py373CODE
LOWscripts/_docs/build_configuration_docs.py20CODE
LOWpwndbg/chain.py105CODE
LOWpwndbg/arguments.py32CODE
LOWpwndbg/arguments.py201CODE
LOWpwndbg/enhance.py44CODE
LOWpwndbg/hexdump.py74CODE
LOWpwndbg/emu/emulator.py350CODE
LOWpwndbg/emu/emulator.py462CODE
LOWpwndbg/emu/emulator.py613CODE
LOWpwndbg/color/disasm.py33CODE
LOWpwndbg/color/disasm.py73CODE
LOWpwndbg/color/memory.py85CODE
LOWpwndbg/color/syntax_highlight.py61CODE
LOWpwndbg/dbg_mod/gdb/__init__.py108CODE
LOWpwndbg/dbg_mod/gdb/__init__.py982CODE
LOWpwndbg/dbg_mod/gdb/__init__.py1063CODE
LOWpwndbg/dbg_mod/gdb/__init__.py1982CODE
LOWpwndbg/dbg_mod/lldb/__init__.py176CODE
LOWpwndbg/dbg_mod/lldb/__init__.py1191CODE
LOWpwndbg/dbg_mod/lldb/__init__.py1276CODE
LOWpwndbg/dbg_mod/lldb/__init__.py1652CODE
LOWpwndbg/dbg_mod/lldb/__init__.py1790CODE
LOWpwndbg/dbg_mod/lldb/pset.py36CODE
LOWpwndbg/dbg_mod/lldb/repl/fuzzy.py216CODE
LOWpwndbg/dbg_mod/lldb/repl/fuzzy.py248CODE
LOWpwndbg/dbg_mod/lldb/repl/proc.py412CODE
LOWpwndbg/dbg_mod/lldb/repl/proc.py571CODE
LOWpwndbg/dbg_mod/lldb/repl/proc.py662CODE
LOWpwndbg/dbg_mod/lldb/repl/io.py239CODE
LOWpwndbg/dbg_mod/lldb/repl/io.py264CODE
LOWpwndbg/dbg_mod/lldb/repl/io.py543CODE
LOWpwndbg/dbg_mod/lldb/repl/__init__.py304CODE
LOWpwndbg/dbg_mod/lldb/repl/__init__.py480CODE
LOWpwndbg/gdblib/got.py345CODE
LOWpwndbg/gdblib/got.py506CODE
LOWpwndbg/gdblib/ptmalloc2_tracking.py275CODE
LOWpwndbg/gdblib/vmmap.py128CODE
LOWpwndbg/gdblib/vmmap.py351CODE
LOWpwndbg/gdblib/tui/context.py173CODE
LOWpwndbg/lib/sock_diag.py55CODE
LOWpwndbg/lib/sock_diag.py154CODE
LOWpwndbg/lib/got.py21CODE
LOWpwndbg/lib/net.py86CODE
LOWpwndbg/lib/proc_fd.py60CODE
LOWpwndbg/lib/proc_fd.py93CODE
LOWpwndbg/commands/attachp.py84CODE
LOWpwndbg/commands/attachp.py138CODE
LOWpwndbg/commands/attachp.py225CODE
LOWpwndbg/commands/rop.py195CODE
116 more matches not shown…
Hallucination Indicators14 hits · 155 pts
SeverityFileLineSnippetContext
CRITICALpwndbg/dbg_mod/lldb/repl/fuzzy.py164 event.app.current_buffer.document.text_before_cursor.lstrip()CODE
CRITICALpwndbg/commands/knft.py11 val = pwndbg.aglib.kernel.nftables.nftables_table_family.get(s)CODE
CRITICALpwndbg/commands/knft.py13 allowed = ",".join(set(pwndbg.aglib.kernel.nftables.nftables_table_family.keys()))CODE
CRITICALpwndbg/commands/knft.py19 nft = pwndbg.aglib.kernel.nftables.Nftables.find(nsid=nsid)CODE
CRITICALpwndbg/commands/knft.py28 nft = pwndbg.aglib.kernel.nftables.Nftables.find(nsid=nsid)CODE
CRITICALpwndbg/commands/knft.py41 for nft in pwndbg.aglib.kernel.nftables.Table.find(CODE
CRITICALpwndbg/commands/knft.py59 for nft in pwndbg.aglib.kernel.nftables.Chain.find(CODE
CRITICALpwndbg/commands/knft.py77 for nft in pwndbg.aglib.kernel.nftables.Rule.find(CODE
CRITICALpwndbg/commands/knft.py95 for nft in pwndbg.aglib.kernel.nftables.Table.find(CODE
CRITICALpwndbg/commands/knft.py109 for nft in pwndbg.aglib.kernel.nftables.Table.find(CODE
CRITICALpwndbg/commands/knft.py123 for nft in pwndbg.aglib.kernel.nftables.Table.find(CODE
CRITICALpwndbg/commands/context.py1375 pwndbg.aglib.disasm.disassembly.computed_instruction_cache.clear()CODE
CRITICALpwndbg/commands/dev.py54 cached_instruction = pwndbg.aglib.disasm.disassembly.computed_instruction_cache.get(STRING
CRITICALpwndbg/aglib/regs_mod.py84 reg_definition = pwndbg.aglib.regs.current.reg_definitions.get(name.lower())CODE
Excessive Try-Catch Wrapping92 hits · 97 pts
SeverityFileLineSnippetContext
LOWtests/library/gdb/tests/test_cymbol.py28 except Exception as exception:CODE
LOWtests/library/dbg/tests/test_hexdump.py159 except Exception as e:CODE
LOWtests/library/dbg/tests/test_hexdump.py170 except Exception as e:CODE
LOWtests/library/dbg/tests/test_hexdump.py179 except Exception as e:CODE
LOWpwndbginit/gdbinit.py91 except Exception:CODE
LOWpwndbg/auxv.py85 except Exception:STRING
LOWpwndbg/ui.py70 except Exception:CODE
LOWpwndbg/arguments.py123 except Exception:CODE
LOWpwndbg/decorators.py59 except Exception as e:CODE
LOWpwndbg/dintegration/__init__.py671 except Exception:CODE
LOWpwndbg/dintegration/__init__.py677 except Exception:CODE
MEDIUMpwndbg/dbg_mod/gdb/__init__.py254def parent(self) -> pwndbg.dbg_mod.Frame | None:CODE
LOWpwndbg/dbg_mod/gdb/__init__.py1415 except Exception:CODE
MEDIUMpwndbg/dbg_mod/lldb/__init__.py575def code(self) -> pwndbg.dbg_mod.TypeCode:CODE
LOWpwndbg/dbg_mod/lldb/__init__.py114 except Exception:CODE
LOWpwndbg/dbg_mod/lldb/__init__.py578 except Exception:CODE
LOWpwndbg/dbg_mod/lldb/__init__.py2467 except Exception as e:CODE
LOWpwndbg/dbg_mod/lldb/repl/__init__.py773 except Exception:CODE
LOWpwndbg/gdblib/events.py366 except Exception as e:STRING
MEDIUMpwndbg/gdblib/events.py100def _is_safe_event_packet():CODE
LOWpwndbg/gdblib/vmmap.py309 except Exception:CODE
LOWpwndbg/lib/got.py67 except Exception:CODE
LOWpwndbg/lib/funcparser.py103 except Exception:CODE
LOWpwndbg/lib/zig.py107 except Exception as e:CODE
LOWpwndbg/commands/version.py197 except Exception:CODE
LOWpwndbg/commands/version.py202 except Exception:CODE
LOWpwndbg/commands/kmem_trace.py324 except Exception as e:STRING
LOWpwndbg/commands/p2p.py34 except Exception:CODE
LOWpwndbg/commands/p2p.py69 except Exception:CODE
LOWpwndbg/commands/rizin.py61 except Exception:STRING
LOWpwndbg/commands/ropper.py55 except Exception:STRING
LOWpwndbg/commands/canary.py112 except Exception:CODE
LOWpwndbg/commands/ai.py178 except Exception as e:CODE
LOWpwndbg/commands/ai.py501 except Exception as e:CODE
MEDIUMpwndbg/commands/msr.py154 print(f"Error: failed to parse {msr}")STRING
MEDIUMpwndbg/commands/msr.py166 print("Error: invalid range")STRING
LOWpwndbg/commands/aslr.py31 except Exception:CODE
LOWpwndbg/commands/aslr.py40 except Exception:CODE
LOWpwndbg/commands/__init__.py544 except Exception:CODE
LOWpwndbg/commands/__init__.py653 except Exception:CODE
LOWpwndbg/commands/__init__.py667 except Exception as e:CODE
LOWpwndbg/commands/__init__.py910 except Exception as err:CODE
LOWpwndbg/commands/ptmalloc2.py299 except Exception as E:CODE
LOWpwndbg/commands/ptmalloc2.py1537 except Exception:CODE
LOWpwndbg/commands/cymbol.py62 except Exception:CODE
LOWpwndbg/commands/context.py1260 except Exception:CODE
LOWpwndbg/commands/search.py301 except Exception:STRING
MEDIUMpwndbg/commands/nearpc.py134 print(f"Error: function boundaries of '{hex(function)}' could not be found")CODE
MEDIUMpwndbg/commands/nearpc.py139 print(f"Error: function boundaries of '{hex(function)}' could not be found")CODE
LOWpwndbg/commands/hex2ptr.py25 except Exception as e:CODE
LOWpwndbg/commands/slab.py344 except Exception as e:CODE
LOWpwndbg/commands/radare2.py63 except Exception:STRING
LOWpwndbg/commands/paging.py140 except Exception:CODE
LOWpwndbg/commands/paging.py185 except Exception:CODE
MEDIUMpwndbg/commands/paging.py65def page_info(page) -> None:CODE
LOWpwndbg/commands/comments.py39 except Exception:CODE
LOWpwndbg/commands/comments.py60 except Exception:CODE
MEDIUMpwndbg/commands/comments.py43def init() -> None:CODE
LOWpwndbg/commands/next.py189 except Exception:CODE
MEDIUMpwndbg/commands/next.py186def check_condition() -> bool:CODE
32 more matches not shown…
Redundant / Tautological Comments54 hits · 79 pts
SeverityFileLineSnippetContext
LOWgdbinit.py75 # Check if pwndbg was already loaded from `pwndbg` binaryCOMMENT
LOWkernel-tests.sh7# Check if we have correct ptrace_scopeCOMMENT
LOWkernel-tests.sh14# Check if we need to download kernel imagesCOMMENT
LOWsetup-dev.sh182 # Check if jemalloc is already installedCOMMENT
LOWsetup-dev.sh197 # Check if jemalloc tarball already exists and has the correct checksumCOMMENT
LOWsetup-dev.sh225 # Check if jemalloc source code has already been extractedCOMMENT
LOWtests/library/gdb/tests/test_cymbol.py115 # Check if the structure types match what we expect (on x86-64)STRING
LOWtests/library/gdb/tests/test_command_onegadget.py84 # Check if rsi is a valid argvSTRING
LOWtests/library/gdb/tests/test_command_onegadget.py90 # Check if rdx is a valid envpSTRING
LOWtests/library/gdb/tests/test_command_onegadget.py107 # Check if rcx is readable, (u64)(xmm0 >> 64) is NULLSTRING
LOWtests/library/gdb/tests/test_command_onegadget.py114 # Check if rcx is readable, (u64)(xmm0 >> 64) is readable, [rsp+0x70] is readableSTRING
LOWtests/library/gdb/tests/test_command_onegadget.py128 # Check if (s32)[rdx+0x4] <= 0STRING
LOWtests/library/gdb/tests/test_glibc.py23 # Check if we can find the libc if nothing special happensCOMMENT
LOWtests/library/gdb/tests/test_glibc.py50 # Check if we can find the libc loaded by LD_PRELOADCOMMENT
LOWtests/library/gdb/tests/test_mprotect.py21 # Check if we can use mprotect with address provided as valueCOMMENT
LOWtests/library/gdb/tests/test_mprotect.py27 # Check if we can use mprotect with address provided as registerCOMMENT
LOWtests/library/dbg/tests/test_heap.py566 # Check if we can get the address of `tcache` by using the first chunk or by brute forceCOMMENT
LOWtests/library/dbg/tests/test_heap.py568 # Check if we can find tcache by brute forceCOMMENT
LOWtests/library/dbg/tests/test_heap.py577 # Check if we can find tcache by using the first chunkCOMMENT
LOWtests/library/dbg/tests/test_heap.py621 # Check if we can get the address of `thread_arena` from debug symbols and the value of `thread_arena` is correctCOMMENT
LOWtests/library/dbg/tests/test_heap.py628 # Check if we can use brute-force to find the `thread_arena` when multi-threaded, and if we can use the `main_arena`COMMENT
LOWtests/library/dbg/tests/test_heap.py465 # Check if we can get the address of `main_arena` from debug symbols and the struct of `main_arena` is correctCOMMENT
LOWtests/library/dbg/tests/test_heap.py477 # Check if we can get the address of `main_arena` by parsing the .data section of the ELF of libcCOMMENT
LOWtests/library/dbg/tests/test_heap.py501 # Check if we can get the address of `mp_` from debug symbols and the struct of `mp_` is correctCOMMENT
LOWtests/library/dbg/tests/test_heap.py513 # Check if we can get the address of `mp_` by parsing the .data section of the ELF of libcCOMMENT
LOWtests/library/dbg/tests/test_heap.py554 # Check if we can get the address of `thread_cache` from debug symbols and the struct of `thread_cache` is correctCOMMENT
LOWtests/library/dbg/tests/test_heap.py667 # Check if we can get the address of `global_max_fast` from debug symbols and the value of `global_max_fast` is corrCOMMENT
LOWtests/library/dbg/tests/test_heap.py674 # Check if we can return the default value even if we can NOT find the address of `global_max_fast`COMMENT
LOWtests/library/dbg/tests/test_context_commands.py585 # Check if cwatch expressions are also stored in the historyCOMMENT
LOWtests/library/dbg/tests/test_mprotect.py22 # Check if we can use mprotect with address provided as valueCOMMENT
LOWtests/library/dbg/tests/test_mprotect.py28 # Check if we can use mprotect with address provided as registerCOMMENT
LOWtests/library/dbg/tests/test_windbg.py336 # Check if the write actually occurredCOMMENT
LOWtests/library/dbg/tests/test_vis_heap_chunks.py312 # Set back to off for any remaining testsCOMMENT
LOWtests/library/dbg/tests/test_cache.py37 # Check if cache is properly cleared on a stop eventCOMMENT
LOWtests/library/dbg/tests/test_cache.py75 # Check if cache is properly cleared on a stop eventCOMMENT
LOWdocs/install.sh144# Check if running inside TTYCOMMENT
LOWdocs/install.sh146 # Check if TYPE is emptyCOMMENT
LOWscripts/_docs/extract_command_docs.py184 # Check if alias.COMMENT
LOWscripts/_docs/build_configuration_docs.py104 # Check if the index is up to date whileCOMMENT
LOWpwndbginit/common.py26 # Check if the package was installed using: `uv tool install --editable .[lldb,gdb]`COMMENT
LOWpwndbg/libc/musl.py95 # Check if the string "/tmp/tmpnam_XXXX" is in the .rodata of the binary.COMMENT
LOWpwndbg/dbg_mod/gdb/__init__.py1258 # Check if the program stopped because of the step we just took. If itCOMMENT
LOWpwndbg/dbg_mod/gdb/__init__.py1269 # Check if the program stopped because of the breakpoint we were given,COMMENT
LOWpwndbg/dbg_mod/gdb/__init__.py1286 # Check if the program stopped because of the breakpoint we were given,COMMENT
LOWpwndbg/gdblib/ptmalloc2_tracking.py363 # Check if the chunk is free.COMMENT
LOWpwndbg/gdblib/vmmap.py386 # Check if this line starts with an address range (e.g., "7f0bd1c25000-7f0bd1c27000")COMMENT
LOWpwndbg/lib/cache.py197 # Check if the value is in the cache; if we have a cache miss,COMMENT
LOWpwndbg/commands/plist.py276 # Check if the field is a pointer type, or an integer type with pointer sizeSTRING
LOWpwndbg/commands/context.py1446 # Check if source code is availableCOMMENT
LOWpwndbg/commands/hexdump.py133 # Check if the limit is enabled (non-zero) and if the request count exceeds itCOMMENT
LOWpwndbg/aglib/heap/ptmalloc.py1292 # Check if the bin points to itself (is empty)COMMENT
LOWpwndbg/aglib/heap/ptmalloc.py1527 # Check if thread_arena is needed and available, but if the binary is not multithreaded, then we don't careCOMMENT
LOWpwndbg/aglib/heap/ptmalloc.py1805 # Check if we can construct the default main_arena struct we expectCOMMENT
LOWpwndbg/aglib/heap/mallocng.py1350 # Check if our address is inside one ofCOMMENT
Over-Commented Block59 hits · 59 pts
SeverityFileLineSnippetContext
LOWmkdocs.yml21 text: RobotoCOMMENT
LOWmkdocs.yml41 - navigation.sectionsCOMMENT
LOWgdbinit.py41 # It is intentionally duplicated here so that `gdbinit.py` does not import theCOMMENT
LOWpyproject.toml21 # Optional? only for 'ipi' commandCOMMENT
LOWnix/bundle/bundle.py201 run(["install_name_tool", "-change", str(src_lib_path), prefix_lib + rel_path, str(binary_path)])COMMENT
LOWtests/library/gdb/tests/test_command_vmmap.py161 # just a difference between GDB versionsCOMMENT
LOWtests/library/dbg/tests/test_triggers.py61 # The behavior of some triggers depend on the value of other parameters!COMMENT
LOWtests/library/qemu_system/tests/test_commands_kernel.py201COMMENT
LOWtests/binaries/host/heap_bins.native.c1#include <stdio.h>COMMENT
LOWtests/binaries/host/pku.x86-64.c1/* This program is meant to SEGFAULT on memcpy()COMMENT
LOWtests/binaries/host/crash_simple.native.c1COMMENT
LOWtests/binaries/host/crash_simple.native.c21 __asm__(".long 0x00000000");COMMENT
LOWdocs/contributing/stacked-pr.md21COMMENT
LOWscripts/common.sh41 # Ideally we would run this with `--python 3.10.12` (which is from ubuntu 22:04, which isCOMMENT
LOWpwndbginit/common.py101COMMENT
LOWpwndbg/auxv.py201 # 4) Keep scanning back until we find something that isn't in theCOMMENT
LOWpwndbg/chain.py161 # Otherwise replace last element with the enhanced information.COMMENT
LOWpwndbg/arguments.py81 name = name.strip().lstrip("_") # _mallocCOMMENT
LOWpwndbg/dbg_mod/gdb/__init__.py721 stop_addr = int(match.group(1), 0)COMMENT
LOWpwndbg/dbg_mod/gdb/__init__.py1321COMMENT
LOWpwndbg/dbg_mod/gdb/__init__.py1821 # We have nothing more to parse if GDB gives us nothing here.COMMENT
LOWpwndbg/dbg_mod/gdb/symbol.py41 #COMMENT
LOWpwndbg/dbg_mod/gdb/symbol.py141COMMENT
LOWpwndbg/dbg_mod/lldb/__init__.py341 # just doesn't?COMMENT
LOWpwndbg/dbg_mod/lldb/__init__.py1201 raise pwndbg.dbg_mod.Error(f"could not read {size:#x} bytes: {e}")COMMENT
LOWpwndbg/dbg_mod/lldb/__init__.py1421 # TODO: Add a File I/O Remote Protocol Extension interface to LLDB.download_remote_file.COMMENT
LOWpwndbg/dbg_mod/lldb/__init__.py1521COMMENT
LOWpwndbg/dbg_mod/lldb/__init__.py1541 # Additionally, this is a Linux+Glibc-only workaround, for now.COMMENT
LOWpwndbg/dbg_mod/lldb/__init__.py1661 # eSymbolTypeStatic: eSymbolTypeData with IsDebug() == true and IsExternal() == falseCOMMENT
LOWpwndbg/dbg_mod/lldb/__init__.py1821 if len(names) == 0 or len(names[0]) == 0:COMMENT
LOWpwndbg/dbg_mod/lldb/repl/proc.py601 if s == lldb.eReturnStatusQuit:COMMENT
LOWpwndbg/dbg_mod/lldb/repl/io.py341 os.set_blocking(sys.stdin.fileno(), False)COMMENT
LOWpwndbg/dbg_mod/lldb/repl/__init__.py521 # from the perspective of the user. This means we have to makeCOMMENT
LOWpwndbg/dbg_mod/lldb/repl/__init__.py541 #COMMENT
LOWpwndbg/dbg_mod/lldb/repl/__init__.py621 return TrueCOMMENT
LOWpwndbg/dbg_mod/lldb/repl/__init__.py721 or bits[0] in pwndbg.commands.start.entry.aliasesCOMMENT
LOWpwndbg/gdblib/ptmalloc2_tracking.py121 # Nothing that we can do here.COMMENT
LOWpwndbg/gdblib/ptmalloc2_tracking.py301 "malloc assert failed"COMMENT
LOWpwndbg/gdblib/vmmap.py281def parse_tid_maps_line(line: str) -> pwndbg.lib.memory.Page:COMMENT
LOWpwndbg/gdblib/vmmap.py361 # Shared_Dirty: 0 kBCOMMENT
LOWpwndbg/lib/functions.py61 value = value & ~flag.valueCOMMENT
LOWpwndbg/lib/pretty_print.py281COMMENT
LOWpwndbg/lib/elftypes.py1#COMMENT
LOWpwndbg/lib/regs.py1021# %g0 == %r0 (always zero) \COMMENT
LOWpwndbg/lib/regs.py1081# r0 => zeroCOMMENT
LOWpwndbg/lib/regs.py1121 Reg("s8"),COMMENT
LOWpwndbg/lib/regs.py1241# --------------|--------------------------------|----------------COMMENT
LOWpwndbg/lib/which.py1# This license covers everything within this project, except for a few piecesCOMMENT
LOWpwndbg/commands/attachp.py241 try:COMMENT
LOWpwndbg/commands/exithandlers.py41 @staticmethodCOMMENT
LOWpwndbg/commands/context.py141 leftover_lines = rows - cmd_linesCOMMENT
LOWpwndbg/aglib/errno.py21COMMENT
LOWpwndbg/aglib/objc.py801 def imp(self) -> int:COMMENT
LOWpwndbg/aglib/nearpc.py461 if lines is None:COMMENT
LOWpwndbg/aglib/disasm/assistant.py701 # Don't allow call instructions - we want the actual "nexti" addressCOMMENT
LOWpwndbg/aglib/disasm/ppc.py21COMMENT
LOWpwndbg/aglib/disasm/disassembly.py581 # The emulator may have been disabled, but while it was live we transitioned into Thumb mode.COMMENT
LOWpwndbg/aglib/heap/ptmalloc.py121 # TODO: There's a bunch of bin-specific logic in here, maybe we shouldCOMMENT
LOWpwndbg/aglib/kernel/nftables.py621# - missing info about ebpf nft hooksCOMMENT
Self-Referential Comments20 hits · 54 pts
SeverityFileLineSnippetContext
MEDIUMsetup.sh200# Create the python virtual environmentCOMMENT
MEDIUMsetup-dev.sh255 # Create a developer marker fileCOMMENT
MEDIUMtests/library/gdb/tests/test_cymbol.py84 # Define the content of the header fileSTRING
MEDIUMtests/library/gdb/tests/test_cymbol.py105 # Create a temporary header fileSTRING
MEDIUMtests/library/gdb/tests/test_command_hijack_fd.py78 # Create a temporary file for testingCOMMENT
MEDIUMtests/library/gdb/tests/test_command_hijack_fd.py282 # Create a temporary file for testingCOMMENT
MEDIUMdocs/install.sh257# Create a temporary directory for downloading the fileCOMMENT
MEDIUMpwndbginit/pwndbglldbhandler.py1# This file is used just to handle lldb-commands, it must be emptyCOMMENT
MEDIUMpwndbg/dintegration/__init__.py492 # Create a decompiler server connection and test itCOMMENT
MEDIUMpwndbg/emu/emulator.py59 # Create a map of "register_name" -> Capstone ID, for faster lookupCOMMENT
MEDIUMpwndbg/dbg_mod/lldb/__init__.py1916 # Create the stop point handle.COMMENT
MEDIUMpwndbg/dbg_mod/lldb/repl/__init__.py866 # Create the target.COMMENT
MEDIUMpwndbg/dbg_mod/lldb/repl/__init__.py1000 # Create a no-target SBTarget that will hold our core file.COMMENT
MEDIUMpwndbg/dbg_mod/lldb/repl/__init__.py1042 # Create the target with the debugger.COMMENT
MEDIUMpwndbg/gdblib/config.py147 # Create a gdb.Parameter for each parameterCOMMENT
MEDIUMpwndbg/commands/got.py120 # The following code is inspired by the "got" command of https://github.com/bata24/gef/blob/dev/gef.py by @bata24, tSTRING
MEDIUMpwndbg/commands/hex2ptr.py10# Define an argument parser for the commandCOMMENT
MEDIUMpwndbg/aglib/dynamic.py360 # Create the CStructs for the entries in each of our relocation sectionsCOMMENT
MEDIUMpwndbg/aglib/disasm/x86.py103# This class handles enhancement for x86 and x86_64. This is because Capstone itselfCOMMENT
MEDIUMpwndbg/aglib/disasm/instruction.py245# This class is used to provide context to an instructions execution, used bothCOMMENT
Modern Structural Boilerplate41 hits · 40 pts
SeverityFileLineSnippetContext
LOWpwndbginit/common.py57def update_deps(src_root: Path) -> None:CODE
LOWpwndbg/exception.py114def set_trace() -> None:CODE
LOWpwndbg/libc/__init__.py20__all__ = [CODE
LOWpwndbg/libc/glibc.py35def set_glibc_version() -> None:CODE
LOWpwndbg/emu/emulator.py589 def update_pc(self, pc=None) -> None:CODE
LOWpwndbg/dbg_mod/__init__.py100 def set_enabled(self, enabled: bool) -> None:CODE
LOWpwndbg/dbg_mod/__init__.py1431 def set_python_diagnostics(self, enabled: bool) -> None:CODE
LOWpwndbg/dbg_mod/__init__.py1437 def set_convenience_var(self, name: str, value: str, type: str | None) -> None:CODE
LOWpwndbg/dbg_mod/gdb/hooks.py50def update_typeinfo() -> None:CODE
LOWpwndbg/dbg_mod/gdb/hooks.py73def update_arch_and_typeinfo() -> None:CODE
LOWpwndbg/dbg_mod/gdb/__init__.py565 def set_enabled(self, enabled: bool) -> None:CODE
LOWpwndbg/dbg_mod/gdb/__init__.py2071 def set_python_diagnostics(self, enabled: bool) -> None:STRING
LOWpwndbg/dbg_mod/gdb/__init__.py2080 def set_convenience_var(self, name: str, value: str, type: str | None) -> None:STRING
LOWpwndbg/dbg_mod/gdb/debug_sym.py26def _set_debug_file_directory(d: str) -> None:CODE
LOWpwndbg/dbg_mod/lldb/hooks.py26def update_arch_and_typeinfo() -> None:CODE
LOWpwndbg/dbg_mod/lldb/hooks.py39def update_ctypes() -> None:CODE
LOWpwndbg/dbg_mod/lldb/__init__.py879 def set_enabled(self, enabled: bool) -> None:CODE
LOWpwndbg/dbg_mod/lldb/__init__.py2540 def set_python_diagnostics(self, enabled: bool) -> None:CODE
LOWpwndbg/dbg_mod/lldb/__init__.py2544 def set_convenience_var(self, name: str, value: str, type: str | None) -> None:CODE
LOWpwndbg/dbg_mod/lldb/repl/io.py92 def _setattrbits(self, attri: int, mask: int, value: int) -> None:CODE
LOWpwndbg/dbg_mod/lldb/repl/io.py112 def set_line_buffering(self, enabled: bool) -> None:CODE
LOWpwndbg/dbg_mod/lldb/repl/io.py128 def set_echo(self, enabled: bool) -> None:CODE
LOWpwndbg/dbg_mod/lldb/repl/__init__.py171 def _set_ignore_resumed(self, count: int) -> None:CODE
LOWpwndbg/gdblib/got.py345def _update_watchpoints() -> None:CODE
LOWpwndbg/gdblib/prompt.py108def set_prompt() -> None:CODE
LOWpwndbg/lib/__init__.py13__all__ = [CODE
LOWpwndbg/commands/ai.py94def set_dummy_mode(d=True) -> None:CODE
LOWpwndbg/aglib/memory.py380def update_min_addr() -> None:CODE
LOWpwndbg/aglib/regs_mod.py294def update_last() -> None:CODE
LOWpwndbg/aglib/argv.py41def update_state() -> None:CODE
LOWpwndbg/aglib/strings.py20def update_length() -> None:CODE
LOWpwndbg/aglib/disasm/assistant.py299 def _set_annotation_string(self, instruction: PwndbgInstruction, emu: Emulator) -> None:CODE
LOWpwndbg/aglib/disasm/riscv.py162 def _set_annotation_string(self, instruction: PwndbgInstruction, emu: Emulator) -> None:CODE
LOWpwndbg/aglib/disasm/arm.py209 def _set_annotation_string(self, instruction: PwndbgInstruction, emu: Emulator) -> None:CODE
LOWpwndbg/aglib/disasm/aarch64.py271 def _set_annotation_string(self, instruction: PwndbgInstruction, emu: Emulator) -> None:CODE
LOWpwndbg/aglib/disasm/mips.py198 def _set_annotation_string(self, instruction: PwndbgInstruction, emu: Emulator) -> None:CODE
LOWpwndbg/aglib/disasm/x86.py141 def _set_annotation_string(self, instruction: PwndbgInstruction, emu: Emulator) -> None:CODE
LOWpwndbg/aglib/heap/mallocng.py129 def set_meta(self, meta: Meta) -> None:CODE
LOWpwndbg/aglib/heap/mallocng.py536 def set_group(self, group: Group) -> None:CODE
LOWpwndbg/aglib/heap/mallocng.py1157 def set_ctx_addr(self) -> None:CODE
LOWpwndbg/aglib/kernel/kconfig_mod.py223 def update_with_file(self, file_path) -> None:CODE
Cross-Language Confusion4 hits · 25 pts
SeverityFileLineSnippetContext
HIGHtests/library/gdb/tests/test_command_onegadget.py21 rbx+0xe0 == NULL || writable: rbx+0xe0CODE
HIGHtests/library/gdb/tests/test_command_onegadget.py28 [rsi] == NULL || rsi == NULL || rsi is a valid argvCODE
HIGHtests/library/gdb/tests/test_command_onegadget.py29 [rdx] == NULL || rdx == NULL || rdx is a valid envpCODE
HIGHpwndbg/chain.py126 hard_end: Value to append when hard_stop is reached: null, value of hard stop, a string.STRING
AI Slop Vocabulary11 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMtests/library/dbg/tests/test_command_procinfo.py146 # harness can produce >2 lines; require at least one read/write pairCOMMENT
LOWscripts/_docs/gen_docs_generic.py54 # Simple case, just create the file and write it.COMMENT
LOWscripts/_docs/build_command_docs.py259 # Simple case, just create the file and write it.COMMENT
MEDIUMpwndbg/dbg_mod/__init__.py651 # This is a fairly lazy solution. We would ideally support a more robust wayCOMMENT
LOWpwndbg/dbg_mod/gdb/__init__.py155 # GDB throws an exception if the name is unknown, we just returnCOMMENT
LOWpwndbg/dbg_mod/lldb/repl/fuzzy.py136 # just create an empty fileCOMMENT
LOWpwndbg/gdblib/vmmap.py113 # Now, if the section is already in pages, just add its permsCOMMENT
LOWpwndbg/lib/got.py68 # If we can't get version info, just use the base nameCOMMENT
LOWpwndbg/commands/context.py400 # If the history is disabled, just return the current outputCOMMENT
LOWpwndbg/aglib/godbg.py413 # we're probably not actually reading a varint str and should just return some bytes to avoid infinite loopiCOMMENT
LOWpwndbg/aglib/heap/mallocng.py1409 # If we are already in some slot, just returnCOMMENT
Dead Code9 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMpwndbg/aglib/dynamic.py118CODE
MEDIUMpwndbg/aglib/dynamic.py119CODE
MEDIUMpwndbg/aglib/dynamic.py122CODE
MEDIUMpwndbg/aglib/dynamic.py123CODE
MEDIUMpwndbg/aglib/dynamic.py127CODE
MEDIUMpwndbg/aglib/dynamic.py128CODE
MEDIUMpwndbg/aglib/dynamic.py130CODE
MEDIUMpwndbg/aglib/dynamic.py136CODE
MEDIUMpwndbg/aglib/disasm/assistant.py569CODE
AI Structural Patterns16 hits · 16 pts
SeverityFileLineSnippetContext
LOWtests/library/gdb/tests/utils.py62CODE
LOWpwndbg/chain.py105CODE
LOWpwndbg/search.py14CODE
LOWpwndbg/hexdump.py74CODE
LOWpwndbg/dbg_mod/gdb/__init__.py531CODE
LOWpwndbg/gdblib/shellcode.py33CODE
LOWpwndbg/lib/regs.py235CODE
LOWpwndbg/commands/vmmap.py218CODE
LOWpwndbg/commands/mallocng.py462CODE
LOWpwndbg/commands/mallocng.py515CODE
LOWpwndbg/commands/mallocng.py749CODE
LOWpwndbg/commands/nearpc.py82CODE
LOWpwndbg/commands/slab.py70CODE
LOWpwndbg/aglib/nearpc.py415CODE
LOWpwndbg/aglib/disasm/disassembly.py227CODE
LOWpwndbg/aglib/disasm/disassembly.py434CODE
Decorative Section Separators5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMpyproject.toml287# ===========================COMMENT
MEDIUMdocs/contributing/stacked-pr.md27# =================================COMMENT
MEDIUMdocs/contributing/stacked-pr.md35# =================================COMMENT
MEDIUMpwndbg/dintegration/__init__.py285 # ================COMMENT
MEDIUMpwndbg/dintegration/__init__.py439 # ================COMMENT
Docstring Block Structure2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHpwndbg/dbg_mod/__init__.py198 Looks up and returns the address of a symbol in current frame by its name. Parameters: - name STRING
HIGHpwndbg/dbg_mod/__init__.py568 Looks up and returns the address of a symbol by its name. Parameters: - name (str): The name oSTRING
Slop Phrases4 hits · 4 pts
SeverityFileLineSnippetContext
LOWpwndbg/exception.py60 "(Please don't forget to search if it hasn't been reported before)\n"CODE
LOWpwndbg/lib/config.py52 # If you want to add another scope here, don't forget to addCOMMENT
LOWpwndbg/lib/config.py52 # If you want to add another scope here, don't forget to addCOMMENT
LOWpwndbg/commands/decompiler_integration.py211 f"{message.notice('installation path gets changed')}, don't forget to {message.notice('reinstall')}!"STRING
TODO Padding3 hits · 4 pts
SeverityFileLineSnippetContext
LOWpwndbg/aglib/kernel/nftables.py258 # TODO: implement: counters # NFTA_CHAIN_COUNTERS chain->basechain->stats (struct nft_stats __percpu *stats;)COMMENT
LOWpwndbg/aglib/kernel/nftables.py399 # TODO: implement nft_get_set_elemCOMMENT
LOWpwndbg/aglib/kernel/nftables.py460 # TODO: implement nft_object_dumpCOMMENT
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtests/library/qemu_user/tests/test_basic.py20def helper(qemu_start_binary, filename: str, arch: str):CODE
LOWpwndbg/aglib/kernel/ktask.py144 def helper(task: int, off: int, pgd: int) -> int | None:STRING
Verbosity Indicators1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpwndbg/aglib/heap/mallocng.py553 # We need to check if we are cyclic or not.COMMENT
Structural Annotation Overuse1 hit · 0 pts
SeverityFileLineSnippetContext
LOWpwndbg/auxv.py187 # NOTE: This function is intended to work only with real binaries, not those emulated under qemu-user.STRING