Wireshark mailing list archives

Re: Wireshark.pdb for Wireshark 2.6 are not loaded


From: Peter Wu <peter () lekensteyn nl>
Date: Thu, 17 May 2018 14:42:25 +0200

On Thu, May 17, 2018 at 12:28:00PM +0100, Graham Bloice wrote:
On Thu, 17 May 2018 at 11:52, Peter Wu <peter () lekensteyn nl> wrote:

Hi,

While trying to debug a crash dump from Wireshark 2.6.0, I ran into the
following error:

    Wireshark.pdb could not be found in the selected paths

Steps to reproduce:

1. Install
https://www.wireshark.org/download/win64/Wireshark-win64-2.6.0.exe
2. Extract
https://www.wireshark.org/download/win64/all-versions/Wireshark-pdb-win64-2.6.0.zip
3. Trigger crash in Wireshark, e.g. Tools -> Lua -> Evaluate. Execute:
   local ba = ByteArray.new(""); getmetatable(ba).__gc(ba)
4. Debug Program, attach Visual Studio 2015 and select the previously
   extracted Wireshark.pdb file.

Expected result:
Wireshark.pdb is loaded successfully.

Actual result:
Loading the PDB fails with "Wireshark.pdb could not be found in the
selected paths". Note that symbols for "libwireshark.dll" can be loaded,
it is just "Wireshark.exe" that fails.

What can I do to load the symbols anyway? Is there something in the
packaging steps that has to be changed?
--
Kind regards,
Peter Wu
https://lekensteyn.nl


I'm really pushed for time so can't give you much help, but in case of
symbol issues I find WinDbg much more helpful as it has a command "!sym
noisy" that makes the symbol loader emit lots of info.

It says:
DBGHELP: E:\wireshark-pdb-win64-2.6.0\Wireshark.pdb - mismatched pdb
...
DBGHELP: C:\buildbot\wireshark\wireshark-2.6-64\windows-2016-x64\build\cmbuild\run\RelWithDebInfo\Wireshark.pdb - file 
not found
DBGHELP: Couldn't load mismatched pdb for Wireshark.exe
*** ERROR: Module load completed but symbols could not be loaded for Wireshark.exe
DBGHELP: Wireshark - no symbols loaded

0:000> !itoldyouso Wireshark.exe E:\Wireshark-pdb-win64-2.6.0\Wireshark.pdb

Wireshark.exe
    Timestamp: 5ADF6E30
  SizeOfImage: 7E6000
          pdb: C:\buildbot\wireshark\wireshark-2.6-64\windows-2016-x64\build\cmbuild\run\RelWithDebInfo\Wireshark.pdb
      pdb sig: 8BBD6A19-5505-401B-98FA-CB62E571E5D3
          age: 2

Wireshark.pdb
      pdb sig: 8BBD6A19-5505-401B-98FA-CB62E571E5D3
          age: 1

age MISMATCH: Wireshark.pdb and Wireshark.exe


Using "ChkMatch.exe" to correct an "Age" property did not make a
difference either. in WinDbg, I finally got symbols after .setopt+0x40,
this worked with the plain pdb files.


The remaining question is, how did this mismatch ever happen? The issue
is also still present with win64-2.6.1rc0-76-g1486fd91. This seems
problematic:

- Wireshark.pdb was built in "compiled with MSBuild"
- The PDB is zipped with "built .PDB zip".
- In "prepared NSIS package", "qtui" is somehow rebuilt which also
  causes Wireshark.pdb to be updated. see:
  
https://buildbot.wireshark.org/wireshark-2.6/builders/Windows%20Server%202016%20x64/builds/138/steps/compile_3/logs/stdio

Not sure if this is the intended behavior. Gerald, should "built .PDB
zip" be moved after these targets, before "verified signatures"?
-- 
Kind regards,
Peter Wu
https://lekensteyn.nl
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev () wireshark org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-request () wireshark org?subject=unsubscribe

Current thread: