Im following the notes from this url
I have it compiled on my code (Qt, windows, VS 2015) I run it in debug mode and when it crashes I do the following:
Create the symbol file
dump_syms.exe ZendeskClient.exe > ZendeskClient.sym
Using the dmp and the symbol file generate a text file (tried each one)
minidump_stackwalk.exe filename.dmp symbols > ZendeskClient.txt 2>&1
minidump_stackwalk.exe filename.dmp ZendeskClient.sym > ZendeskClient1.txt 2>&1
minidump_stackwalk.exe filename.dmp ZendeskClient.sym symbols > ZendeskClient2.txt 2>&1
But I dont see anything that shows what caused the crash in the app. I see in the text (600 lines)(Its not all the information, just enough hopefully to show what i'm trying to show. The rest of the data is somewhat the same):
2016-04-20 21:00:32: minidump_processor.cc:264: INFO: Processing minidump in file C:\Users\adviner\c62072b9-3bf7-42b6-b6f2-28c3ccf9546f.dmp
2016-04-20 21:00:32: minidump.cc:3500: INFO: Minidump opened minidump C:\Users\adviner\c62072b9-3bf7-42b6-b6f2-28c3ccf9546f.dmp
2016-04-20 21:00:32: minidump.cc:3545: INFO: Minidump not byte-swapping minidump
2016-04-20 21:00:32: minidump.cc:3902: INFO: GetStream: type 1197932546 not present
2016-04-20 21:00:32: minidump.cc:1945: INFO: MinidumpModule could not determine version for C:\Projects\PersonalApps\Build\Windows\ZendeskClient\debug\ZendeskClient.exe
2016-04-20 21:00:32: minidump_processor.cc:116: INFO: Minidump C:\Users\adviner\c62072b9-3bf7-42b6-b6f2-28c3ccf9546f.dmp has CPU info, OS info,
....
CPU: x86
GenuineIntel family 6 model 78 stepping 3
4 CPUs
Crash reason: EXCEPTION_ACCESS_VIOLATION_READ
Crash address: 0xffffffffcdcdcddd
Thread 0 (crashed)
0 ntdll.dll + 0x76bfc
eip = 0x77bc6bfc esp = 0x0018bb08 ebp = 0x0018bb78 ebx = 0x00000001
esi = 0x00000000 edi = 0x000001fc eax = 0x00000000 ecx = 0xcdcdcddd
edx = 0x0018c570 efl = 0x00200202
Found by: given as instruction pointer in context
1 KERNELBASE.dll + 0xae131
eip = 0x7795e132 esp = 0x0018bb80 ebp = 0x0018bb8c
Found by: previous frame's frame pointer
2 ZendeskClient.exe + 0xfcf3f
eip = 0x002fcf40 esp = 0x0018bb94 ebp = 0x0018bba4
Found by: previous frame's frame pointer
3 ZendeskClient.exe + 0xfc9e7
eip = 0x002fc9e8 esp = 0x0018bbac ebp = 0x0018bbe4
Found by: previous frame's frame pointer
4 KERNELBASE.dll + 0x13f471
eip = 0x779ef472 esp = 0x0018bbec ebp = 0x0018bc74
Found by: previous frame's frame pointer
5 ntdll.dll + 0xa35ed
eip = 0x77bf35ee esp = 0x0018bc7c ebp = 0x0018fb8c
Found by: previous frame's frame pointer
6 ntdll.dll + 0x65dad
eip = 0x77bb5dae esp = 0x0018fb94 ebp = 0x0018fb9c
Found by: previous frame's frame pointer
...
Loaded modules:
0x00200000 - 0x003e9fff ZendeskClient.exe ??? (main)
0x00bf0000 - 0x00d62fff ucrtbased.dll 10.0.10240.16384
0x02490000 - 0x024b2fff WINMMBASE.dll 6.2.10586.0
0x02650000 - 0x0266cfff qicnsd.dll 5.6.0.0
0x029d0000 - 0x02bc8fff qwindowsd.dll 5.6.0.0
0x02d50000 - 0x02d68fff qicod.dll 5.6.0.0
0x02d70000 - 0x02d85fff qsvgd.dll 5.6.0.0
0x02d90000 - 0x02da4fff qtgad.dll 5.6.0.0
0x02dd0000 - 0x02f0efff dbghelp.dll 6.2.10586.0
Is there something wrong in the way i'm building the output? Im on windows btw
The answer is general to debug practice on Windows. Microsoft Visual C++ build tools produce Program Database File format output when you compile/link your project. And then when the program crashes you get .dmp or minidump file you can unwind the stack with specific function names / lines.
How to do the actual debug having the dump file? You can use this answer as Wiki for debugging using both dmp and pdb files: Analyzing Crash dumps in Visual Studio. Just open dump file with Visual Studio and then point to program database and then source code and you will see the picture of all threads/stacks at the moment of crash.
UPDATE: We can also 'symbolicate' the 'empty' dump without names as answered: stackwalker loads all symbol files, but still doesn't symbolicate anything. I guess that the tool name is minidump_stackwalk.