summaryrefslogtreecommitdiff
path: root/docs/getting-started.md
diff options
context:
space:
mode:
authorJon Palmisciano <jp@jonpalmisc.com>2021-05-18 08:50:27 -0400
committerJon Palmisciano <jp@jonpalmisc.com>2021-05-21 12:14:53 -0400
commitd3bbde0c5a741e24f92f2d9f6c3280ff499eb578 (patch)
treeddcf6078d8c6e5aae5c55cef9245c810aed8a760 /docs/getting-started.md
parent3f756027c42d6b183030aba895d999d0f1932804 (diff)
Added docs for new Edit Function Properties dialog
Diffstat (limited to 'docs/getting-started.md')
-rw-r--r--docs/getting-started.md25
1 files changed, 25 insertions, 0 deletions
diff --git a/docs/getting-started.md b/docs/getting-started.md
index 2ec0ec51..c191c689 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -385,6 +385,31 @@ The function list also highlights imports, and functions identified with symbols
!!! Tip "Tip"
To search in the function list, just click to make sure it's focused and start typing!
+### Edit Function Properties Dialog
+
+![Edit Function Properties Dialog >](img/efp_dialog_diagram.png "Edit Function Properties Dialog")
+
+The “Edit Function Properties” dialog provides the ability to easily configure some of a function’s more advanced properties. It can be opened via the context menu when a function is focused in the graph or linear views, or via the command palette. An overview of the UI is as follows:
+
+1. **Function prototype.** The function’s prototype. If the prototype is too long to fit inside the window, a scroll bar will appear.
+1. **Function info.** A list of conditionally-shown tags offering information about the function. Possible tags are as follows:
+ - **Function architecture/platform**: The function's architecture/platform (e.g. `windows-x86_64`)
+ - **Analysis skipped (too large)**: Analysis was skipped for this function because it was too large ([`analysis.limits.maxFunctionSize`](#analysis.limits.maxFunctionSize))
+ - **Analysis timed out**: Analysis for this function was skipped because it exceeded the maximum allowed time ([`analysis.limits.maxFunctionAnalysisTime`](#analysis.limits.maxFunctionAnalysisTime))
+ - **Analysis was skipped (too many updates)**: Analysis was skipped for this function because it caused too many updates ([`analysis.limits.maxFunctionUpdateCount`](#analysis.limits.maxFunctionUpdateCount))
+ - **Analysis suppressed**: Analysis was suppressed for this function because analysis of auto-discovered functions was disabled ([`analysis.suppressNewAutoFunctionAnalysis`](#analysis.suppressNewAutoFunctionAnalysis))
+ - **Basic analysis only**: This function only received basis analysis ([`analysis.mode`](#analysis.mode) was 'basic')
+ - **Intermediate analysis only**: This function only received intermediate analysis ([`analysis.mode`](#analysis.mode) was 'intermediate')
+ - **Unresolved stack usage**: The function has unresolved stack usage
+ - **GP = 0xABCD1234**: The global pointer value is 0xABCD1234
+1. **Calling convention.** The calling convention this function uses. All calling conventions for the function’s architecture are available as choices.
+1. **Stack adjustment.** How many _extra_ bytes does this function remove from the stack upon return?
+1. **Has variable arguments.** Does this function accept a variable number of arguments?
+1. **Can return.** Does this function return? If not, #8 will be unavailable.
+1. **Clobbered registers.** The list of registers that this function clobbers; individual registers can be checked or unchecked.
+1. **Return registers.** The list of registers that this function returns data in; individual registers can be checked or unchecked.
+1. **Register stack adjustments.** A table containing a row for each register stack (e.g. x87) in the architecture, with the ability to adjust how many registers are removed from each stack when the function returns.
+
### Reflection View
- View BNILs and assembly for the same file side-by-side