{"id":16322285,"url":"https://github.com/p-x9/illdb","last_synced_at":"2025-08-15T18:33:22.630Z","repository":{"id":193730096,"uuid":"688782806","full_name":"p-x9/iLLDB","owner":"p-x9","description":"🛠️ LLDB Extension for iOS and macOS App Development","archived":false,"fork":false,"pushed_at":"2024-06-17T02:47:45.000Z","size":2467,"stargazers_count":119,"open_issues_count":3,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-11-24T12:04:08.821Z","etag":null,"topics":["debug","debugging","ios","lldb"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/p-x9.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-08T05:15:17.000Z","updated_at":"2024-11-16T14:53:26.000Z","dependencies_parsed_at":"2024-04-08T05:27:40.652Z","dependency_job_id":"6c156154-9b9b-42c2-846c-2734abc41ccd","html_url":"https://github.com/p-x9/iLLDB","commit_stats":null,"previous_names":["p-x9/illdb"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p-x9%2FiLLDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p-x9%2FiLLDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p-x9%2FiLLDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/p-x9%2FiLLDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/p-x9","download_url":"https://codeload.github.com/p-x9/iLLDB/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229943237,"owners_count":18148666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["debug","debugging","ios","lldb"],"created_at":"2024-10-10T22:50:29.369Z","updated_at":"2024-12-16T10:25:04.148Z","avatar_url":"https://github.com/p-x9.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iLLDB\n\nLLDB Extension for iOS App Development\n\n\u003c!-- # Badges --\u003e\n\n[![Github issues](https://img.shields.io/github/issues/p-x9/iLLDB)](https://github.com/p-x9/iLLDB/issues)\n[![Github forks](https://img.shields.io/github/forks/p-x9/iLLDB)](https://github.com/p-x9/iLLDB/network/members)\n[![Github stars](https://img.shields.io/github/stars/p-x9/iLLDB)](https://github.com/p-x9/iLLDB/stargazers)\n[![Github top language](https://img.shields.io/github/languages/top/p-x9/iLLDB)](https://github.com/p-x9/iLLDB/)\n\n## Feature\n\n- [Show view hierarchy](#ui-hierarchy)\n- [Easy operation of UserDefaults](#userdefaults)\n- [Show device information](#device-info)\n- [Show App information](#app-info)\n- [Show file hierarchy](#file-hierarchy)\n- [Open directory in Finder (Simulator Only)](#open-directory-in-finder-app-simulator-only)\n- [Show file contents](#show-file-contents)\n- [Easy operation of HTTP Cookie](#http-cookie)\n  - [Show Cookie Values](#read-cookie-value)\n  - [Delete Cookie](#delete-cookie)\n- [Objective-C Runtime](#objective-c-runtime)\n  - [Show inheritance hierarchy of object's class](#show-inheritance-hierarchy-of-objects-class)\n  - [Show list of methods of object's class](#show-a-list-of-methods-of-objects-class)\n  - [Show list of properties of object's class](#show-a-list-of-proerties-of-objects-class)\n  - [Show list of ivars of object's class](#show-a-list-of-ivars-of-objects-class)\n\n## Set up\n\n1. clone this repository\n2. Add the following line to ~/.lldbinit\n\n    ```sh\n    command script import {PATH TO iLLDB}/src/iLLDB.py\n    ```\n\n## Usage\n\n### UI hierarchy\n\n```sh\n(lldb) ui tree -h\nusage:  tree\n       [-h]\n       [-d]\n       [-s]\n       [--depth DEPTH]\n       [--with-address]\n       [--window WINDOW]\n       [--view VIEW]\n       [--vc VC]\n       [--layer LAYER]\n\noptional arguments:\n  -h, --help\n    show this help message and exit\n  -d, --detail\n    Enable detailed mode (default: False)\n  -s, --simple\n    Enable simpled mode (default: False)\n  --depth DEPTH\n    Maximum depth to be displayed (default: None)\n  --with-address\n    Print address of ui (default: False)\n  --window WINDOW\n    Specify the target window (default: None)\n  --view VIEW\n    Specify the target view (property or address) (default: None)\n  --vc VC\n    Specify the target viewController (property or address) (default: None)\n  --layer LAYER\n    Specify the target CALayer (property or address) (default: None)\n```\n\n#### Example\n\n- Show keyWindow hierarchy\n\n    ```sh\n    ui tree\n    ```\n\n    ![KeyWindow](./resources/keyWindow.png)\n\n    ```sh\n    ui tree -s # simple\n    ```\n\n    ![KeyWindow](./resources/keyWindow-simple.png)\n\n    ```sh\n    ui tree -d # detail\n    ```\n\n    ![KeyWindow](./resources/keyWindow-detail.png)\n\n- Show the hierarchy of a specific view\n\n    ```sh\n    ui tree -view {property name of view}\n    ```\n\n- Show the hierarchy of a specific viewController\n\n    ```sh\n    ui tree -vc {property name of viewController}\n    ```\n\n- Show the hierarchy of a specific window\n\n    ```sh\n    ui tree -window {property name of window}\n    ```\n\n- Show the hierarchy of a specific layer\n\n    ```sh\n    ui tree -layer {property name of layer}\n    ```\n\n### UserDefaults\n\n```sh\nusage:\n       [-h]\n       {read,write,delete,read-all,delete-all}\n       ...\nUserDefault debugging\noptional arguments:\n  -h, --help\n    show this help message and exit\nSubcommands:\n  {read,write,delete,read-all,delete-all}\n    read\n    read UserDefault value\n    write\n    write UserDefault value\n    delete\n    delete UserDefault value\n    read-all\n    read all UserDefault value\n    delete-all\n    delete all UserDefault value\n```\n\n#### read\n\n```sh\nud read \"key\"\n```\n\n#### write\n\n```sh\nud write \"key\" \"value\"\n```\n\n#### delete\n\n```sh\nud delete \"key\"\n```\n\n#### read all\n\n```sh\nud read-all\n```\n\n#### delete all\n\n```sh\nud delete-all\n```\n\n### Device Info\n\nDisplays device information.\n\n```sh\ndevice info\n```\n\n![device info](./resources/device-info.png)\n\n### App Info\n\nDisplays App information.\n\n```sh\napp info\n```\n\n![app info](./resources/app-info.png)\n\n### File hierarchy\n\n```sh\n(lldb) file tree -h\nusage:  tree\n       [-h]\n       [-p PATH]\n       [-b]\n       [-l]\n       [--documents]\n       [--tmp]\n       [--depth DEPTH]\noptional arguments:\n  -h, --help\n    show this help message and exit\n  -p PATH, --path PATH\n    path (default: None)\n  -b, --bundle\n    bundle directory (default: False)\n  -l, --library\n    library directory (default: False)\n  --documents\n    documents directory (default: False)\n  --tmp\n    tmp directory (default: False)\n  --depth DEPTH\n    Maximum depth to be displayed (default: None)\n```\n\n#### Example\n\n- Display the contents of the Bundle directory\n\n    ```sh\n    file tree --bundle\n    ```\n\n- Display the contents of the Library directory\n\n    ```sh\n    file tree --library\n    ```\n\n- Display the contents of the Documents directory\n\n    ```sh\n    file tree --documents\n    ```\n\n- Display the contents of the tmp directory\n\n    ```sh\n    file tree --tmp\n    ```\n\n- Display the contents of a specific directory\n\n    ```sh\n    file tree --path {url}\n    ```\n\n![file tree](./resources/file-tree.png)\n\n### Open directory in Finder App (Simulator Only)\n\n```sh\n(lldb) file open -h\nusage:  open\n       [-h]\n       [-p PATH]\n       [-b]\n       [-l]\n       [--documents]\n       [--tmp]\noptional arguments:\n  -h, --help\n    show this help message and exit\n  -p PATH, --path PATH\n    path (default: None)\n  -b, --bundle\n    bundle directory (default: False)\n  -l, --library\n    library directory (default: False)\n  --documents\n    documents directory (default: False)\n  --tmp\n    tmp directory (default: False)\n```\n\n### Show file Contents\n\n```sh\n(lldb) file cat -h\nusage:  cat\n       [-h]\n       [--mode MODE]\n       path\npositional arguments:\n  path\n    path\noptional arguments:\n  -h, --help\n    show this help message and exit\n  --mode MODE\n    mode [text, plist] (default: text)\n```\n\n#### Example\n\n- text file\n\n  ```sh\n  file cat \"path\"\n  ```\n\n- plist file\n\n  ```sh\n  file cat \"path\" --mode plist\n  ```\n\n### HTTP Cookie\n\n#### Read Cookie Value\n\nDisplays the value of the HTTP cookie information.\n\n```sh\n(lldb) cookie read -h\nusage:  read\n       [-h]\n       [--group-id GROUP_ID]\n       [--domain DOMAIN]\n       [--name NAME]\n       [--path PATH]\noptional arguments:\n  -h, --help\n    show this help message and exit\n  --group-id GROUP_ID\n    AppGroup identifier for cookie storage (default: None)\n  --domain DOMAIN\n    Domain for Cookie (default: None)\n  --name NAME\n    Name for Cookie (default: None)\n  --path PATH\n    Path for Cookie (default: None)\n```\n\n##### Example\n\n- Show all cookies\n\n  ```sh\n  cookie read\n  ```\n\n- Show only cookies for specific domains\n\n  ```sh\n  cookie read --domain example.com\n  ```\n\n- Show only cookies with a specific name from a specific domain\n\n  ```sh\n  cookie read --domain example.com --name KEYNAME\n  ```\n\n#### Delete Cookie\n\nDelete cookie value.\n\nAfter executing the command, you will be asked to confirm before deleting.\nIf you type \"Yes\", the deletion will be executed as is.\n\n```sh\n(lldb) cookie delete -h\nusage:  delete\n       [-h]\n       [--group-id GROUP_ID]\n       [--domain DOMAIN]\n       [--name NAME]\n       [--path PATH]\noptional arguments:\n  -h, --help\n    show this help message and exit\n  --group-id GROUP_ID\n    AppGroup identifier for cookie storage (default: None)\n  --domain DOMAIN\n    Domain for Cookie (default: None)\n  --name NAME\n    Name for Cookie (default: None)\n  --path PATH\n    Path for Cookie (default: None)\n```\n\n##### Example\n\n- Delete all cookies\n\n  ```sh\n  cookie delete\n  ```\n\n- Delete only cookies for specific domains\n\n  ```sh\n  cookie delete --domain example.com\n  ```\n\n- Delete only cookies with a specific name from a specific domain\n\n  ```sh\n  cookie delete --domain example.com --name KEYNAME\n  ```\n\n### Objective-C Runtime\n\nCommands for debugging with Objective-C Runtime\n\n#### Show inheritance hierarchy of object's class\n\n```sh\n(lldb) objc inherits -h\nusage:  inherits\n       [-h]\n       object\npositional arguments:\n  object\n    object\noptional arguments:\n  -h, --help\n    show this help message and exit\n```\n\n##### Example\n\n```sh\n(lldb)objc inherits UIWindow()\n# NSObject -\u003e UIResponder -\u003e UIView -\u003e UIWindow\n```\n\n#### Show a list of methods of object's class\n\n```sh\n(lldb) objc methods -h\nusage:  methods\n       [-h]\n       [--class CLASS_NAME]\n       [-c]\n       [-i]\n       object\npositional arguments:\n  object\n    object\noptional arguments:\n  -h, --help\n    show this help message and exit\n  --class CLASS_NAME\n    Specify a target class in the inheritance hierarchy (default: None)\n  -c, --class-only\n    Show only class methods (default: False)\n  -i, --instance-only\n    Show only instance methods (default: False)\n```\n\n#### Show a list of proerties of object's class\n\n```sh\n(lldb) objc properties -h\nusage:  properties\n       [-h]\n       [--class CLASS_NAME]\n       object\npositional arguments:\n  object\n    object\noptional arguments:\n  -h, --help\n    show this help message and exit\n  --class CLASS_NAME\n    Specify a target class in the inheritance hierarchy (default: None)\n```\n\n#### Show a list of ivars of object's class\n\n```sh\n(lldb) objc ivars -h\nusage:  ivars\n       [-h]\n       [--class CLASS_NAME]\n       object\npositional arguments:\n  object\n    object\noptional arguments:\n  -h, --help\n    show this help message and exit\n  --class CLASS_NAME\n    Specify a target class in the inheritance hierarchy (default: None)\n```\n\n## License\n\niLLDB is released under the MIT License. See [LICENSE](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp-x9%2Filldb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fp-x9%2Filldb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fp-x9%2Filldb/lists"}