-
The file that I'm looking at has C++ mangled symbols that create a bunch of empty types during analysis under the Demangler category. When I run RecoverClassesFromRTTIScript it creates a bunch of matching types in the "ClassDataTypes" category. Is there a way to unify these types somehow? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
The ones in the demangler folder are usually empty placeholder structures and the ones generated by the script are normally filled out by the script with hopefully better information. Since the script is prototype, the determination of how to handle these matching types hasn't been decided yet. There are also ones in the pdb folder that have partial information if a program has pdb and probably others for other program types. I think for now, the best solution is to add an option to the script allowing the user to decide which way they want to handle these. They could decide to leave them as is or decide to replace all empty/incomplete ones with the new filled out ones and remove the resulting unused ones. On the one hand, if kept, they clutter up the data type manager and often cause discrepancies in the decompiler if different ones are used on the same function (or called functions). On the other hand, it may be useful to know where original information was obtained and if removed, that info may be lost. Ultimately, there needs to be some kind of manual and programmatic way to merge structure information from various sources and then mark one the best one, replace all uses of the others with the best one, and remove the rest. Retaining information about sources would be very difficult though, if people were interested in that. |
Beta Was this translation helpful? Give feedback.
-
As a short term hack, what I've been doing is dragging the type from ClassDataTypes onto the Demangler type. This seems to replace the contents of the Demangler type with the contents of the ClassDataTypes one. I then drag the Demangler type back on to the ClassDataTypes one. This seems to remove the copy in "Demangler". |
Beta Was this translation helpful? Give feedback.
As a short term hack, what I've been doing is dragging the type from ClassDataTypes onto the Demangler type. This seems to replace the contents of the Demangler type with the contents of the ClassDataTypes one. I then drag the Demangler type back on to the ClassDataTypes one. This seems to remove the copy in "Demangler".