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

Conference turris::decladebug

Title:Digital Ladebug debugger
Moderator:TLE::LUCIA
Created:Fri Feb 28 1992
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:969
Total number of notes:3959

853.0. "f77 int() intrinsic conflicts with ladebug?" by RHETT::SHEPPARD () Wed Feb 26 1997 15:56

[Unix v4.0a / f77 v4.1 / ladebug 4.0-27]

A customer points out some unexplained behavior when running ladebug
on a short f77 program.  In his original (lengthy) application is a
declaration of an integer array named "int". It apparently doesn't
collide with the f77 intrinsic function 'int()' and compiles/links
with no problems.

But when he uses ladebug to examine values in that array, he gets the
following error:

        ...
        (ladebug) p int(1)
        print int(1)
                ^
        Unable to parse input as legal command or Fortran expression.
        (ladebug)

Looks like the function 'int()' conflicts with some intrinsic info within
ladebug -- unless someone can propose another reason for this behavior ?
Unfortunately, he can't change the array name because he doesn't own the code.

I reproduced the behavior here with a short example:

      # cat q.f
      program mytest

      integer a(100)
      integer int(100)

      do i=1,50
        a(i)= i * 1
        int(i) = i * 10
      end do

      print *, "value of array element        a(5):", a(5)
      print *, "value of array element      int(5):", int(5)
      stop
      end

      # f77 -g q.f
      # a.out
      value of array element        a(5):           5
      value of array element      int(5):          50
      #



Here's a log of my ladebug session:
-----------------------------------

    # f77 -g q.f
    # ladebug a.out
    Welcome to the Ladebug Debugger Version 4.0-27
    ------------------
    object file name: a.out
    Reading symbolic information ...done

    (ladebug) stop at 11
    [#1: stop at "q.f":11 ]
    (ladebug) run
    [1] stopped at [mytest:11 0x120001594]
         11         int(i) = i * 10
    (ladebug) p a(1)
    1
    (ladebug) p int(1)
    print int(1)
            ^
    Unable to parse input as legal command or Fortran expression.
    (ladebug) quit
    #


So, are we looking at a limitation of ladebug ?
Other than getting access to sources and renaming all the int() array
references, might there be another workaround ?

Thanks in advance for any information or pointers !


                        Steve Sheppard
                        Digital Unix / Ultrix Applications Support Team
                        [email protected]

T.RTitleUserPersonal
Name
DateLines
853.1Can you see array int if you use upper case?SUBPAC::FARICELLIWed Feb 26 1997 16:597
   Hmmm. Try accessing the array in using upper case:

(ladebug) print INT(1)
10
(ladebug) whatis INT
integer*4 INT(1:100)
853.2...nope...RHETT::SHEPPARDThu Feb 27 1997 09:4754
Okay, I tried that but it didn't help...
Here are my results:

    % f77 -g q.f
    % ladebug a.out
    Welcome to the Ladebug Debugger Version 4.0-27
    ------------------
    object file name: a.out
    Reading symbolic information ...list 1-30
    done
    (ladebug) list 1-30
          1       program mytest
          2
          3       integer a(100)
          4       integer int(100)
          5       real k
          6
          7       k=3.333
          8
          9       do i=1,50
         10         a(i)= i * 1
         11         int(i) = i * 10
         12       end do
         13
         14       print *, "value of array element        a(5):", a(5)
         15       print *, "value of array element      int(5):", int(5)
         16
         17       stop
         18       end
    (ladebug) stop at 11
    [#1: stop at "q.f":11 ]
    (ladebug) run
    [1] stopped at [mytest:11 0x120001594]
         11         int(i) = i * 10
    (ladebug) p a(1)
    1
    (ladebug) p int(1)
    print int(1)
            ^
    Unable to parse input as legal command or Fortran expression.
    (ladebug) p INT(1)
    print INT(1)
            ^
    Unable to parse input as legal command or Fortran expression.
    (ladebug) whatis int()
    <function>*
    (ladebug) whatis INT()
    <function>*
    (ladebug) whatis int
    int int
    (ladebug) whatis INT
    int INT
    (ladebug)

853.3Rats...SUBPAC::FARICELLIThu Feb 27 1997 10:297
   Sigh. I've got an older version of decladebug (Version 4.0-14A)
   on my workstation. Guess that's why it works for me.

   Perhaps Tim can comment.

   -- John Faricelli
853.4TLE::MURRAYWanfang MurrayThu Feb 27 1997 11:497

I don't remember we have changed anything here will afect this 
since 4.0-14.  But, something must have changed  :-).   We will
look into this.

Wanfang
853.54.0-30 is no goRHETT::HALETKYWed Mar 12 1997 13:417
    
    
    Any status on this? 4.0-30 still has problems.
    
    
    -e dhaletky