DebugMonitor - More mystical than magnets?

  • This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.
Sep 1, 2008
21
0
#1
OK. I'm stumped. I had assumed from the name and (currently) sparse documentation that DebugMonitor was basically a command line version of DebugView's basic functionality. Basically a 'tail /f' for the reading the OutputDebugString() API.

Could I get a little help? I can't quiet intuit the usage or what it's for. It seems to let me register or clear commands. Maybe those commands get run with stdin set to the outputdebugstring content? Once I realized I didn't know what was going on, I didn't want to gen any debug string info as I really wasn't sure what would happen.
 

samintz

Scott Mintz
May 20, 2008
1,229
11
Solon, OH, USA
#2
I see the _OutputDebugString variable getting set properly. However, I think the function does not execute as it is documented.
For instance, what is the condition that gets triggered?

DEBUGMONITOR n command​

n Number of repetitions (or FOREVER)​
command
Command to execute when condition is triggered
 
Sep 1, 2008
21
0
#3
I see the _OutputDebugString variable getting set properly. However, I think the function does not execute as it is documented.
For instance, what is the condition that gets triggered?
Ya know - lame as it may be, I think what I really want is a device 'DBG:' that is like 'clip:' except reading reads the debugoutputstring data (typically blocking), and writing to it generates OutputDebugString() calls. Then I could just use it with tail/f and whatever other tools I'm used to.
 
#4
Hi,
I am using;

Code:
TCC  14.00.16  Windows XP [Version 5.1.2600]
TCC Build 16  Windows XP Build 2600  Service Pack 3
I wrote a test program in PowerBASIC, TEST.EXE, thus;

Code:
#COMPILE EXE
#DIM ALL
#INCLUDE "WIN32API.INC"
 
FUNCTION PBMAIN () AS LONG
  OutputDebugString("JLC")
END FUNCTION
If I do,

Code:
debugmonitor FOREVER msgbox OK TCC
then execute,

Code:
test.exe & echo %_outputdebugstring
I get;

Code:
JLC
but the msgbox does not display. I really do not need any command to execute when the condition is triggered, though, so in my case the msgbox is just filler.

I used to use the DBWin32.exe program to monitor OutputDebugString(), and may still use it, but Debugmonitor seems to eliminate the need for that program now.

Joe
 

rconn

Administrator
Staff member
May 14, 2008
10,210
86
#5
OK. I'm stumped. I had assumed from the name and (currently) sparse documentation that DebugMonitor was basically a command line version of DebugView's basic functionality. Basically a 'tail /f' for the reading the OutputDebugString() API.
There's a typo in the DEBUGMONITOR code, so it wasn't setting the flag that would enable executing the specified command. (But _outputdebugstring *was* being set correctly.)

It's been fixed for build 17.
 
Sep 1, 2008
21
0
#6
There's a typo in the DEBUGMONITOR code ... It's been fixed for build 17.
Hi Rex - sorry to keep bugging you. Is there a way I would use DebugMonitor in a 'tail /f' scenario where I just want to block and dump the channel? I'm assuming it I just tied to to 'echo' it would be async and dumping info in the middle of my session?

I feel like I'm just not 'getting it'.
 

rconn

Administrator
Staff member
May 14, 2008
10,210
86
#7
Hi Rex - sorry to keep bugging you. Is there a way I would use DebugMonitor in a 'tail /f' scenario where I just want to block and dump the channel? I'm assuming it I just tied to to 'echo' it would be async and dumping info in the middle of my session?
Start a new session (tab window). You'll get the same results if you're blocking in one window, versus non-blocking in two but the second one is only displaying DEBUGMONITOR output.