{"id":19483692,"url":"https://github.com/lizhangqu/flutter_lldb","last_synced_at":"2025-09-26T14:21:05.186Z","repository":{"id":63174058,"uuid":"225019735","full_name":"lizhangqu/flutter_lldb","owner":"lizhangqu","description":"flutter engine remote debug with lldb","archived":false,"fork":false,"pushed_at":"2019-12-07T06:55:36.000Z","size":20,"stargazers_count":22,"open_issues_count":1,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-25T16:46:17.150Z","etag":null,"topics":["debug","engine","flutter","lldb","vscode"],"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/lizhangqu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-11-30T13:53:01.000Z","updated_at":"2025-02-27T07:39:36.000Z","dependencies_parsed_at":"2022-11-14T10:30:24.935Z","dependency_job_id":null,"html_url":"https://github.com/lizhangqu/flutter_lldb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lizhangqu/flutter_lldb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhangqu%2Fflutter_lldb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhangqu%2Fflutter_lldb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhangqu%2Fflutter_lldb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhangqu%2Fflutter_lldb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lizhangqu","download_url":"https://codeload.github.com/lizhangqu/flutter_lldb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lizhangqu%2Fflutter_lldb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277089376,"owners_count":25758911,"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","status":"online","status_checked_at":"2025-09-26T02:00:09.010Z","response_time":78,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","engine","flutter","lldb","vscode"],"created_at":"2024-11-10T20:16:22.835Z","updated_at":"2025-09-26T14:21:05.149Z","avatar_url":"https://github.com/lizhangqu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# flutter_lldb\nflutter engine remote debug with lldb\n\nSee [Flutter Engine C++ 源码调试初探](https://fucknmb.com/2019/12/06/Flutter-Engine-C-%E6%BA%90%E7%A0%81%E8%B0%83%E8%AF%95%E5%88%9D%E6%8E%A2/)\n\n# how to use\n\n1、 clone this repository\n\n```\ngit clone https://github.com/lizhangqu/flutter_lldb.git\n```\n\n2、 build your local engine \n\n - [Flutter Engine 编译指北](https://fucknmb.com/2019/02/26/Flutter-Engine-%E7%BC%96%E8%AF%91%E6%8C%87%E5%8C%97/)\n - [Compiling-the-engine](https://github.com/flutter/flutter/wiki/Compiling-the-engine)\n\n3、 build your debuggable apk with the built local engine\n\n```\n/path/to/flutter build apk \\\n--debug \\\n--target-platform=android-arm \\\n--local-engine-src-path=/Users/lizhangqu/software/flutter_dev/engine/src \\\n--local-engine=android_debug_unopt\n```\n\n4、 install the built apk\n\n```\nadb install /path/to/sample.apk\n```\n\n5、 launch the built apk\n\nYou can use `monkey` command to run apk directly.\n\n```\nadb shell monkey -p com.example.package_name -v 1\n```\n\n6、run lldb-server in remote device with flutter_lldb\n\nYou must set environment named `ANDROID_HOME` or provide the android sdk home with --android-sdk\n\n`[]` in the command is optional and the value is default. android-sdk default use the environment named `ANDROID_HOME`\n\nThe package name parameter is required.\n\nNow run `flutter_lldb`\n\n```\n./flutter_lldb \\\n[--android-sdk /path/to/androidSdk] \\\n[--abi armeabi] \\\n[--local-engine-src-path=/path/to/engine/src] \\\n[--local-engine=android_debug_unopt] \\\n[--build-dir=/path/to/your/engine/build] \\\n[--symbol-dir=/path/to/your/engine/symbol] \\\ncom.example.package_name\n```\n\nThere is a sample command\n\n```\n./flutter_lldb \\\n--local-engine-src-path=/Users/lizhangqu/software/flutter_dev/engine/src \\\n--local-engine=android_debug_unopt \\\ncom.vdian.flutter.wdb_buyer.example\n```\n\nNow you can see the output. There is a visual studio code config. Copy it to launch.json.\n\n```\n{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"remote_lldb\",\n            \"type\": \"lldb\",\n            \"request\": \"attach\",\n            \"pid\": \"17331\",\n            \"initCommands\": [\n                \"platform select remote-android\",\n                \"platform connect unix-abstract-connect:///data/data/com.vdian.flutter.wdb_buyer.example/debug.socket\"\n            ],\n            \"postRunCommands\": [\n                \"add-dsym /Users/lizhangqu/software/flutter_dev/engine/src/out/android_debug_unopt/libflutter.so\",\n                \"settings set target.source-map /Users/lizhangqu/software/flutter_dev/engine/src /Users/lizhangqu/software/flutter_dev/engine/src\"\n            ],\n        }\n    ]\n}\n    \n```\n\nor \n\n```\n{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"remote_lldb\",\n            \"type\": \"lldb\",\n            \"request\": \"attach\",\n            \"pid\": \"get pid by execute `adb shell pidof com.vdian.flutter.wdb_buyer.example` yourself\",\n            \"initCommands\": [\n                \"platform select remote-android\",\n                \"platform connect unix-abstract-connect:///data/data/com.vdian.flutter.wdb_buyer.example/debug.socket\"\n            ],\n            \"preRunCommands\": [\n                \"settings append target.exec-search-paths /Users/lizhangqu/software/flutter_dev/engine/src/out/android_debug_unopt\"\n            ],\n            \"postRunCommands\": [\n                \"settings set target.source-map /Users/lizhangqu/software/flutter_dev/engine/src /Users/lizhangqu/software/flutter_dev/engine/src\"\n            ],\n        }\n    ]\n}\n```\n\nThe first config only can be used for that the libfluttser.so has already been loaded into memory.\n\n\n7、use visual studio code to remote debug\n\nInstall Extensions in Visual Studio Code\n - [C/C++](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools)\n - [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb)\n\n\nCopy the file `/path/to/engine/src/out/compile_commands.json` to `/path/to/engine/src/flutter/compile_commands.json`\n\nUse Visual Studio Code to open project `/path/to/engine/src/flutter`\n\nConfig the .vscode/launch.json by flutter_lldb generated\n\n```\n{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"remote_lldb\",\n            \"type\": \"lldb\",\n            \"request\": \"attach\",\n            \"pid\": \"17331\",\n            \"initCommands\": [\n                \"platform select remote-android\",\n                \"platform connect unix-abstract-connect:///data/data/com.vdian.flutter.wdb_buyer.example/debug.socket\"\n            ],\n            \"postRunCommands\": [\n                \"add-dsym /Users/lizhangqu/software/flutter_dev/engine/src/out/android_debug_unopt/libflutter.so\",\n                \"settings set target.source-map /Users/lizhangqu/software/flutter_dev/engine/src /Users/lizhangqu/software/flutter_dev/engine/src\"\n            ],\n        }\n    ]\n} \n```\n\nor \n\n```\n{\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"name\": \"remote_lldb\",\n            \"type\": \"lldb\",\n            \"request\": \"attach\",\n            \"pid\": \"get pid by execute `adb shell pidof com.vdian.flutter.wdb_buyer.example` yourself\",\n            \"initCommands\": [\n                \"platform select remote-android\",\n                \"platform connect unix-abstract-connect:///data/data/com.vdian.flutter.wdb_buyer.example/debug.socket\"\n            ],\n            \"preRunCommands\": [\n                \"settings append target.exec-search-paths /Users/lizhangqu/software/flutter_dev/engine/src/out/android_debug_unopt\"\n            ],\n            \"postRunCommands\": [\n                \"settings set target.source-map /Users/lizhangqu/software/flutter_dev/engine/src /Users/lizhangqu/software/flutter_dev/engine/src\"\n            ],\n        }\n    ]\n}\n```\n\nThe first config only can be used for that the libfluttser.so has already been loaded into memory.\n\nNow run it and set a breakpoint.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flizhangqu%2Fflutter_lldb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flizhangqu%2Fflutter_lldb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flizhangqu%2Fflutter_lldb/lists"}