Does DebugActiveProcessStop close handles?
According to the documentation, ContinueDebugEvent will close handles after EXIT_THREAD_DEBUG_EVENT and EXIT_PROCESS_DEBUG_EVENT.
What happens to those handles in the following case:
DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger.
DebugActiveProcessStop(dwProcessId);
The process and threads will still be running, and the documentation doesn't mention anything about handles. Can I assume that they will be closed for me?
windows debugging winapi
add a comment |
According to the documentation, ContinueDebugEvent will close handles after EXIT_THREAD_DEBUG_EVENT and EXIT_PROCESS_DEBUG_EVENT.
What happens to those handles in the following case:
DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger.
DebugActiveProcessStop(dwProcessId);
The process and threads will still be running, and the documentation doesn't mention anything about handles. Can I assume that they will be closed for me?
windows debugging winapi
add a comment |
According to the documentation, ContinueDebugEvent will close handles after EXIT_THREAD_DEBUG_EVENT and EXIT_PROCESS_DEBUG_EVENT.
What happens to those handles in the following case:
DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger.
DebugActiveProcessStop(dwProcessId);
The process and threads will still be running, and the documentation doesn't mention anything about handles. Can I assume that they will be closed for me?
windows debugging winapi
According to the documentation, ContinueDebugEvent will close handles after EXIT_THREAD_DEBUG_EVENT and EXIT_PROCESS_DEBUG_EVENT.
What happens to those handles in the following case:
DebugSetProcessKillOnExit(FALSE); // Keep the process running after stopping the debugger.
DebugActiveProcessStop(dwProcessId);
The process and threads will still be running, and the documentation doesn't mention anything about handles. Can I assume that they will be closed for me?
windows debugging winapi
windows debugging winapi
asked Nov 18 '18 at 17:57
user1000039user1000039
3651312
3651312
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
yes, DebugActiveProcessStop call CloseAllProcessHandles before do actual stop debugging via DbgUiStopDebugging call. the CloseAllProcessHandles close all opened thread and process handles. it list stored in thread TEB - this mean that call must be done only from the same thread which call other debug api (such WaitForDebugEvent). unfortunately i also not view confirmation of this in documentation, only research. this screenshot from win10

1
Shame it isn't documented, but this seems to answer it. Thanks!
– user1000039
Nov 18 '18 at 20:28
@user1000039 - this tricks with handles,DebugActiveProcessimplementation (which create thread in debugged process) , impossible combine wait for debug events and gui messages at once - reason why i personally not use win32 debug api but DbgUi api
– RbMm
Nov 18 '18 at 20:57
@user1000039 - also in User-Mode Debugging Internals Article Alex Ionescu note aboutCloseAllProcessHandles. but i not msdn documentation for this
– RbMm
Nov 18 '18 at 21:20
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53363884%2fdoes-debugactiveprocessstop-close-handles%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
yes, DebugActiveProcessStop call CloseAllProcessHandles before do actual stop debugging via DbgUiStopDebugging call. the CloseAllProcessHandles close all opened thread and process handles. it list stored in thread TEB - this mean that call must be done only from the same thread which call other debug api (such WaitForDebugEvent). unfortunately i also not view confirmation of this in documentation, only research. this screenshot from win10

1
Shame it isn't documented, but this seems to answer it. Thanks!
– user1000039
Nov 18 '18 at 20:28
@user1000039 - this tricks with handles,DebugActiveProcessimplementation (which create thread in debugged process) , impossible combine wait for debug events and gui messages at once - reason why i personally not use win32 debug api but DbgUi api
– RbMm
Nov 18 '18 at 20:57
@user1000039 - also in User-Mode Debugging Internals Article Alex Ionescu note aboutCloseAllProcessHandles. but i not msdn documentation for this
– RbMm
Nov 18 '18 at 21:20
add a comment |
yes, DebugActiveProcessStop call CloseAllProcessHandles before do actual stop debugging via DbgUiStopDebugging call. the CloseAllProcessHandles close all opened thread and process handles. it list stored in thread TEB - this mean that call must be done only from the same thread which call other debug api (such WaitForDebugEvent). unfortunately i also not view confirmation of this in documentation, only research. this screenshot from win10

1
Shame it isn't documented, but this seems to answer it. Thanks!
– user1000039
Nov 18 '18 at 20:28
@user1000039 - this tricks with handles,DebugActiveProcessimplementation (which create thread in debugged process) , impossible combine wait for debug events and gui messages at once - reason why i personally not use win32 debug api but DbgUi api
– RbMm
Nov 18 '18 at 20:57
@user1000039 - also in User-Mode Debugging Internals Article Alex Ionescu note aboutCloseAllProcessHandles. but i not msdn documentation for this
– RbMm
Nov 18 '18 at 21:20
add a comment |
yes, DebugActiveProcessStop call CloseAllProcessHandles before do actual stop debugging via DbgUiStopDebugging call. the CloseAllProcessHandles close all opened thread and process handles. it list stored in thread TEB - this mean that call must be done only from the same thread which call other debug api (such WaitForDebugEvent). unfortunately i also not view confirmation of this in documentation, only research. this screenshot from win10

yes, DebugActiveProcessStop call CloseAllProcessHandles before do actual stop debugging via DbgUiStopDebugging call. the CloseAllProcessHandles close all opened thread and process handles. it list stored in thread TEB - this mean that call must be done only from the same thread which call other debug api (such WaitForDebugEvent). unfortunately i also not view confirmation of this in documentation, only research. this screenshot from win10

answered Nov 18 '18 at 20:08
RbMmRbMm
17.8k11224
17.8k11224
1
Shame it isn't documented, but this seems to answer it. Thanks!
– user1000039
Nov 18 '18 at 20:28
@user1000039 - this tricks with handles,DebugActiveProcessimplementation (which create thread in debugged process) , impossible combine wait for debug events and gui messages at once - reason why i personally not use win32 debug api but DbgUi api
– RbMm
Nov 18 '18 at 20:57
@user1000039 - also in User-Mode Debugging Internals Article Alex Ionescu note aboutCloseAllProcessHandles. but i not msdn documentation for this
– RbMm
Nov 18 '18 at 21:20
add a comment |
1
Shame it isn't documented, but this seems to answer it. Thanks!
– user1000039
Nov 18 '18 at 20:28
@user1000039 - this tricks with handles,DebugActiveProcessimplementation (which create thread in debugged process) , impossible combine wait for debug events and gui messages at once - reason why i personally not use win32 debug api but DbgUi api
– RbMm
Nov 18 '18 at 20:57
@user1000039 - also in User-Mode Debugging Internals Article Alex Ionescu note aboutCloseAllProcessHandles. but i not msdn documentation for this
– RbMm
Nov 18 '18 at 21:20
1
1
Shame it isn't documented, but this seems to answer it. Thanks!
– user1000039
Nov 18 '18 at 20:28
Shame it isn't documented, but this seems to answer it. Thanks!
– user1000039
Nov 18 '18 at 20:28
@user1000039 - this tricks with handles,
DebugActiveProcess implementation (which create thread in debugged process) , impossible combine wait for debug events and gui messages at once - reason why i personally not use win32 debug api but DbgUi api– RbMm
Nov 18 '18 at 20:57
@user1000039 - this tricks with handles,
DebugActiveProcess implementation (which create thread in debugged process) , impossible combine wait for debug events and gui messages at once - reason why i personally not use win32 debug api but DbgUi api– RbMm
Nov 18 '18 at 20:57
@user1000039 - also in User-Mode Debugging Internals Article Alex Ionescu note about
CloseAllProcessHandles. but i not msdn documentation for this– RbMm
Nov 18 '18 at 21:20
@user1000039 - also in User-Mode Debugging Internals Article Alex Ionescu note about
CloseAllProcessHandles. but i not msdn documentation for this– RbMm
Nov 18 '18 at 21:20
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53363884%2fdoes-debugactiveprocessstop-close-handles%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown