Skip to content

Instantly share code, notes, and snippets.

@danielpunkass
Last active July 22, 2018 02:50
Show Gist options
  • Save danielpunkass/b868c1488e34210e4d05 to your computer and use it in GitHub Desktop.
Save danielpunkass/b868c1488e34210e4d05 to your computer and use it in GitHub Desktop.
A simple lldb module for adding an "fsa" command to inject F-Script anywhere into any process
"""
Automate loading of F-Script Anywhere into any app.
By Daniel Jalkut - @danielpunkass - http://indiestack.com/
To set up:
0. Make sure you have FScript.framework installed in /Library/Frameworks (http://www.fscript.org)
1. Copy this script to ~/.lldb/fsa.py
2. Add the following to your ~/.lldbinit file:
command script import ~/.lldb/fsa.py
To use:
1. Attach to a process e.g. by "lldb -n TextEdit"
2. Type "fsa" to load an initialize F-Script Anywhere in the context of the app.
3. Type "c" to continue execution of the target app.
"""
def loadFSA(debugger, args, result, internal_dict):
debugger.HandleCommand('expr (void) [[NSBundle bundleWithPath:@"/Library/Frameworks/FScript.framework"] load]');
debugger.HandleCommand('expr (void)[FScriptMenuItem insertInMainMenu]');
def __lldb_init_module(debugger, dict):
debugger.HandleCommand('command script add -f fsa.loadFSA fsa');
@djacobs
Copy link

djacobs commented May 16, 2014

Nice job @danielpunkass. Good sharing.

@mrfabbri
Copy link

very handy 👍

@mrfabbri
Copy link

PS: Added a shortcut for Console and Objects Browser on https://gist.github.com/mrfabbri/307fe3b8d800b2074477 (and a convenience method to use heredocs for lldb commands)

@perfaram
Copy link

@ifonefox : Me too, I'm getting a "Undeclared identifier" for NSBundle...

@wtfaremyinitials
Copy link

@ifonefox @perfaram Same. How can this be fixed?

@hankbao
Copy link

hankbao commented Jan 13, 2016

try this in lldb: expr @import Foundation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment