Fix single stepping on the debugger.. for Construct 2

New releases and general discussions.

Post » Sun Aug 30, 2009 6:56 pm

There are several times where I'm trying to figure out how a certain object works or how to implement some complex game logic. When writing regular code I'll turn to the debugger or old trusty print statements. Don't get me wrong... I think Construct is awesome and I get by with only print statements, but it would be less frustrating if we could single step in the debugger when troubleshooting.

Unfortunately, I don't think this will eliminate many questions since most beginners will probably never bother using the debugger or will just ask questions instead trying to figure out on their own. So I guess this is mostly a Construct 2 request.
B
8
S
3
G
7
Posts: 835
Reputation: 5,313

Post » Sun Aug 30, 2009 8:23 pm

I have better proposal, maybe. UltraExplorer ([url:3pcwdjiq]http://www.mustangpeak.net/ultraexplorer.html[/url:3pcwdjiq]) has in-built debugger (reporting tool). In case of crash - it pops up. I think, games, created by Construct, should also have some kind of such feature.

P.S. scidave, can I ask you to post any crash log from Construct debugger, just wonder how it looks. :wink:
B
2
S
1
G
3
Posts: 102
Reputation: 1,304

Post » Sun Aug 30, 2009 8:45 pm

@Yaraslau Windows already has a built in just-in-time debugger called DrWatson. During a crash, by default, it will post a minidump of the crash info to c:\documents and settings\All users\Application Data\Microsoft\Dr Watson. You can then read the crash dump with the free debugger Windbg. It also dumps a .txt file that is readable by any text editor.

Unless, you are good at reading crash dumps, the minidump info is not particularly helpful though. I would think that this would help the Construct developers, but they have told me it is that useful. I would agree that it isn't as nice as having the actual .cap.

If you have ever had Construct crash on you search for drwt32sn.log and user.dmp and you will see what crash dumps look like.
B
8
S
3
G
7
Posts: 835
Reputation: 5,313

Post » Sun Aug 30, 2009 10:07 pm

Crash dumps are completely useless to Construct users though, so an improved debugger would be good for Construct 2.
Scirra Founder
B
359
S
214
G
72
Posts: 22,952
Reputation: 178,630

Post » Sun Aug 30, 2009 11:01 pm

Yes, agreed. Would love to have a better runtime debugger for Construct 2. I don't know why a user would care about crash dumps besides curiosity.

@Ashley I am curious why crash dumps aren't useful for the developers though. For some of these intermittent bugs that we have trouble duplicating, I would think a crash dump would provide value to the developer. Just wondering how the testers can better help the developers eliminate bugs.
B
8
S
3
G
7
Posts: 835
Reputation: 5,313

Post » Sun Aug 30, 2009 11:10 pm

Crash dumps don't provide information on why the program went wrong, it's just a big dump of the state of the memory and system when the problem happened. It's probably useful to hardcore assembly programmers who deal with the machine-level instructions, but Construct is written in much higher level C++, so finding anything useful in a thousand pages of binary that actually related to the problem at all is definitely finding the needle in the haystack.

Fixing problems is 1000x easier if the developer can reproduce the problem and debug the entire execution of the program, to watch the steps that happen and lead up to causing the problem. A dump of the system state doesn't really help with that.
Scirra Founder
B
359
S
214
G
72
Posts: 22,952
Reputation: 178,630

Post » Mon Aug 31, 2009 7:18 pm

[quote="scidave":ppvawpkh]@Yaraslau Windows already has a built in just-in-time debugger called DrWatson. During a crash, by default, it will post a minidump of ........................[/quote:ppvawpkh]

Hm, debugger in Windows is intended for debugging devices and drivers (if I'm not mistaken). Certainly, such dumps are useless for Construct.

I managed to crush UltraExplorer. Look at it here (as example):
disasm


stack dump


cpu regs


hardware


processes


modules


call stacks


general


Suppose, something like this will be implementing in future.
B
2
S
1
G
3
Posts: 102
Reputation: 1,304

Post » Mon Aug 31, 2009 9:24 pm

[quote="Yaraslau":3uoqfj7x]
Hm, debugger in Windows is intended for debugging devices and drivers (if I'm not mistaken). Certainly, such dumps are useless for Construct.[/quote:3uoqfj7x]

Actually, the Windows debugger (Windbg) debugs user mode applications (like Construct) just as easy as devices and drivers. I use it all the time for this. It will do everything that Ultraexplorer does and more. You can use it as a just-in-time debugger (not just to deal with crash dumps).

However, I don't see the point in adding any of this functionality to Construct (whether it be Windbg or Ultraexplorer). Users don't need to debug crashes and they don't need to see call stacks, dissasembly, and registers, etc.... What they need is a simple "source code"/event debug capability where they can single step events and step into Functions, etc.. A very small subset of what a normal debugger can do.
B
8
S
3
G
7
Posts: 835
Reputation: 5,313

Post » Mon Aug 31, 2009 9:25 pm

I don't think users are interested in doing the debugging, it requires a high level of technical expertese. Those who are interested can always download the source code and build debug builds themselves, using the full Visual Studio debugger, which is very good.
Scirra Founder
B
359
S
214
G
72
Posts: 22,952
Reputation: 178,630

Post » Thu Apr 18, 2013 3:44 am

I think what is needed most for debugging is not a crash report. There are so many ways my games go wrong without crashing.

It would be nice to be able to highlight the line of code that construct is about to execute, like in visual basic. With the stroke on the keyboard, the program goes on to execute the next line of code.

That way, we can see exactly what line is being executed at what time, and what state the variables are in. Once my games get to 100+ lines, this feature would be very helpful.

It would also be useful as a tool to teach newcomers about programming logic - how simply swapping the position of two lines can mean the difference between working and busting the game.

All in all, love using Construct 2.

thanks Scirra!
B
16
S
2
Posts: 80
Reputation: 1,457

Next

Return to Construct Classic Discussion

Who is online

Users browsing this forum: No registered users and 0 guests