Vector35 / Vector35/binaryninja-api

UI around function-level settings is very confusing

Open
#7,642 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: UI UI: Settings
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Version and Platform (required):

  • Binary Ninja Version: 5.3.8622-dev Ultimate, 62a8cd21
  • OS: macos
  • OS Version: 26.1
  • CPU Architecture: arm64

Bug Description:
Some subset of settings can be overridden on a per-function basis. The UI around how to do this is very confusing.

  • There's no mention in the Function Properties dialog that there are other settings that can be modified on a per-function basis. This feels like the obvious place to look for per-function settings, and it contains some setting-like things already ("inline during analysis" and the workflow to use).

  • The Function Settings context menu provides 8-10 menu items by default. These correspond to activities provided by workflows. There's no obvious way in this menu to change any setting that isn't already present in this submenu.

    It turns out that the expected workflow is to first add them as "Quick Settings". This will add them to the Function Settings submenu of the context menu. You can then change the setting within a given function via the context menu.

  • The term "Quick Settings" suggests it is providing quick access to something that is accessible elsewhere, but for function-level settings it appears to be the only place they are exposed.

  • The "Add Quick Setting…" menu item opens Settings and gives no indication of what to do next. Adding an item to Quick Settings is hidden behind a context menu.

  • There appears to be no way for a user to know which settings are applicable at a function level. The "Add to Quick Settings" context menu is enabled for some settings but not others, and it's not obvious how this is determined.

  • Removing a setting from Quick Settings also removes any indication that the setting has been overridden for a function.

  • Reset Settings in the Function Settings submenu only removes per-function overrides for settings that are currently enabled in Quick Settings. If you change a per-function setting, remove it from Quick Settings, then later want to reset the setting, the Reset Settings menu will not do this. You must first add the setting back to Quick Settings, then you can use Reset Settings or manually disable the setting.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reproducing the Function Properties and Function Settings behavior on macOS arm64 with the reported Binary Ninja version, then trace how function-level settings and Quick Settings are exposed. Done requires an agreed redesign that makes applicable settings discoverable and preserves clear override and reset behavior.

Written by the indexing model from the issue text.

Assessment

Domain
design, desktop
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.