micro-profiler: Missing function names in the listview..
Hello, I am testing this profiler as I heard many great things about it in the field of performance of running program and I can’t seem to see the functions at all no matter what I tried.

I tried both /DEBUG and /DEBUG:FULL both do the same except the pdb is a bit bigger in FULL.
I also tried both modes Debug and Release Modes both give same results.

Also want to note I ran the micro-profiler_standalone.exe from Program Files and I get this

if i maximum it, it’s always a black screen even while my program i want to profile is running.

Fixed the standalone issue… you shouldn’t open the standalone.exe app just close visual studio and it will open autoamtically.
Also I wanted to ask how do I do call tracing? like list all the calls in order (this is what I really want to get to the bottom why my program keeps crashing after sometime).
Only the last function gets the correct function name.

I think I found what I wanted it was made in 1998 I put it up on my github https://github.com/fatrolls/CallMonitor
C:\Users\User\Desktop\callmonitor\Debug>Test 0 20
Test!main (002B2160)
Test!threadFunc (002B20A0)
Test!child1 (002B1F70)
Test!child2 (002B1FB0)
exit 002B1FB0, elapsed time=4 ms (13738100 ticks)
Test!child2 (002B1FB0)
Test!child1 (002B1F70)
Test!child2 (002B1FB0)
exit 002B1FB0, elapsed time=4 ms (12385575 ticks)
Test!child2 (002B1FB0)
exit 002B1FB0, elapsed time=5 ms (15019975 ticks)
exit 002B1F70, elapsed time=27 ms (82797408 ticks)
exception exit 002B1FB0, elapsed time=40 ms (122291193 ticks)
exception exit 002B1F70, elapsed time=56 ms (170411060 ticks)
exit 002B20A0, elapsed time=61 ms (184553835 ticks)
exit 002B2160, elapsed time=74 ms (222897953 ticks)
C:\Users\User\Desktop\callmonitor\Debug>
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 61 (35 by maintainers)
Commits related to this issue
- dbghelp.dll is now loaded dynamically, with a preference to a locally placed dbghelp_x64/dbghelp_x86 - this change may supposedly help with the issue #66 — committed to tyoma/micro-profiler by tyoma 3 years ago
- dbghelp.dll is now loaded dynamically, with a preference to a locally placed dbghelp_x64/dbghelp_x86 - this change may supposedly help with the issue #66; - rewound to a newer wpl. — committed to tyoma/micro-profiler by tyoma 3 years ago
- Issue #66 Fix (vsextension only): dbghelp.dll is attempted to load from the list of libraries - vsextension now includes dbghelp.dll from MS SDK (to support symbols reading on Windows 7 and on some W... — committed to tyoma/micro-profiler by tyoma 3 years ago
- Issue #66 Fix (vsextension only): dbghelp.dll is attempted to load from the list of libraries - vsextension now includes dbghelp.dll from MS SDK (to support symbols reading on Windows 7 and on some W... — committed to tyoma/micro-profiler by tyoma 3 years ago
- non-collector_app-specific tests moved to ActiveServerAppTests for active_server_app (former active_server_base) - crash reported in issue #66 by @r-pankevicius is now fixed; - active_server_app is n... — committed to tyoma/micro-profiler by tyoma 3 years ago
- non-collector_app-specific tests moved to ActiveServerAppTests for active_server_app (former active_server_base) - crash reported in issue #66 by @r-pankevicius is now fixed; - active_server_app now ... — committed to tyoma/micro-profiler by tyoma 3 years ago
- Issue #66 Fix: dbghelp.dll redistributable is now included into .msi-installers — committed to tyoma/micro-profiler by tyoma 3 years ago
- Issue #66 Fix: dbghelp.dll redistributable is now included into .msi-installers — committed to tyoma/micro-profiler by tyoma 3 years ago
As for this - “Another issue was that sometimes I get empty window in micro-profiler_standalone.exe with no data after program run. I had to click on the window and then window was filled with data, fine. I can not reproduce this every time, but I need to know this trick.” - the lists don’t get invalidated on symbols arrival (i.e. the stats model needs to hook to symbol_resolver::invalidate). I’ll fix this. The new (2.x.x) version will be a big update and I’ll need people to beta-test it. Will you mind to participate?
Moving forward.
One issue was “known issue” : I tested with sample program that ran for a short time and did not get any results. That issue is https://github.com/tyoma/micro-profiler/issues/59.
Another issue was that sometimes I get empty window in micro-profiler_standalone.exe with no data after program run. I had to click on the window and then window was filled with data, fine. I can not reproduce this every time, but I need to know this trick.
One more this I found, @tyoma : Freed memory access in active_server_base::worker, frontend_disconnected (_exit_confirmed) It may get unnoticed in release mode running a single thread, but in debug memory manager (that fills memory with intentionally bad data after it’s been freed) it can be easily spotted.
In collector, active_server_base.cpp, there is frontend_disconnected lambda that crashes like this in my debugger output:
Works OK if changed to something like this:
@tyoma
Do those libraries have debug info enabled on compilation?..LOL…the one that wasn’t displaying the function names DID NOT. Setting that sure enough took care of it! 😃
Thank you so much for taking the time to respond and suggest this. I greatly appreciate it!
@fatrolls correct, it’s not there yet - I need to figure out which versions to use for the maximum compatibility - I’ll probably need to have the latest ones that work with winXP (without those api-* dependencies), the latest one for Win7, etc. Regarding placement - you’re right - that’s the intent - not copying micro-profiler, unless you want to package it for portable use (like, for instance, at customer’s site). The idea of packaging dbghelp into micro-profiler as a resource seems pretty interesting. That way I’ll be able to maintain a single file necessary for work. The only question would be whether Windows is fine with that (I mean, Windows Defender), as I’m gonna need to first save the library to a temp location and then LoadLibrary it…
Hey all, I am having a similar issue using Visual Studio Community 2019 on Windows 10. I did copy
dbghelp.dllfromC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Toolsto the directory where my application is located. I am using CMake to generate the Visual Studio project. I have addedadd_definitions(/GH /Gh)to my compile definitions and linked withmicro-profiler_x64(which CMake was able to find in the MSVC extensions dir). I have also set the/DEBUGand/PDBlinker flags.Attached the micro-profiler_vspackage.log
Let me know if any other logs or compiler options would be helpful. I’m really excited to be able to do some profiling, the built in Visual Studio profiler isn’t working for me as well. It shows all my code is “Native” with no details.