Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问许可证需确认审计通过

axiom-lldb-ref公理 lldb 参考

Agent Skill

axiom-lldb-ref 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

2,619

周安装

107

GitHub Stars

873

下载量

839
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:axiom-lldb-ref(公理 lldb 参考)
来源仓库:https://github.com/charleswiltgen/axiom
仓库路径:skills/axiom-lldb-ref
安装命令:
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-lldb-ref
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-lldb-ref

简介

用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词、任务场景或来源线索快速定位候选结果。
  • 可结合来源仓库、安装命令和原始 README 继续核验具体用法。
  • 安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。
  • axiom-lldb-ref 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

LLDB Command Reference

Complete command reference for LLDB in Xcode. Organized by task so you can find the exact command you need.

For debugging workflows and decision trees, see /skill axiom-lldb.


Part 1: Variable Inspection

v / frame variable

Reads memory directly. No compilation. Most reliable for Swift values.

(lldb) v                              # All variables in current frame
(lldb) v self                         # Self in current context
(lldb) v self.propertyName            # Specific property
(lldb) v localVariable                # Local variable
(lldb) v self.array[0]               # Collection element
(lldb) v self._showDetails            # SwiftUI @State backing store (underscore prefix)

Flags:

FlagEffect
-d runRun dynamic type resolution (slower but more accurate)
-TShow types
-RShow raw (unformatted) output
-D NLimit depth of nested types to N levels
-P NLimit pointer depth to N levels
-FFlat output (no hierarchy)

Limitations: Cannot evaluate expressions, computed properties, or function calls. Use p for those.

p / expression (with format)

Compiles and executes an expression. Shows formatted result.

(lldb) p self.computedProperty
(lldb) p items.count
(lldb) p someFunction()
(lldb) p String(describing: someValue)
(lldb) p (1...10).map { $0 * 2 }

Result stored in numbered variables:

(lldb) p someValue
$R0 = 42
(lldb) p $R0 + 10
$R1 = 52

po / expression --object-description

Calls debugDescription (or description) on the result.

(lldb) po myObject
(lldb) po error
(lldb) po notification.userInfo
(lldb) po NSHomeDirectory()

When po adds value: Classes with CustomDebugStringConvertible, NSError, NSNotification, collections of objects.

When po fails: Swift structs without CustomDebugStringConvertible, protocol-typed values (use v instead — it performs iterative dynamic type resolution that po doesn't).

expression (full form)

Full expression evaluation with all options.

(lldb) expression self.view.backgroundColor = UIColor.red
(lldb) expression self.debugFlag = true
(lldb) expression myArray.append("test")
(lldb) expression CATransaction.flush()           # Force UI update
(lldb) expression Self._printChanges()             # SwiftUI debug

Flags:

FlagEffect
-l objcEvaluate as Objective-C
-l swiftEvaluate as Swift (default)
-OObject description (same as po)
-i falseStop on breakpoints hit during evaluation (default: ignore)
--Separator between flags and expression

ObjC expressions for Swift debugging:

(lldb) expr -l objc -- (void)[[[UIApplication sharedApplication] keyWindow] recursiveDescription]
(lldb) expr -l objc -- (void)[CATransaction flush]
(lldb) expr -l objc -- (int)[[UIApplication sharedApplication] _isForeground]

register read

Low-level register inspection:

(lldb) register read
(lldb) register read x0 x1                # Specific registers (ARM64)
(lldb) register read --all                # All register sets

Part 2: Breakpoints

Setting Breakpoints

(lldb) breakpoint set -f File.swift -l 42                # File + line
(lldb) b File.swift:42                                    # Short form
(lldb) breakpoint set -n methodName                       # By function name
(lldb) breakpoint set -n "MyClass.myMethod"               # Qualified name
(lldb) breakpoint set -S layoutSubviews                   # ObjC selector
(lldb) breakpoint set -r "viewDid.*"                      # Regex on name
(lldb) breakpoint set -a 0x100abc123                      # Memory address

Conditional Breakpoints

(lldb) breakpoint set -f File.swift -l 42 -c "value == nil"
(lldb) breakpoint set -f File.swift -l 42 -c "index > 100"
(lldb) breakpoint set -f File.swift -l 42 -c 'name == "test"'

Ignore Count

(lldb) breakpoint set -f File.swift -l 42 -i 50          # Skip first 50 hits

One-Shot Breakpoints

(lldb) breakpoint set -f File.swift -l 42 -o             # Delete after first hit

Breakpoint Commands (Logpoints)

Add commands that execute when breakpoint hits:

(lldb) breakpoint command add 1
> v self.state
> p self.items.count
> continue
> DONE

Or in one line:

(lldb) breakpoint command add 1 -o "v self.state"

Exception Breakpoints

(lldb) breakpoint set -E swift                            # All Swift errors
(lldb) breakpoint set -E objc                             # All ObjC exceptions
# Filtering by exception name requires Xcode's GUI (Edit Breakpoint → Exception field)

Symbolic Breakpoints

(lldb) breakpoint set -n UIViewAlertForUnsatisfiableConstraints    # Auto Layout
(lldb) breakpoint set -n "-[UIApplication _run]"                    # App launch
(lldb) breakpoint set -n swift_willThrow                            # Swift throw

Managing Breakpoints

(lldb) breakpoint list                     # List all
(lldb) breakpoint list -b                  # Brief format
(lldb) breakpoint enable 3                 # Enable breakpoint 3
(lldb) breakpoint disable 3                # Disable breakpoint 3
(lldb) breakpoint delete 3                 # Delete breakpoint 3
(lldb) breakpoint delete                   # Delete ALL (asks confirmation)
(lldb) breakpoint modify 3 -c "x > 10"    # Add condition to existing

Watchpoints

Break when a variable's memory changes:

(lldb) watchpoint set variable self.count                  # Watch for write
(lldb) watchpoint set variable -w read_write myGlobal      # Watch for read or write
(lldb) watchpoint set expression -- &myVariable            # Watch memory address
(lldb) watchpoint list                                     # List all
(lldb) watchpoint delete 1                                 # Delete watchpoint 1
(lldb) watchpoint modify 1 -c "self.count > 10"            # Add condition

Note: Hardware watchpoints are limited (~4 per process). Use sparingly.


Part 3: Thread & Backtrace

Backtraces

(lldb) bt                              # Current thread backtrace
(lldb) bt 10                           # Limit to 10 frames
(lldb) bt all                          # All threads
(lldb) thread backtrace all            # Same as bt all

Thread Navigation

(lldb) thread list                     # List all threads with state
(lldb) thread info                     # Current thread details + stop reason
(lldb) thread select 3                 # Switch to thread 3

Frame Navigation

(lldb) frame info                      # Current frame details
(lldb) frame select 5                  # Jump to frame 5
(lldb) up                              # Go up one frame (toward caller)
(lldb) down                            # Shortcut: go down one frame

Thread Return (Skip Code)

Force an early return from the current function:

(lldb) thread return                   # Return void
(lldb) thread return 42                # Return specific value

Use with caution — skips cleanup code, can leave state inconsistent.


Part 4: Expression Evaluation

Swift Expressions

(lldb) expr let x = 42; print(x)
(lldb) expr self.view.backgroundColor = UIColor.red
(lldb) expr UIApplication.shared.windows.first?.rootViewController
(lldb) expr UserDefaults.standard.set(true, forKey: "debug")

Objective-C Expressions

Switch to ObjC when Swift expression parser fails:

(lldb) expr -l objc -- (void)[CATransaction flush]
(lldb) expr -l objc -- (id)[[UIApplication sharedApplication] keyWindow]
(lldb) expr -l objc -- (void)[[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:nil]

UI Debugging Expressions

(lldb) expr -l objc -- (void)[[[UIApplication sharedApplication] keyWindow] recursiveDescription]
(lldb) po UIApplication.shared.windows.first?.rootViewController?.view.recursiveDescription()

SwiftUI Debugging

(lldb) expr Self._printChanges()                # Print what triggered body re-eval (inside view body only)

Runtime Type Information

(lldb) expr type(of: someValue)
(lldb) expr String(describing: type(of: someValue))

Part 5: Process Control

Execution Control

(lldb) continue                        # Resume execution (c)
(lldb) c                               # Short form
(lldb) process interrupt               # Pause running process
(lldb) thread step-over                # Step over (n / next)
(lldb) n                               # Short form
(lldb) thread step-in                  # Step into (s / step)
(lldb) s                               # Short form
(lldb) thread step-out                 # Step out (finish)
(lldb) finish                          # Short form
(lldb) thread step-inst                # Step one instruction (assembly-level)
(lldb) ni                              # Step over one instruction

Process Management

(lldb) process launch                  # Launch/restart
(lldb) process attach --pid 1234       # Attach to running process
(lldb) process attach --name MyApp     # Attach by name
(lldb) process detach                  # Detach without killing
(lldb) kill                            # Kill debugged process

Part 6: Memory & Image

Memory Reading

(lldb) memory read 0x100abc123                    # Read memory at address
(lldb) memory read -c 64 0x100abc123              # Read 64 bytes
(lldb) memory read -f x 0x100abc123               # Format as hex
(lldb) memory read -f s 0x100abc123               # Format as string

Memory Search

(lldb) memory find -s "searchString" -- 0x100000000 0x200000000

Image/Module Inspection

(lldb) image lookup -a 0x100abc123                # Lookup symbol at address
(lldb) image lookup -n myFunction                 # Find function by name
(lldb) image lookup -rn "MyClass.*"               # Regex search
(lldb) image list                                 # List all loaded images/frameworks
(lldb) image list -b                              # Brief format

Common use: Finding which framework a crash address belongs to:

(lldb) image lookup -a 0x1a2b3c4d5

Part 7:.lldbinit & Customization

File Location

LLDB reads ~/.lldbinit at startup. Per-project init files are also supported when configured in Xcode's scheme settings.

Useful Aliases

Add to ~/.lldbinit:

# Quick reload — flush UI changes made via expression
command alias flush expr -l objc -- (void)[CATransaction flush]

# Print view hierarchy
command alias views expr -l objc -- (void)[[[UIApplication sharedApplication] keyWindow] recursiveDescription]

# Print auto layout constraints
command alias constraints po [[UIWindow keyWindow] _autolayoutTrace]

Custom Type Summaries

# Show CLLocationCoordinate2D as "lat, lon"
type summary add CLLocationCoordinate2D --summary-string "${var.latitude}, ${var.longitude}"

Settings

(lldb) settings show target.language              # Current language
(lldb) settings set target.language swift          # Force Swift mode
(lldb) settings set target.max-children-count 100  # Show more collection items

Per-Project.lldbinit

In Xcode: Edit Scheme → Run → Options → "LLDB Init File" field.

Put project-specific aliases and breakpoints in a .lldbinit file in your project root.


Part 8: Troubleshooting LLDB Itself

"expression failed to parse"

Cause: Swift expression parser can't resolve types from the current module.

Fixes:

  1. Use v instead (no compilation needed)
  2. Simplify the expression
  3. Try expr -l objc --... for ObjC-bridge types
  4. Clean derived data and rebuild

"variable not available"

Cause: Compiler optimized the variable out.

Fixes:

  1. Switch to Debug build configuration
  2. Set -Onone for the specific file (Build Settings → per-file compiler flags)
  3. Use register read to check if the value is in a register

"wrong language mode"

Cause: LLDB defaults to ObjC in some contexts (especially in frameworks).

Fix:

(lldb) settings set target.language swift
(lldb) expr -l swift -- mySwiftExpression

"expression caused a crash"

Cause: The expression you evaluated had a side effect that crashed.

Fix:

  1. Don't evaluate expressions that modify state unless you intend to
  2. Use v for read-only inspection
  3. If the crash corrupted state, restart the debug session

LLDB Hangs or Is Slow

Cause: Usually compiling a complex expression or resolving types in a large project.

Fix:

  1. Use v instead of p/po (no compilation)
  2. Reduce expression complexity
  3. If LLDB hangs during po, Ctrl+C to cancel and use v instead

Breakpoint Not Hit

Causes and fixes:

CauseFix
Wrong file/line (code moved)Re-set breakpoint on current code
Breakpoint disabledbreakpoint enable N
Code not executedVerify the code path is reached
Optimized out (Release)Switch to Debug configuration
In a framework/SPM packageSet symbolic breakpoint by function name

Resources

WWDC: 2019-429, 2018-412, 2022-110370, 2015-402

Docs: /xcode/stepping-through-code-and-inspecting-variables-to-isolate-bugs, /xcode/setting-breakpoints-to-pause-your-running-app

Skills: axiom-lldb, axiom-xcode-debugging

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.72%
按下载量换算291

Claude

29.78%
按下载量换算250

Cursor

17.17%
按下载量换算144

Gemini CLI

9.76%
按下载量换算82

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills