NationalSecurityAgency / ghidra

Ghidra is a software reverse engineering (SRE) framework
https://www.nsa.gov/ghidra
Apache License 2.0
51.65k stars 5.88k forks source link

Unable to create symbol #2470

Open justanotheranonymoususer opened 3 years ago

justanotheranonymoususer commented 3 years ago

I'm not sure if that's an issue. I loaded this explorer.exe file along with the PDB from the MS symbol server. When loading the PDB, I got this message:

Unable to create symbol ??$_Insert_unverified@AEAU?$pair@$$CBV?$basic_string_view@GU?$char_traits@G@std@@@std@@V?$unique_ptr@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@U?$default_delete@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@@2@@std@@V?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@$$CBV?$basic_string_view@GU?$char_traits@G@std@@@std@@V?$unique_ptr@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@U?$default_delete@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@@2@@std@@@std@@@std@@@2@@?$_Hash@V?$_Umap_traits@V?$basic_string_view@GU?$char_traits@G@std@@@std@@V?$unique_ptr@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@U?$default_delete@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@@2@V?$_Uhash_compare@V?$basic_string_view@GU?$char_traits@G@std@@@std@@U?$hash@V?$basic_string_view@GU?$char_traits@G@std@@@std@@@2@U?$equal_to@V?$basic_string_view@GU?$char_traits@G@std@@@std@@@2@@2@V?$allocator@U?$pair@$$CBV?$basic_string_view@GU?$char_traits@G@std@@@std@@V?$unique_ptr@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@U?$default_delete@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@@2@@std@@@2@$0A@@std@@@std@@IEAA?AU?$pair@V?$_List_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@$$CBV?$basic_string_view@GU?$char_traits@G@std@@@std@@V?$unique_ptr@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@U?$default_delete@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@@2@@std@@@std@@@std@@@std@@_N@1@AEAU?$pair@$$CBV?$basic_string_view@GU?$char_traits@G@std@@@std@@V?$unique_ptr@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@U?$default_delete@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@@2@@1@V?$_List_unchecked_iterator@V?$_List_val@U?$_List_simple_types@U?$pair@$$CBV?$basic_string_view@GU?$char_traits@G@std@@@std@@V?$unique_ptr@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@U?$default_delete@V?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@@2@@std@@@std@@@std@@@1@@Z at 140190010

These kind of messages were common in prev version, but now you say that you replaced the PDB parser and stuff, so perhaps it's an actual bug. Also you mentioned something about using MD5 for long symbols (the symbol is 2119 chars long).

To Reproduce Steps to reproduce the behavior:

  1. Download the file I linked
  2. Load it into Ghidra 9.2
  3. Download and load PDB
  4. See error

Expected behavior No errors.

Screenshots https://i.imgur.com/7EKmdXy.png

Environment (please complete the following information):

ghizard commented 3 years ago

This is not really a PDB issue, but an issue of symbols larger than 2000 characters not being accepted. We have an internal ticket regarding this issue, and I've mentioned it in Issue #94 here. I will ping on @ghida1 about this.

ghidra1 commented 3 years ago

A reason should be specified by error message