New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DRWTSN32] Initial rough implementation #145
Conversation
\o/ |
|
||
set_cpp(WITH_RUNTIME WITH_EXCEPTIONS WITH_STL) | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Extra newline
@@ -0,0 +1,118 @@ | |||
#include "precomp.h" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing code source copyright header.
case CREATE_PROCESS_DEBUG_EVENT: | ||
{ | ||
data.ProcessPath.resize(MAX_PATH); | ||
DWORD len = GetModuleFileNameExA(evt.u.CreateProcessInfo.hProcess, NULL, &data.ProcessPath[0], data.ProcessPath.size()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about using UNICODE everywhere?
But then the STL stuff should be like std::wstring & co.
Unless you want to use ATL?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Eventually I want to print this to a file instead of stdout, and then UNICODE is not really convenient.
Status = STATUS_NOTHING |
Here is the code of the logger I'm working on based on your code. I want it to be able to log a backtrace for the exceptions it may encounter so in the end the two will share a lot of code: https://github.com/yagoulas/reactos/blob/roslogger/base/applications/roslogger/roslogger.cpp |
Please don't add an unique identifier. |
@Mouvedia , you are completely out of topic. That spying thingie is when reports are sent onto the internet to MS. Here the PR is about just a mere post-mortem debugger. |
@HBelusca if you are planning to send the crash reports sometime in the future it will become relevant. |
It's a valid concern, although not for the current implementation. |
I was talking about |
What does the MachineGuid registry key have to do with this? This is a drwatson PR, implementing a debugging tool. That key is used exclusively by the cryptographic components. |
Please keep your tin foil hat BS out of this PR, thanks. |
fix module name printing, bail out on a too long stacktrace, drop crashdump on the desktop.
Fix output of version, fix infinite loops in the stackwalk
The disassembly of the offending function will be added later, I want to go ahead and get this in. (After reviewing, all commits will be squashed to one) |
return true; | ||
} | ||
break; | ||
case 0x406d1388: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Magic value
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair enough :)
On application crash, drwtsn32 will attach to the application and try to get a dump, consisting of: - List of loaded modules - List of loaded threads - Per thread, a stacktrace - Per thread, a small hexdump from the stack - Per thread, a dump of the most common registers This dump is saved to the desktop, and the user is notified of the dump being dropped there. CORE-14180 reactos#145
On application crash, drwtsn32 will attach to the application and try to get a dump, consisting of: - List of loaded modules - List of loaded threads - Per thread, a stacktrace - Per thread, a small hexdump from the stack - Per thread, a dump of the most common registers This dump is saved to the desktop, and the user is notified of the dump being dropped there. CORE-14180 reactos#145
Purpose
This aims to add a rough sketch of how drwtsn32 could look like.
DrWtsn32 is a crash reporter.
TODO