summaryrefslogtreecommitdiff
path: root/docs/dev/concepts.md
diff options
context:
space:
mode:
authorJordan Wiens <jordan@psifertex.com>2023-11-30 22:51:38 -0500
committerJordan Wiens <jordan@psifertex.com>2023-11-30 22:51:44 -0500
commit577025979aee0204ce3c5f80a346e5b898e0b023 (patch)
tree2e7236931c4c4f7a2527d2c22b4e92b4762c5eba /docs/dev/concepts.md
parentf1d97429401367d0749e37f7f99cd163987e2a9c (diff)
docs updated for repl concepts section
Diffstat (limited to 'docs/dev/concepts.md')
-rw-r--r--docs/dev/concepts.md4
1 files changed, 4 insertions, 0 deletions
diff --git a/docs/dev/concepts.md b/docs/dev/concepts.md
index 43bef354..4247a873 100644
--- a/docs/dev/concepts.md
+++ b/docs/dev/concepts.md
@@ -18,6 +18,10 @@ print("test")
and then checking the `Log` pane where you will see an `Analysis update took #.###` message. This is a convenience the UI does for you just like if you were to change a type or create a function, you almost always want the analysis to be updated. However, in scripts you run yourself as plugins or via the "Run Script" command, you may not get the same results mid-execution until after the entire script is finished running.
+To achieve the same results when writing a stand-alone plugin, you'd need to use [`current_function.reanalyze()`](https://api.binary.ninja/binaryninja.function-module.html#binaryninja.function.Function.reanalyze), [`bv.update_analysis_and_wait()`](https://api.binary.ninja/binaryninja.binaryview-module.html#binaryninja.binaryview.BinaryView.update_analysis_and_wait), or similar methods.
+
+Another difference in the REPL / scripting console is that the scripting console is not executing on the main thread. This means that if you wish to interact with the UI via QT or BN UI APIs from the console (for example, to [trigger an action via string](https://gist.github.com/psifertex/6fbc7532f536775194edd26290892ef7#file-trigger_actions-py)), you'd need to use [`mainthread.execute_on_main_thread_and_wait()`](https://api.binary.ninja/binaryninja.mainthread-module.html#binaryninja.mainthread.execute_on_main_thread_and_wait) or similar.
+
![Scriping Console ><](../img/console.png "Python Scripting Console")
## Operating on IL versus Native