Skip to main content
gamedev.net
🔒 Locked

Debugging DirectX with remote debugger

Started by tployaert Aug 25, 2000 at 10:02 AM 7 replies 850+ views
Original Post
tployaert
tployaert
I want to debug my DirectX fullscreen app and i heard about remote debugger. I see the option in VC++6.0 but don''t know how to handle it: I have a old 486 8 Meg/WIN 3.1, does it suffice to use remote debugger ? In a book on DirectX it is mentioned that it works with a simple terminal... else what is the minimum configuration ? Do I need network or simple null cable will suffice ? Does it works well (if anyone use it)? Thank you for help ! I have fed up with blind debugging ... Thierry
felonius
felonius
I couldn''t get the remote debugger in MVC++ to run either but after what I tried using the one in Watcom C++ it is so slow that it not worth the effort.

If however you want to use the debugger to debug full screen applications I recommend buying an extra monitor and display card and use one monitor for the debugger (the regular one) and one for the game.

The thing about the terminal is something else alltogehter. The debug version of the DirectX dll emits a lot of debug info (the quantaty depending on the slider setting for that in the directX settings for the SDK) that is useful when debugging. The information is emitted using OutputDebugString() from the win32 API and is sent to your message window in the debugger or:

1. If you are using Windows NT you can change a setting in one of the system files so debug info is sent over network or through the serial port to a dumb terminal.

2. If you are not using NT you cannot do this (at least I don''t know how). Instead you can download the free utility DebugView from www.sysinternals.com that allows you to see debug messages while the system is running - it works either on the same machine or over the network (if you establish a TCP/IP connection over a null modem that should do too) and will print all debug messages. It is actually quite interesting to run various program and se their debug messages - a lot is still present in many commercial programs.

Hope this answers your questions.

Jacob Marner
Jacob Marner, M.Sc.Console Programmer, Deadline Games
tployaert
tployaert
Thanks for help ...
What do you mean with your extra monitor and extra card on the same PC ? I know win98 manages extra monitor but how do you setup this in VC++ or is it a Direct X feature ?

Thierry
MadButch
MadButch
Remote debugging works PERFECTLY!!!!
This is one area I always wondered about.. how the h#ll do you debug a full screen app???

I''ve started game developing 2 months ago... full screen app.. debugging was a pain.. untill.. Remote Debugging!

setup:
2 systems.. 1 Celeron@525 (remote) and 1 Athlon@700 (host)
Both with Windows 98 SE

Read the part in the MSDN help about "starting remote debug".
Check my games out at:http://www.GamePlayHeaven.com
tployaert
tployaert
OK. I have actually two PII 300 with Windows 98 and a null modem cable. The problem is I cannot create a connection by null modem:
this is my question in "General programming forum":
"How do you setup a null modem connection with WIN98 ?
I have added a null modem with the Modems icon in the configuration panel but the modem appeared only in the
system/peripherals/modems and not in the modem list when
i try to create a new remote connection ...
So i cannot create my tcp-ip connection with a null modem cable.
Do someone have any idea to solve my problem ?
"

MadButch, how do you setup your remote debugging configuration ?
MSDN part doesn''t help me so much ...

Thierry
felonius
felonius
About the dual monitors...

When you have installed both dislpay cards and monitors on your windows 98 machine the extra monitor becomes a part of your desktop but full screen aplications only use one of them.

Simply drag the MVC++ window to the second monitor with the mouse, maximize it there and start. The application run will use your first monitor - unless your program explicitly forces it to use the second - which you can see by running the directX MultiMon sample.

You can use an old monitor and display card for this so don''t waste a lot of money. Grab one from an old machine if you have one.

And about remote debugging - even when using it the info has to go ever the network when you step through your program. Unless you have a *very* fast network this *must* be slower than debugging on the same machine - which is why a prefer the dual monitor solution.

And once you have gotten use to two monitors you can''t live without them. It is always good to have extra desktop space to allow you to see more applications at one time.

Conclusion: No special setup needed for 2 monitors. Just install in Windows 98.

Jacob Marner
Jacob Marner, M.Sc.Console Programmer, Deadline Games
tployaert
tployaert
Thank you, I will try your solution ...

Thierry
MadButch
MadButch
I don''t know how it works using a null modem cable. But if you have only 2 pc''s, you can buy 2 100MBit network cards for 30 us dollar, that''s not much...

debugging over the network is slower then over on the same system, but what speed are we talking about here? It''s definately fast enough to step to your program and have instant updates. When using 100MBit networks, the speed is no problem at all.

Also, remote debugging is more of a "real live" debug, meaning that your app is running on it''s own system.
If you debug on the same system, you''re sharing the keyboard buffer for example...
So make sure your keyboard handling is working fine before using dual monitors

Here''s how I did it...
2 pc''s, cheap 100MBit pci networks cards (ReadyLink). MS Visual Studio installed on both machines.

Hostmachine ("Gamestation" IP 192.168.112.1 SUBNET 255.255.255.0):
Workdir = C:\WORK\PROJECTNAME
Extra directory share = C:\WORK\PROJECTNAME\DEBUG
share name = DEBUG
In MSVC6 menu: Build -> Debugger Remote Connection
Connection = Network TCP/IP
Settings, Target machine = Workstation
In MSVC6 menu: Project -> Settings
make sure you select the project name in the tree (left side)
on the DEBUG tab, set remote debug to = M:\PROJECTNAME.exe


Debugmachine ("Workstation" IP 192.168.112.2 SUBNET 255.255.255.0):
Drive mapping (drive M) to \\Gamestation\DEBUG
Run MSVCMON.EXE (probably in your MSDev98\Bin dir, otherwise search for it)
Connection = Network TCP/IP
Settings, Target machine = Gamestation
Click connect...
it will now start waiting for your debug

Your ready to go!
Check my games out at:http://www.GamePlayHeaven.com

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.