{"id":29141219,"url":"https://github.com/ponylang/pony-lldb-extensions","last_synced_at":"2025-06-30T18:05:50.086Z","repository":{"id":47718670,"uuid":"101931580","full_name":"ponylang/pony-lldb-extensions","owner":"ponylang","description":"A script with functions for using LLDB with Pony","archived":false,"fork":false,"pushed_at":"2025-04-27T23:00:37.000Z","size":25,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-06-09T18:49:16.468Z","etag":null,"topics":["lldb","lldb-script","pony-language","ponylang"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ponylang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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,"zenodo":null},"funding":{"open_collective":"ponyc"}},"created_at":"2017-08-30T21:42:48.000Z","updated_at":"2025-04-27T23:00:40.000Z","dependencies_parsed_at":"2024-03-16T13:21:53.994Z","dependency_job_id":"d9dafeef-df82-4b8d-b49e-50e717d0d4c2","html_url":"https://github.com/ponylang/pony-lldb-extensions","commit_stats":{"total_commits":14,"total_committers":3,"mean_commits":4.666666666666667,"dds":0.1428571428571429,"last_synced_commit":"b10e8e8416e674fcde0f0e459fa9d6beb7053a59"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ponylang/pony-lldb-extensions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fpony-lldb-extensions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fpony-lldb-extensions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fpony-lldb-extensions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fpony-lldb-extensions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ponylang","download_url":"https://codeload.github.com/ponylang/pony-lldb-extensions/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponylang%2Fpony-lldb-extensions/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260988720,"owners_count":23093549,"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":["lldb","lldb-script","pony-language","ponylang"],"created_at":"2025-06-30T18:05:45.915Z","updated_at":"2025-06-30T18:05:50.069Z","avatar_url":"https://github.com/ponylang.png","language":"Python","funding_links":["https://opencollective.com/ponyc"],"categories":[],"sub_categories":[],"readme":"# Pony LLDB Extensions\n\nThis is a collection of LLDB extensions for working with the [Pony programming language](https://ponylang.org).\n\nFor more information about using LLDB with Pony programs, see [The Pony LLDB Cheatsheet](https://www.ponylang.org/reference/pony-lldb-cheatsheet/).\n\n## Installing\n\nInstallation is a matter of putting the `pony_lldb.py` file somewhere.\n\n## Usage\n\nThese scripts work with LLDB. You can load them into LLDB by running the following command at the LLDB prompt:\n\n```text\ncommand script import PONY_LLDB_PATH/pony_lldb.py\n```\n\nwhere `PONY_LLDB_PATH` is the path to the directory where you installed the Python file.\n\nCurrently the script installs a few summary functions that allow you to print the values of variables of the following types:\n\n```pony\nString\nArray[U8] ref\nArray[U8] val\nArray[U8] box\nArray[U32] ref\nArray[U32] val\nArray[U32] box\nArray[I32] ref\nArray[I32] val\nArray[I32] box\n```\n\nTo print a value, type `p VARIABLE_NAME` at the LLDB command prompt.\n\n### String\n\n`String` variables are printed as quoted strings. If `s2` is a `String` with the value `\"bc\"` then you can print it like this:\n\n```text\n(lldb) p s2\n(String *) $7 = 0x0000000100023940 \"bc\"\n```\n\n### Array[U8]\n\n`Array[U8]` variables are printed out using a pretty-printer that looks similar to the output of the `hexdump` command. If `a3` is an `Array[U8]` with the values `0` through `66` the you can print it like this:\n\n```text\n(lldb) p a3\n(Array_U8_val *) $3 = 0x0000000108fd5d20\n00000000: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f    |................|\n00000010: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f    |................|\n00000020: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f    | !\"#$%\u0026'()*+,-./|\n00000030: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f    |0123456789:;\u003c=\u003e?|\n00000040: 40 41 42                                           |@AB             |\n```\n\nThe first column is the starting index of the row. The second column is the hex values of the array in the given range. The third column is an ASCII representation of the values in the given range, with `.` displayed for unprintable characters.\n\n### Array[U32]\n\n`Array[U32]` variables are printed as the index and the value of each element, with the value printed in hexidecimal form. If `a1` is an `Array[U32]` with the values `0`, `1`, and `2` then you can print it like this:\n\n```text\n(lldb) p a1\n(Array_U32_val *) $8 = 0x0000000108fd5ca0 [0]=00000001 [1]=00000002 [2]=00000003\n```\n\n### Array[I32]\n\n`Array[I32]` variables are printed as the index and the value of each element, with the value printed in hexidecimal form. If `a4` is an `Array[I32]` with the values `-20` through `19` then you can print it like this:\n\n```text\n(lldb) p a4\n(Array_I32_val *) $11 = 0x0000000108fd5d60 [0]=-20 [1]=-19 [2]=-18 [3]=-17 [4]=-16 [5]=-15 [6]=-14 [7]=-13 [8]=-12 [9]=-11 [10]=-10 [11]=-9 [12]=-8 [13]=-7 [14]=-6 [15]=-5 [16]=-4 [17]=-3 [18]=-2 [19]=-1 [20]=0 [21]=1 [22]=2 [23]=3 [24]=4 [25]=5 [26]=6 [27]=7 [28]=8 [29]=9 [30]=10 [31]=11 [32]=12 [33]=13 [34]=14 [35]=15 [36]=16 [37]=17 [38]=18 [39]=19\n```\n\n## Contributing\n\nFeel free to open PRs against this project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponylang%2Fpony-lldb-extensions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fponylang%2Fpony-lldb-extensions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponylang%2Fpony-lldb-extensions/lists"}