[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::debug

Title:DEBUG
Notice:Updated locations for reporting QARs -- see note 834.1
Moderator:LOWFAT::DIETER
Created:Fri Jan 24 1986
Last Modified:Wed Jun 04 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:1868
Total number of notes:8200

1843.0. "-E-OPNOTALLOW in WHEN clause.." by COMEUP::SIMMONDS (lock (M); while (not *SOMETHING) { Wait(C,M); } unlock(M)) Wed Mar 05 1997 21:50

    [OpenVMS Alpha V6.2-1H3  + ALPDEBU05_070 ECO, using Motif GUI]
    
    With Language : AMACRO, I try to set a conditional breakpoint like
    
    DBG> set break MOD\%LINE 7555  When(%R0 NEQ 1) Do(Exam %R0)
    DBG> go
    
    but when it comes time (hit breakpoint) to inspect the WHEN clause,
    DEBUG says:
    
    "%DEBUG-E-OPNOTALLOW, operator 'CONVERT' not allowed on given data types"
    
    Am I using an invalid conditional expression ?
    
    
    Any help wildly appreciated!
    John.
T.RTitleUserPersonal
Name
DateLines
1843.1SSPADE::SSPADE::HILDEFri Mar 07 1997 18:1620
> Am I using an invalid conditional expression?

No.  What you are doing SHOULD work...but doesn't in V6.2...fixed in V7.0.
There was a conversion graph bug for AMACRO.  The only work around
that I can think of is SET LANGUAGE to something else, I would suggest
UNKNOWNN.  For example:

DBG_1> run DBG$TSTEVMSDEV:[TST]ASCIITEST; set sour/lat DBG$TSTEVMSDEV:[TST]
%DEBUG-I-INITIAL, language is AMACRO, module set to ASCIITEST
predefined trace on activation at ASCIITEST\START\%LINE 3 in %PROCESS_NUMBER 1
DBG_1> set lang unknown
DBG_1> set br %Line 4 when (%r0 eql 1) do (ex %r0)
DBG_1> g
break at ASCIITEST\START\%LINE 4 in %PROCESS_NUMBER 1
     4:         RET
ASCIITEST\START\%LINE 3\%R0:    00000000 00000001


Lon
1843.2good helpCOMEUP::SIMMONDSlock (M); while (not *SOMETHING) { Wait(C,M); } unlock(M)Sat Mar 08 1997 00:087
    Re: .1
    
    Ok, Lon, thanks for your helpful reply.. in the meantime, I'm also
    going to try out the ADB071 kit which Mary pointered me at, so all
    being well, I should be able to avoid that (simple) workaround..
    
    John.
1843.3%DEBUG-E-OPNOTALLOW, operator '==' not allowed...CADSYS::LARRICKFri Mar 28 1997 15:1150
This note seemed like as good a place for this as any for my question...

OpenVMS Alpha DEBUG Version V7.1-000, DEC C V5.2-003 on OpenVMS Alpha V7.1

I am attempting to set a breakpoint when a particular pointer is NULL in my C
program.  However, the debugger will not allow me to perform the comparison:

DBG> eval (temp_trace == 0)
%DEBUG-E-OPNOTALLOW, operator '==' not allowed on given data types

DBG> sho sym/full temp_trace
data FOO\main\temp_trace
    address: .%FP+8
    typed pointer type
        target type: record type (TRACE, 5 components), size: 20 bytes
DBG> ex temp_trace
FOO\main\temp_trace:    131208

temp_trace is a pointer to type TRACE; TRACE is a typedef name for struct TRACE.
Trimmed-down example program follows at the end of this message.


What am I doing wrong?  I believe this used to work with previous DEBUG/VMS
versions.

Thanks for any insight.

-Doug Larrick


Simple example program (foo.c):

#include <stdlib.h>

typedef struct TRACE {
  int last_x;  /* Keep track of last point added to blk_list */
  int last_y;
  int last_lay;
  int cost; /* Cost for this edge (non-cumulative) */
  int alt_level; /* Alternate level (for source/target node) */
} TRACE;

int main(void)
{
  TRACE *temp_trace;

  temp_trace = (TRACE *)malloc(sizeof(TRACE));

  return EXIT_SUCCESS;
}
1843.4SSPADE::ARSENAULTMon Mar 31 1997 17:253
You're right.  That stuff was broken between V6.2 and V7.0.  Sigh.

I'm fixing it right now.  The fix will appear in the next release.
1843.5CADSYS::LARRICKThu Apr 03 1997 13:525
> The fix will appear in the next release.

Thanks for the good news.

-Doug