Hay al menos 2 cosas posibles que podría significar cuando dice que quiere romper en la creación del hilo:
- salto dentro del hilo creador antes que el nuevo mensaje ha sido creado
- Divida dentro del hilo NUEVO antes de llamar a la función proporcionada por el usuario.
Para la primera opción, querrá dividir en CreateThread, _beginthread o _beginthreadex.
Para la segunda opción, deseará dividir en RtlUserThreadStart o BaseThreadInitThunk para detectar el nuevo subproceso al principio de su ejecución antes de que se llame al código de usuario.
Desafortunadamente, Visual Studio no interrumpirá esas funciones si crea un punto de interrupción con los nombres de las funciones que he enumerado anteriormente, al menos no de forma predeterminada. El problema es que para la depuración nativa, no carga las exportaciones de DLL de manera predeterminada, y sin eso, el depurador no tiene idea de dónde encontrar los nombres que he proporcionado anteriormente.
Antes de comenzar a depurar, en Visual Studio vaya a herramientas, opciones, depuración y luego expanda el árbol de opciones de depuración en el panel izquierdo. Luego haga clic en "native" y marque "Cargar Exportaciones de DLL". Entonces puede comenzar a depurar su ejecutable nuevamente.
Después de eso, debería ser capaz de crear un punto de interrupción en cualquiera de las funciones que he mencionado escribiendo el nombre. Usted puede o no ser necesario especificar el archivo DLL de la función está en el punto de interrupción mediante la creación con el nombre de la siguiente manera:
{} ,, kernel32.dll CreateThread
o
{,, ntdll. DLL} RtlUserThreadStart
me dieron esta información iniciando aquí:
https://blogs.msdn.microsoft.com/reiley/2011/07/26/debugging-tips-for-multi-threaded-application/
y haciendo algo de expe rimente por mi cuenta. Sé que esta es una respuesta a una vieja pregunta, pero espero que esto le ahorre a otras personas el dolor que he tenido al intentar depurar los bloqueos que ocurren inmediatamente después del inicio de la secuencia.
¿Alguna vez resolvió esto? –
@Derek Tomes: No lo hice. No estoy trabajando con Windows o Visual Studio en estos días, por lo que ya no estoy buscando una solución. – pauldoo