New Xrefs Graph

Kinda miss the qwingraph feature as I had a replacement UI for it. Cant seem to find the Xref tree feature mentioned. Anyway here are a couple ideas I liked in the replacement i had made:

click on node to navigate
right click on node:

  • rename node
  • prefix all unnamed nodes under
  • somewhere i had a version that had "delete nodes below” which was handy for cleanup
  • todo: delete above to dejunk big graphs from noise
  • todo: graph above/below to explode off in other directions
  • todo: set / remove breakpoint

list view on the left with the names of all nodes

  • search
  • copy node list - sometimes handy for data dumping and parsing
  • prefix all
  • todo: filter list would have been a nice list feature

it was an external exe and communicated with IDA over IPC for navigation and renaming features. The prefix all unnamed below was particularly useful. Id love if there was still a fall back option for the external qwingraph :man_shrugging:

one other idea that might be interesting..imagine showing a little number in the top right corner of each node of total xrefs to it from outside this shown call tree..maybe help to see where shared functions got noisy with junk and discount whats below it? or filter based on this? dunno just spit balling since it sounded like your were open to ideas on the new form.

guess ill have to reimplement the to/from xref tree generation to control it again

edit: claude.ai was able to kick out graphviz compatible dot file generators for these in cpp first try

1 Like

BTW, looks like this still works (if you have qwingraph binary):

idaapi.gen_flow_graph("test", "title", idaapi.get_func(here()), 0, idaapi.BADADDR, idaapi.CHART_WINGRAPH)

cool thanks.

One other idea that i suspect will be useful would be a max depth parameter, so you can profile the immediate vicinity without descending into the inferno. this can probably be applied at the display layer just as easily…

here is what claude.ai cooked up for graphviz dot generation. Seems decent so far..also tracks some extra node stuff like xrefs total, str refs (not perfect) etc

graph_replacement.txt (17.3 KB)

This grapher can now be launched from IDA JScript v3 with a script command like

graph(“fxNameOrEa”, “from”)

https://sandsprite.com/blogs/index.php?uid=7&pid=579&year=2025