You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Displays the names of local variables, method arguments and method return values in IDA Pro. (NativeAOT) #117309
Hi. I am dealing with the problem of mapping local variables and arguments with returned arguments at functions in IDA Pro. That is, type mapping.
My goal is that when I load a binary into IDA Pro, it will automatically get all the type information it needs in a .pdb file, without having to manually convert pointers to structures from the developer. For example:
I decided to use cvdump.exe to see what data is generated, and saw a strange thing:
The type of the process was not specified. I decided to find out what the problem was and it was because the methodTypeIndex variable was not used in the EmitSubprogramInfo method in the “ILCompiler.Compiler\Compiler\ObjectWriter\CodeView\CodeViewSymbolsBuilder.cs” file.
I made the variable write but an additional problem appeared. In the following dump I saw this:
The reference pointed to a completely empty forward ref type, when the full type was under a completely different number:
BUT! Some structures and classes are successfully caught by IDA Pro and shown in the disassembler. That is, after my change, this structure arguments were successfully inserted automatically.
I think the problem is in the file "ILCompiler.Compiler\Compiler\UserDefinedTypeDescriptor.cs" and it has something to do with:
Most likely, an empty copy of the class is generated initially, so methodTypeIndex may point to it, but I could be wrong. I would be grateful if you could look into this problem.
The method type missing is probably the reason why native debuggers show all methods as not taking any parameters in stack traces. The parameter types however do show up as part of local info, so it doesn't affect debugging method bodies.
Fixing this up is not a huge priority because of how little it affects debugging scenarios. But I'd be happy to review a PR that fixes it.
Activity
MichalStrehovsky commentedon Jul 4, 2025
The method type missing is probably the reason why native debuggers show all methods as not taking any parameters in stack traces. The parameter types however do show up as part of local info, so it doesn't affect debugging method bodies.
Fixing this up is not a huge priority because of how little it affects debugging scenarios. But I'd be happy to review a PR that fixes it.
Improvements to native AOT method debug information (#132735)