-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Namespace not created in Symbol Tree #7260
Comments
Setting a label via the API and GUI text entry will not split-apart the namespace names. This is because the ':' char is permitted in the name of a symbol. Using the GUI, you would need to 1) create the appropriate namespace/class first, 2) create a label in the global namespace at the desired address, then 3) re-parent the symbol from the symbol tree. I have never been a fan of this behavior. The GUI dialogs should probably provide better support for selecting any defined namespace or class. May also need an action/dialog for creating a namespace or class which could also be invoked while creating/editing a label or function. |
It is a namespace. Every window except symbol table agrees it's a namespace and treats it as such (ie namespace/name columns parse it, namespaced functions truncate symbol namespaces in decompiler). Symbol table does after closing/reopening that window or codebrowser |
Oh, I think you are right. I was confused by what ghidra1 said, which I believe is wrong also. |
What should be working is updating labels via the
How are you creating your lablels? |
Listing window, keyboard shortcut to label Yeah, I'm not sure the reasoning why it takes a "refresh" of the symbol tree window for it to appear, but every other window seems happy. Maybe it's a depth issue, my example names are changed but otherwise similar structure. |
Describe the bug
When labeling a global data or function with a new namespace, the namespace is not added to the Symbol Tree.
Not 100% on repro yet, it's not happening for everything.
Working in a program called "foo"
Example class strings are like: "foo::bar::baz::Thing1"
DTM would then be "foo/foo/bar/baz/Thing1" for the resulting class struct
"foo::bar::baz" namespace exists with class "Thing0"
If I label the vftable "foo::bar::baz::Thing1::vftable" it doesn't generate any new symbol tree entries for "Thing1" or "Thing1/vftable"
If I, from that vftable, label "foo::bar::baz::Thing1::FUN_aabbccdd", it is also not in the symbol tree anywhere, even though the decompiler/listing/Functions/Symbol Table windows all agree the namespace is there for the function
Exiting code browser does seem to trigger it to appear.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Attachments
If applicable, please attach any files that caused problems or log files generated by the software.
Environment (please complete the following information):
Additional context
Add any other context about the problem here.
The text was updated successfully, but these errors were encountered: