Visual D no bp's on x64
Mike B Johnson via Digitalmars-d-debugger
digitalmars-d-debugger at puremagic.com
Sun Jun 18 07:17:44 PDT 2017
in the last 20mins I did the following
1. Create a new DMD/LDC project
2. Added the code
import std.stdio;
import core.sys.windows.windows;
import std.array, std.conv;
int main(string[] argv)
{
wchar* pCmd = cast(wchar*)to!wstring(argv.join(" ")).ptr;
STARTUPINFO si;
//ZeroMemory( &si, sizeof(si) );
si.cb = si.sizeof;
PROCESS_INFORMATION pi;
//ZeroMemory(&pi, sizeof(pi));
// Start the child process.
BOOL result = CreateProcess
(
NULL, // No module name (use command line)
pCmd, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set bInheritHandles to FALSE
DETACHED_PROCESS, // Detach process
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi // Pointer to PROCESS_INFORMATION structure (returned)
);
if (result) return 0;
wchar[2048] msg;
FormatMessage
(
FORMAT_MESSAGE_FROM_SYSTEM,
null,
GetLastError(),
cast(uint)MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT),
msg.ptr, cast(uint)2048,
null
);
writeln(msg[0..lstrlen(msg.ptr)]);
return -1;
}
3. Modified the command args in the options. Added cmd /c echo
hello
4. Then went to debug it by putting a bp on the first line so I
could check and ran it. Guess what? The program opened and
closed. I've ran in to this problem before.
5. I added a bunch of bp's thinking it was just a problem with
the first one(as that is how I get around it before).
6. Ran the program. Same thing. Ran the program. Same thing. I
noticed that the bp's were turning white the split second the
program was active.
hmmm... I then noticed the program was being built for x64.
7. I then changed it to x86 and voilĂ !
So, there is some issue with x64 and visual d's debugging in
visual studio. That is the only file in the project. If it works
on your system, keep trying until it doesn't!
More information about the Digitalmars-d-debugger
mailing list