在VC6中如何调试进去子进程(高分!!)
我新建了一个工程
这个工程编译后会生成一个C:\xx.exe执行文件
我在这个工程的某个地方使用
CreateProcess(NULL, "C:\xx.exe", ...)
创建了一个新的子进程(相当于调用了自身)
请问我怎么样才能调试跟踪进取这个CreateProcess出来的进程内部?
如果子进程是另外的可调试执行文件呢
又是如何进行调试?
也就是说
在VC6中怎么才能调试进取子进程???
先谢过各位大人啦!!
UP者有分!
先给100分,解决之后再加200分!!!
[解决办法]
在新的进程的开头加assert(false)
[解决办法]
子进程运行起来后,另运行一个MSDEV,然后Build->Start Debug->Attach to process,然后打开子进程的某个源文件,设置断点即可跟踪。
[解决办法]
你是要用你的程序来调试那个新创建的xx.exe进程呢还是用调试器调试xx.exe进程?
如果是程序调试的话,进程是你创建的,用调试API,没有问题。
如果使用调试器来调试xx.exe进程:
1.如果有xx.exe的代码,在xx.exe代码的要调试的地方插入一行:__asm int 3;
2.如果没有xx.exe的代码:A. 等xx.exe启动后,在任务管理器上找到xx.exe,右键菜单:调试
B. 需要一点点PE文件格式知识,修改xx.exe的入口点,入口点的第一个字节改成0xcc。改
之前要记得被改的这个值。等他被CreateProcess后,调试器会弹出来的。然后把那个字
节改回去。记得调试器先要设置just in time debug选项。
[解决办法]
这个就是Windows比较恶的地方,其实子进程已经和父进程没有了任何联系,关注
[解决办法]
有些情况下,还是可以有关系的,父进程的句柄可以让子进程继承~
[解决办法]
mark
[解决办法]
不懂 ,也在关注中。。。
[解决办法]
打开新的VC,然后Build->Start Debug->Attach to process。
最后打开要调试的文件设断点就可以调试了
[解决办法]
attach是一种办法. 还有就是可以在CreateProcess时候Create一个调试工具,在调试工具中带上参数启动你要调试的程序.
[解决办法]
mark
[解决办法]
mark
[解决办法]
PDB