The just released V 1.0.8 uses the Zydis disassembler to show also the assembler code of functions,
making it easier to figure out lower level optimizations that can be made as well as getting a grasp on code without debug information.
After a looong inactivity, the GTA work by t0st motivated me to upgrade Luke Stackwalker to build with modern tools an libraries.
A good few bugs were fixed in the process, so it should now crash less too.
After more than a decadein beta it's appropriate to bumpt the version number to 1.0.0 too.
- Bug fix: By default, abort call stack traversing if PC is not in any known module. Not doing
this used to get a lot of bogus call stack data when the call stack could not be walked properly.
- Bug fix: The source window would sometimes stay blank and not load the correct source file.
- Bug fix: Don't allow moving the selection in the profile view below the bottom of the grid view with arrow keys
Changes in Release 0.9.2, Oct 29th 2009
- Bug fix: stop sampling with an error message if no threads can be sampled
- Bug fix: complain only once for each callstack address that cannot be resolved to a function name / source line.
Before this could flood the log view to the point where the program would hang.
- Check if the process has loaded new modules during sampling and load debug info for the new modules... read more
- Bug fix: fixed a crash when displaying call graph with very long (STL-style) function names
- More sensible default project settings
- Project settings dialog suggests stack sampling depth of 1 for best accuracy, 0 for getting a good call graph
- Sorting of processes according to executable name in "Select process to profile"-dialog
- Displaying of sum of CPU time used in thread select combo box when multiple threads are selected
Release 0.9.0, June 5th 2009
- Bug Fix : profiling an already running program, "attach to process" was broken in 0.8.9
- canceling profiling during module loading works now
- sample collection can be paused and continued
- limited horizontal splitter movement - cannot make left side bigger than size of data grid
Release 0.8.9, May 18th 2009
Making this release was triggered as I noticed that the program did not start on a machine that did not have the MSVC runtime properly installed. I thought that having the runtime DLL's and theri manifest in the application folder was working, but I had apparently not tested with a virgin enough machine.
Happy profiling everyone.
- Properly instal MSVC runtime (the program has probably not worked before for people without the MSVC 2005 SP1 runtime installed)
- sort threads by CPU time used in toolbar thread selection list
- debug info loading log line in red colour if debug info was not found for a module
- display number of sampled top-level functions correctly after loading sample data from a file
- detect if the profiled program exits immediately (it's probably missing a DLL or something)
The main enhancement in this release is the ability to profile an already running program. To do that, click on the "Attach to an already running program" checkbox in the Profiler Settings Wizard. This way you can profile e.g. the explorer.exe (the windows explorer GUI) to get some interesting, if confusing call graphs.
Also the manual can be opened from the help menu.
This is just a very small (but useful) update: the thread selection dropdown box shows the actual CPU time used by each thread during profiling.
New Features/Fixes:
- PDF user manual included
- Progress dialog shows loading of debug info
- Prompting for saving of profile data before closing program/profiling again/loading a profile from file
- Crash fix when clicking on profile view column headers
- Installer improvements
This is the first release of Luke Stackwalker, a windows C/C++ code profiler. Try it out if you are interested in understanding the performance of your software.