Stefan via TortoiseSVN-dev wrote:
On Tuesday, January 30, 2018 at 6:47:05 PM UTC+1, Julian Foad wrote:
Is there a guide explaining to ordinary users how to get a stack
trace when TortoiseSVN crashes?
Since assertions failures in TSVN lead to it showing a dialog, you won't
get a crash.
You can use the procdump tool:
https://docs.microsoft.com/en-us/sysinternals/downloads/procdump
to create a crash dump.
Thank you.
It was not obvious to me how a user should use ProcDump for this, so I
have investigated and come up with this recipe.
1. Download Procdump.zip file from
https://docs.microsoft.com/en-us/sysinternals/downloads/procdump .
2. Extract 'procdump64.exe' (for 64-bit Windows) or 'procdump.exe'
(for 32-bit) from the zip file to some path.
3. Run TortoiseSVN, and when it displays the assertion failure, leave
it displaying that.
4. Run procdump like this, in a Windows command prompt (replacing
\path\to\ with the path where you saved it):
\path\to\procdump64.exe -accepteula tortoiseproc
It should display something like:
ProcDump v9.0 - Sysinternals process dump utility
[...]
[20:35:50] Dump 1 initiated: C:\...\TortoiseProc.exe_180131_203550.dmp
[20:35:51] Dump 1 complete: 4 MB written in 0.2 seconds
[20:35:51] Dump count reached.
5. Find the file that ProcDump saved
('C:\...\TortoiseProc.exe_180131_203550.dmp' in this example) and send
it to the developer who is going to debug the issue.
Do you think it is worth adding this info to the FAQ, round about here:
https://tortoisesvn.net/faq.html#debug ?
Then I attempted to test the above recipe, but with no success. This is how:
I inserted "SVN_ERR_ASSERT_NO_RETURN(0);" at the beginning of
svn_client_merge_peg5() in my debug build of libsvn_tsvn.dll. I used the
trick of running TortoiseMerge in debug mode, opening its file-select
dialog, then invoking TSVN from the context menu in there to access my
debug build of TortoiseSVN. I clicked through TortoiseSVN's 'Merge...',
got a dialog showing my injected assertion failure, saved the process
dump, loaded that dump file into Visual Studio which showed a "mini dump
summary", configured the symbols path, chose the action "Debug with
Native Only", and looked at the stack trace shown.
The stack trace shown only contained TortoiseProc.exe entries. The other
slots were just showing "[External Code]".
I also tried adding two local symbols paths in addition to the URL:
C:\Users\Julian\source\TSVN\bin\Debug64\bin
C:\Users\Julian\source\TSVN\ext\Subversion\debug_x64
because I thought it might need those, but this made no difference.
Any idea why the stack trace within libsvn_tsvn.dll is not showing in my
test scenario?
- Julian
--
You received this message because you are subscribed to the Google Groups
"TortoiseSVN-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/tortoisesvn-dev/d28f4d6d-4431-97d0-cdc6-1ed9ce43ae90%40gmail.com.
For more options, visit https://groups.google.com/d/optout.