× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: RPG400-L Digest V2 #357
  • From: "Peter Dow" <pcdow@xxxxxxxxxxxxxxx>
  • Date: Wed, 11 Oct 2000 13:08:35 -0700

Actually, I was trying to follow your directions on how to find the
variable's address:

"After running the dump, find the stack entry for the program in question.
The stack entry for a given program should include the registers, a straight
dump of the code segment, the exception handlers, and a list of all
variables created for that program."

I also scanned for the address, and I found it in several places, but I
couldn't prove that it was the address as shown by debug's watch and by
%addr(). Which was the point of the exercise. The DMPJOBINT has a lot of
documentation, but not enough to find something without a manual explaining
what I'm looking at.

Thanks though -- it was interesting.

It seems that using %addr() and checking the low-order byte is a lot easier
than reading the dump, or Barbara's method of looking for extra space by
comparing %size()'s. Now when I have a minute (or if someone else does), all
I need is a program with several data structures -- with and without
pointers, integers, floating point, etc. and a simple display of %addr() for
each data structure and field, and if I get fancy, some text indicating what
n-byte alignment it has.

Regards,

Peter Dow
Dow Software Services, Inc.
909 425-0194 voice
909 425-0196 fax


----- Original Message -----
From: "Richard Jackson" <richardjackson@richardjackson.net>
To: <RPG400-L@midrange.com>
Sent: Wednesday, October 11, 2000 10:56 AM
Subject: RE: RPG400-L Digest V2 #357


> I am mystified why you started to chase the address of the PEP stack frame
> instead of the address of the variable.  I would have searched for
> F9BAF3B174017730 instead of C8C645783FFFBC20.  Still, looks to me like you
> have a good solution - low order byte of the address returned by addr()
will
> give alignment.
>
> Now, why did you want to know that?  :)
>
> Richard Jackson
> mailto:richardjackson@richardjackson.net
> http://www.richardjacksonltd.com
> Voice: 1 (303) 808-8058
> Fax:   1 (303) 663-4325
>
> -|-----Original Message-----
> -|From: owner-rpg400-l@midrange.com [mailto:owner-rpg400-l@midrange.com]On
> -|Behalf Of Peter Dow
> -|Sent: Wednesday, October 11, 2000 11:32 AM
> -|To: RPG400-L@midrange.com
> -|Subject: Re: RPG400-L Digest V2 #357
> -|
> -|
> -|Thanks Richard, Martin.
> -|
> -|When I used debug to add a watch I got:
> -|
> -|Num      Variable                 Address              Length
> -|1        $PGM                     F9BAF3B174017730     10
> -|
> -|At the same time I used the following command in debug:
> -|
> -|%ADDR($PGM) = SPP:F9BAF3B174017730
> -|
> -|Then I did the DMPJOBINT followed by PRTINTDTA and found what I assume
are
> -|the stack entries for the program I was debugging (MOUSER):
> -|
> -|ISF ADDRESS   C8C645783F FFBAA0       TYPE MI PROC
> -|    RESUMEPOINT     3A80CC5AED 001AE4     ENTRY@    3A80CC5AED 001940
> -|     PROGRAM  MOUSER
> -|     ENTRY    MOUSER + 000001A4
> -|ISF ADDRESS   C8C645783F FFBC20       TYPE MI PEP
> -|    RESUMEPOINT     3A80CC5AED 0018AC     ENTRY@    3A80CC5AED 001790
> -|     PROGRAM  MOUSER
> -|     ENTRY    _QRNP_PEP_MOUSER + 0000011C
> -|
> -|Scanning the dump output for C8C645783F FFBC20 I found (among
> -|other things):
> -|
> -|ISF ADDRESS   C8C645783F FFBC20       TYPE MI PEP
> -|    RESUMEPOINT     3A80CC5AED 0018AC     ENTRY@    3A80CC5AED 001790
> -|     PROGRAM  MOUSER
> -|     ENTRY    _QRNP_PEP_MOUSER + 0000011C
> -|    GPR 0     ********** ******
> -|    GPR 1     C8C645783F FFBC20
> -|    GPR 2     ********** ******
> -|    GPR 3     ********** ******
> -|    GPR 4     ********** ******
> -|    GPR 5     ********** ******
> -|    GPR 6     ********** ******
> -|    GPR 7     ********** ******
> -|    GPR 8     ********** ******
> -|    GPR 9     ********** ******
> -|    GPR 10    ********** ******
> -|    GPR 11    ********** ******
> -|    GPR 12    ********** ******
> -|    GPR 13    8000000000 000000
> -|    GPR 14    C8C645783F 000080
> -|    GPR 15    0000000000 0000F1
> -|    GPR 16    0000000000 000080
> -|    GPR 17    0000000000 0010AE
> -|    GPR 18    C8C645783F FFCE60
> -|    GPR 19    F4E2AB0C6B 000000
> -|    GPR 20    8000000000 000000
> -|    GPR 21    F9BAF3B174 017240 * (close to F9BAF3B174 017730)
> -|    GPR 22    00000000C0 000000
> -|    GPR 23    E5C6E167D5 001440
> -|    GPR 24    E5C6E167D5 001420
> -|    GPR 25    8000000000 000000
> -|    GPR 26    F9BAF3B174 017240 * (close to F9BAF3B174 017730)
> -|    GPR 27    220EB12D38 001200
> -|    GPR 28    E001694C5E 0304C0
> -|    GPR 29    C8C645783F FFBE20
> -|    GPR 30    F9BAF3B174 017000 * (close to F9BAF3B174 017730)
> -|    GPR 31    E5C6E167D5 001480
> -|
> -|     ADDRESS        LOCATION    OBJECT TEXT       SOURCE STATEMENT
> -|3A80CC5AED 00189C     00010C    FA970002          STQ 20,0X0(23)
> -|3A80CC5AED 0018A0     000110    62E30000          ORI 3,23,0
> -|3A80CC5AED 0018A4     000114    63820000          ORI 2,28,0
> -|3A80CC5AED 0018A8     000118    48000099          BL 0X98
> -|3A80CC5AED 0018AC     00011C    EB010000          LD 24,0X0(1)
> -|3A80CC5AED 0018B0     000120    8358FF8C          LWZ 26,0XFF8C(24)
> -|3A80CC5AED 0018B4     000124    3B3C00A0          ADDI 25,28,160
> -|3A80CC5AED 0018B8     000128    7FD9E088          TD 30,25,28
> -|3A80CC5AED 0018BC     00012C    3ABC00A8          ADDI 21,28,168
> -|3A80CC5AED 0018C0     000130    7FD5E088          TD 30,21,28
> -|
> -|I could keep going -- I found some references to F9BAF3B174017730, but
> -|nothing conclusive. However, it does sort of look like %addr(variable)
is
> -|the address that we want to be aligned. I haven't heard anyone
contradict
> -|that. If true, you could programmtically determine if your data
structures
> -|are aligned.
> -|
> -|Peter Dow
> -|Dow Software Services, Inc.
> -|909 425-0194 voice
> -|909 425-0196 fax
> -|
> -|
> -|
> -|
> -|----- Original Message -----
> -|From: "McCallion, Martin" <MccalliM@Midas-Kapiti.com>
> -|To: <RPG400-L@midrange.com>
> -|Sent: Wednesday, October 11, 2000 8:34 AM
> -|Subject: RE: RPG400-L Digest V2 #357
> -|
> -|
> -|> Peter Dow said:
> -|> > > Where can I see the virtual address?
> -|>
> -|> Richard Jackson replied:
> -|> > dump job internal.
> -|>
> -|> IIRC you can also see this in debug; certainly if you set a watch you
> -|> see the address of the watched variable.  That sounds a lot easier to
me
> -|> :-)
> -|>
> -|> Cheers,
> -|>
> -|> Martin.
> -|>
> -|> --
> -|> Martin McCallion
> -|> Midas-Kapiti International
> -|> Work:  mccallim@midas-kapiti.com
> -|> Home: martin.mccallion@ukonline.co.uk
> -|>
> -|> Apologies for the length of this sig, but company policy says:
> -|> This email message is intended for the named recipient only.  It may
be
> -|> privileged and/or confidential.  If you are not the intended named
> -|> recipient of this email then you should not copy it or use it for any
> -|> purpose, nor disclose its contents to any other person.  You should
> -|> contact Midas-Kapiti International as shown below so that we can take
> -|> appropriate action at no cost to yourself.
> -|>
> -|> Midas-Kapiti International Ltd, 1 St George's Road, Wimbledon, London,
> -|> SW19 4DR, UK
> -|> Email: Postmaster@midas-kapiti.com Tel: +44 (0)208 879 1188 Fax: +44
> -|> (0)208 947 3373
> -|> Midas-Kapiti International Ltd is registered in England and Wales
under
> -|> company no. 971479
> -|>
> -|> +---
> -|> | This is the RPG/400 Mailing List!
> -|> | To submit a new message, send your mail to RPG400-L@midrange.com.
> -|> | To subscribe to this list send email to RPG400-L-SUB@midrange.com.
> -|> | To unsubscribe from this list send email to
> -|RPG400-L-UNSUB@midrange.com.
> -|> | Questions should be directed to the list owner/operator:
> -|david@midrange.com
> -|> +---
> -|
> -|+---
> -|| This is the RPG/400 Mailing List!
> -|| To submit a new message, send your mail to RPG400-L@midrange.com.
> -|| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
> -|| To unsubscribe from this list send email to
RPG400-L-UNSUB@midrange.com.
> -|| Questions should be directed to the list owner/operator:
> -|david@midrange.com
> -|+---
>
> +---
> | This is the RPG/400 Mailing List!
> | To submit a new message, send your mail to RPG400-L@midrange.com.
> | To subscribe to this list send email to RPG400-L-SUB@midrange.com.
> | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
> | Questions should be directed to the list owner/operator:
david@midrange.com
> +---

+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.