CMUSTRUDEL/DIRTY

What are the "disappear" types?

Ruturaj4 opened this issue · 2 comments

Thanks so much for the great work!

I would like to know, What are the "disappear" types?

This sounds very interesting as the only reference about these types I found - "Assign type "Disappear" to variables not existing in the ground truth". Also, I have found a lot of "disappeared" types in the true and predicted labels as well, so much so that they dominate the "types".

Does this mean that these types are lost as IDA doesn't use the Dwarf information properly?

Thanks in advance.
Ruturaj

"disappear" is a type assigned to a variable that is combined with another into a composite type (e.g., struct, or an array). For example, if there were three int variables that were combined into a single array, the first one would have type int[3] and the other two would have type "disappear"

"disappear" is a type assigned to a variable that is combined with another into a composite type (e.g., struct, or an array). For example, if there were three int variables that were combined into a single array, the first one would have type int[3] and the other two would have type "disappear"

@jlacomis Thanks so much for the reply.

However I found some examples where all the types in the function are "disappeared". Does that mean that the whole function is gone during the decompilation?

For e.g.

"ref" is the actual type, while "pred" is the predicted type. For function quotearg_n_custom seems like all the arguments are disappeared!

"quotearg_n_custom": {"a1": {"ref": "disappear", "pred_type": "disappear"}, "a2": {"ref": "disappear", "pred_type": "disappear"}, "a3": {"ref": "disappear", "pred_type": "disappear"}, "a4": {"ref": "disappear", "pred_type": "disappear"}}