TypeTreeDumper icon indicating copy to clipboard operation
TypeTreeDumper copied to clipboard

[BUG] Exception on export

Open kiraio-moe opened this issue 1 year ago • 2 comments

Build the project and run the project with the following command:

TypeTreeDumper.Bootstrapper.exe "D:\Program Files\Unity\2022.3.22f1\Editor\Unity.exe" --verbose

then left with this exception:

Console Logging Initialized
Loading plugins
0 plugins loaded
Executing Dumper
Starting export. UnityVersion 2022.3.22f1.
Writing classes.json...
Writing field values...
Revision 25
Revision 50
Revision 75
Revision 100

Aborting batchmode due to fatal error:
Callback registration failed. Increase kMaxCallback.

Aborting batchmode due to fatal error:
Callback registration failed. Increase kMaxCallback.

System.Runtime.InteropServices.SEHException (0x80004005): External component has thrown an exception.
   at Unity.NativeObjectFactory.Produce(RuntimeTypeInfo type, Int32 instanceID, ObjectCreationMode creationMode) in D:\Projects\DOTNET\TypeTreeDumper\UnityInterop\NativeObject\NativeObjectFactory.cs:line 146
   at Unity.NativeObjectFactory.GetOrProduce(RuntimeTypeInfo type) in D:\Projects\DOTNET\TypeTreeDumper\UnityInterop\NativeObject\NativeObjectFactory.cs:line 167
   at TypeTreeDumper.FieldValuesJsonDumper.GetJsonForAllObjects(UnityEngine engine) in D:\Projects\DOTNET\TypeTreeDumper\TypeTreeDumper\FieldValuesJsonDumper.cs:line 220
   at TypeTreeDumper.FieldValuesJsonDumper.SetRandomValuesToDefault(UnityEngine engine, Dictionary`2 dictionary1) in D:\Projects\DOTNET\TypeTreeDumper\TypeTreeDumper\FieldValuesJsonDumper.cs:line 51
   at TypeTreeDumper.FieldValuesJsonDumper.ExportFieldValuesJson(UnityEngine engine, String outputPath) in D:\Projects\DOTNET\TypeTreeDumper\TypeTreeDumper\FieldValuesJsonDumper.cs:line 38
   at TypeTreeDumper.Dumper.Execute(UnityEngine engine, ExportOptions options, DumperEngine dumperEngine) in D:\Projects\DOTNET\TypeTreeDumper\TypeTreeDumper\Dumper.cs:line 30
   at TypeTreeDumper.EntryPoint.ExecuteDumper() in D:\Projects\DOTNET\TypeTreeDumper\TypeTreeDumper\EntryPoint.cs:line 199
   at TypeTreeDumper.EntryPoint.HandleEngineInitialization() in D:\Projects\DOTNET\TypeTreeDumper\TypeTreeDumper\EntryPoint.cs:line 245

kiraio-moe avatar Apr 16 '24 10:04 kiraio-moe

@DaZombieKiller I think we should remove the field values dumper.

  • The output is not deterministic, and attempts to make it less random are costly for performance and cause issues like this one.
  • It is not supported on all versions.

ds5678 avatar Apr 16 '24 16:04 ds5678

@ds5678 That sounds fine to me. Feel free to make that change if you have the time, otherwise I will get around to it sometime later.

DaZombieKiller avatar Apr 16 '24 16:04 DaZombieKiller