<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Debugger on Alpha VMS 7.3-2 in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041326#M35917</link>
    <description>Patrick,&lt;BR /&gt;&lt;BR /&gt;  Unfortunately we have all been spolied by VAX architecture. It's a dream to debug, regardless of optimization. VAX assembler is easy to follow and most language constructs fall into a fairly obvious assembler sequence. There are also the "huge" instructions like CALL[x] and RET which do very complex things in a single hit.&lt;BR /&gt;&lt;BR /&gt;  On Alpha, there's really no such thing as /NOOPTIMIZE. If you were to compile most source code directly into sequential Alpha instructions performance would be terrible! /NOOPT really means "use as little optimization as possible, with half way decent performance". This means if you examine a particular block of assembly code, you'll find adjacent instructions still belong to different (and possibly widely separated) lines of code. DEBUG then has a dilemma. Either you religiously tag every instruction to a line of code, and bounce all over the place as STEP commands are executed, or you fudge things and gloss over some instructions, pretenting they belong to a different instruction.&lt;BR /&gt;&lt;BR /&gt;For routine calls, instead of a single VAX instruction, the compiler must generate a potentially complex sequence to setup actual arguments. Since this is a very common source of programming errors, you need to be able to single step through them.&lt;BR /&gt;&lt;BR /&gt;You may be able to achieve what you want with:&lt;BR /&gt;&lt;BR /&gt;DBG&amp;gt; STEP/CALL&lt;BR /&gt;DBG&amp;gt; STEP/INTO&lt;BR /&gt;&lt;BR /&gt;If you think the move from VAX to Alpha is hard for debuuging, wait until you see Integrity (where /NOOPT is all but impossible!).</description>
    <pubDate>Thu, 19 Apr 2007 20:31:51 GMT</pubDate>
    <dc:creator>John Gillings</dc:creator>
    <dc:date>2007-04-19T20:31:51Z</dc:date>
    <item>
      <title>Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041319#M35910</link>
      <description>Hi, am still getting used to developing on an Alpha, rather than a VAX.&lt;BR /&gt;A single difference with the debugger is very annoying- when stepping thru the code, STEP/INTO doesnt work immediately- one seems to have to hit STEP/INTO as many times as there are parameters on the subroutine/function , before entry. &lt;BR /&gt;Cant find if possible to change this behaviour in the manual. &lt;BR /&gt;(dont always want to SET BREAK)</description>
      <pubDate>Thu, 19 Apr 2007 06:51:20 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041319#M35910</guid>
      <dc:creator>Patrick R Benson</dc:creator>
      <dc:date>2007-04-19T06:51:20Z</dc:date>
    </item>
    <item>
      <title>Re: Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041320#M35911</link>
      <description>Is the code optimised and in what language is it written?&lt;BR /&gt;&lt;BR /&gt;It sounds like you are stepping through some code that processes the parameters.</description>
      <pubDate>Thu, 19 Apr 2007 07:40:27 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041320#M35911</guid>
      <dc:creator>Ian Miller.</dc:creator>
      <dc:date>2007-04-19T07:40:27Z</dc:date>
    </item>
    <item>
      <title>Re: Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041321#M35912</link>
      <description>Patrick,&lt;BR /&gt;&lt;BR /&gt;I too have never experienced what you describe. Can you be more specific?&lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
      <pubDate>Thu, 19 Apr 2007 07:45:56 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041321#M35912</guid>
      <dc:creator>Robert Gezelter</dc:creator>
      <dc:date>2007-04-19T07:45:56Z</dc:date>
    </item>
    <item>
      <title>Re: Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041322#M35913</link>
      <description>&lt;BR /&gt;What language?&lt;BR /&gt;&lt;BR /&gt;On alpha, for basic debugging, you really need to compile /NOOPT/DEBUG. Did you?&lt;BR /&gt;&lt;BR /&gt;This is because the compilers intermingle instructions from various source lines for optimal execution, so when you step it may be working on several lines at a time.&lt;BR /&gt;&lt;BR /&gt;Alpha may also have inlined the subroutines more aggresively than on VAX.&lt;BR /&gt;&lt;BR /&gt;And you are using STEP/LINE, not STEP /INST?&lt;BR /&gt;&lt;BR /&gt;On VAX, in MAcro and often in other languages, a single source line may well correspond to a single instruction. On Alpha that is almost never the case. There are always may little instruction steps.&lt;BR /&gt;&lt;BR /&gt;Hope this helps some,&lt;BR /&gt;Hein van den Heuvel (at gmail dot com)&lt;BR /&gt;HvdH Performance Consulting&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 19 Apr 2007 09:56:46 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041322#M35913</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2007-04-19T09:56:46Z</dc:date>
    </item>
    <item>
      <title>Re: Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041323#M35914</link>
      <description>Code is FORTRAN, not optimised- as its in debug.&lt;BR /&gt;&lt;BR /&gt;Building a demo has made me realise that its an artifact of debugger and continuation lines-&lt;BR /&gt;i.e.&lt;BR /&gt;        call testfun (cdum, idum1, idum2, idum3)&lt;BR /&gt;doesnt do it , whereas&lt;BR /&gt;        call testfun (cdum,&lt;BR /&gt;     +          idum1,&lt;BR /&gt;     +          idum2,&lt;BR /&gt;     +          idum3)&lt;BR /&gt;does.&lt;BR /&gt;&lt;BR /&gt;this may look trivial, in the demo ( I should just put all the parameters on one line) but when indented for IFs 5 or 6 times, and with variable names 10 or 12 chars long, the call ends up on RHS and continuations are needed.&lt;BR /&gt;&lt;BR /&gt;when the subroutine has 10 or 12 params, and the call is inside a loop&lt;BR /&gt;the keypad really smokes! (and so do I)&lt;BR /&gt;&lt;BR /&gt;$ for/noopt/den test_prog&lt;BR /&gt;$ link/deb test_prog&lt;BR /&gt;$ r test_prog&lt;BR /&gt;DBG&amp;gt; Set Mode Screen; Set Step Nosource&lt;BR /&gt;DBG&amp;gt; step&lt;BR /&gt;DBG&amp;gt; step&lt;BR /&gt;DBG&amp;gt; step/into     to the call&lt;BR /&gt;DBG&amp;gt; step/into     2nd param&lt;BR /&gt;DBG&amp;gt; step/into     3rd param&lt;BR /&gt;DBG&amp;gt; step/into     back to call&lt;BR /&gt;DBG&amp;gt; step/into     finally into the routine&lt;BR /&gt;.....&lt;BR /&gt;&lt;BR /&gt;$ ty test_prog.for&lt;BR /&gt;        program test_prog&lt;BR /&gt;        implicit none&lt;BR /&gt;        character*20 cdum&lt;BR /&gt;        integer  idum1,idum2,idum3&lt;BR /&gt;        cdum = 'test_fun entered'&lt;BR /&gt;        call testfun (cdum,&lt;BR /&gt;     +          idum1,&lt;BR /&gt;     +          idum2,&lt;BR /&gt;     +          idum3)&lt;BR /&gt;        stop&lt;BR /&gt;        end&lt;BR /&gt;        subroutine testfun (c,i1,i2,i3)&lt;BR /&gt;        character*(*) c&lt;BR /&gt;        integer  i1, i2, i3&lt;BR /&gt;        write (6,*) c&lt;BR /&gt;        return&lt;BR /&gt;        end&lt;BR /&gt;</description>
      <pubDate>Thu, 19 Apr 2007 10:11:43 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041323#M35914</guid>
      <dc:creator>Patrick R Benson</dc:creator>
      <dc:date>2007-04-19T10:11:43Z</dc:date>
    </item>
    <item>
      <title>Re: Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041324#M35915</link>
      <description>What language?&lt;BR /&gt;&lt;BR /&gt;Post up a source example of a function call, and we'll have a look.&lt;BR /&gt;&lt;BR /&gt;Are you evaluating functions within the argument list?&lt;BR /&gt;&lt;BR /&gt;I've seen similar behaviors with cross-image activations, and with argument lists that evaluate functions, and (as others have mentioned here) with optimized code.&lt;BR /&gt;&lt;BR /&gt;There are also cases where functions are in-lined, which -- if you're debugging optimized code -- can look rather weird.  (I generally ask and suggest and help the compiler to inline, as the resulting code is faster.)&lt;BR /&gt;&lt;BR /&gt;There's some code you can experiment with here: &lt;A href="http://h71000.www7.hp.com/wizard/wiz_2486.html" target="_blank"&gt;http://h71000.www7.hp.com/wizard/wiz_2486.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;And do you have any debugger ECO kits or special debuggers loaded?  Other ECOs?&lt;BR /&gt;&lt;BR /&gt;Stephen Hoffman&lt;BR /&gt;HoffmanLabs LLC&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 19 Apr 2007 10:14:14 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041324#M35915</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2007-04-19T10:14:14Z</dc:date>
    </item>
    <item>
      <title>Re: Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041325#M35916</link>
      <description>&lt;!--!*#--&gt;Please let me do that again with the 'retain format' button on, so that cut/pasted code will compile-&lt;BR /&gt;&lt;BR /&gt;Code is FORTRAN, not optimised- as in debug.&lt;BR /&gt;&lt;BR /&gt;Building demo has made me realise that its an artifact of debugger&lt;BR /&gt;and continuation lines-&lt;BR /&gt;&lt;BR /&gt;i.e.&lt;BR /&gt;        call testfun(cdum,idum1,idum2,idum3)&lt;BR /&gt;doesnt do it , whereas&lt;BR /&gt;        call testfun (cdum,&lt;BR /&gt;     +          idum1,&lt;BR /&gt;     +          idum2,&lt;BR /&gt;     +          idum3)&lt;BR /&gt;does.&lt;BR /&gt;&lt;BR /&gt;this may look trivial in the demo ( I should just put all the parameters on one line) &lt;BR /&gt;but when indented for IFs 5 or 6 times, and with variable names&lt;BR /&gt; 10 or 12 chars long, the call is forced to RHS and continuations are necessary.&lt;BR /&gt;&lt;BR /&gt;When the subroutine has 10 or 12 params, and the call is inside a loop&lt;BR /&gt;the keypad really smokes!&lt;BR /&gt;&lt;BR /&gt;$ for/noopt/deb test_prog&lt;BR /&gt;$ link/deb test_prog&lt;BR /&gt;$ r test_prog&lt;BR /&gt;DBG&amp;gt; Set Mode Screen; Set Step Nosource&lt;BR /&gt;DBG&amp;gt; step&lt;BR /&gt;DBG&amp;gt; step&lt;BR /&gt;DBG&amp;gt; step/into     to the call&lt;BR /&gt;DBG&amp;gt; step/into     2nd param&lt;BR /&gt;DBG&amp;gt; step/into     3rd param&lt;BR /&gt;DBG&amp;gt; step/into     back to call&lt;BR /&gt;DBG&amp;gt; step/into     finally into the routine&lt;BR /&gt;.....&lt;BR /&gt;&lt;BR /&gt;$ ty test_prog.for&lt;BR /&gt;        program test_prog&lt;BR /&gt;        implicit none&lt;BR /&gt;        character*20 cdum&lt;BR /&gt;        integer  idum1,idum2,idum3&lt;BR /&gt;        cdum = 'test_fun entered'&lt;BR /&gt;        call testfun (cdum,&lt;BR /&gt;     +          idum1,&lt;BR /&gt;     +          idum2,&lt;BR /&gt;     +          idum3)&lt;BR /&gt;        stop&lt;BR /&gt;        end&lt;BR /&gt;        subroutine testfun (c,i1,i2,i3)&lt;BR /&gt;        character*(*) c&lt;BR /&gt;        integer  i1, i2, i3&lt;BR /&gt;        write (6,*) c&lt;BR /&gt;        return&lt;BR /&gt;        end&lt;BR /&gt;</description>
      <pubDate>Thu, 19 Apr 2007 10:35:55 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041325#M35916</guid>
      <dc:creator>Patrick R Benson</dc:creator>
      <dc:date>2007-04-19T10:35:55Z</dc:date>
    </item>
    <item>
      <title>Re: Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041326#M35917</link>
      <description>Patrick,&lt;BR /&gt;&lt;BR /&gt;  Unfortunately we have all been spolied by VAX architecture. It's a dream to debug, regardless of optimization. VAX assembler is easy to follow and most language constructs fall into a fairly obvious assembler sequence. There are also the "huge" instructions like CALL[x] and RET which do very complex things in a single hit.&lt;BR /&gt;&lt;BR /&gt;  On Alpha, there's really no such thing as /NOOPTIMIZE. If you were to compile most source code directly into sequential Alpha instructions performance would be terrible! /NOOPT really means "use as little optimization as possible, with half way decent performance". This means if you examine a particular block of assembly code, you'll find adjacent instructions still belong to different (and possibly widely separated) lines of code. DEBUG then has a dilemma. Either you religiously tag every instruction to a line of code, and bounce all over the place as STEP commands are executed, or you fudge things and gloss over some instructions, pretenting they belong to a different instruction.&lt;BR /&gt;&lt;BR /&gt;For routine calls, instead of a single VAX instruction, the compiler must generate a potentially complex sequence to setup actual arguments. Since this is a very common source of programming errors, you need to be able to single step through them.&lt;BR /&gt;&lt;BR /&gt;You may be able to achieve what you want with:&lt;BR /&gt;&lt;BR /&gt;DBG&amp;gt; STEP/CALL&lt;BR /&gt;DBG&amp;gt; STEP/INTO&lt;BR /&gt;&lt;BR /&gt;If you think the move from VAX to Alpha is hard for debuuging, wait until you see Integrity (where /NOOPT is all but impossible!).</description>
      <pubDate>Thu, 19 Apr 2007 20:31:51 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041326#M35917</guid>
      <dc:creator>John Gillings</dc:creator>
      <dc:date>2007-04-19T20:31:51Z</dc:date>
    </item>
    <item>
      <title>Re: Debugger on Alpha VMS 7.3-2</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041327#M35918</link>
      <description>Thanks to all who contributed.&lt;BR /&gt;&lt;BR /&gt;I am closing it because its clear that the solution I wanted isnt going to be possible, due to the difference in architecture-&lt;BR /&gt;It seems to me that it should be simple to add some code to the debugger which says-'continuations in a call statement can be ignored when processing FORTRAN,and don't need a STEP to themselves'.&lt;BR /&gt;but of course it would cost money - and for a language of decreasing popularity. I am grateful that most other things have converted so well.</description>
      <pubDate>Fri, 20 Apr 2007 04:03:15 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/debugger-on-alpha-vms-7-3-2/m-p/5041327#M35918</guid>
      <dc:creator>Patrick R Benson</dc:creator>
      <dc:date>2007-04-20T04:03:15Z</dc:date>
    </item>
  </channel>
</rss>

