Operating System - OpenVMS
1753481 Members
4343 Online
108794 Solutions
New Discussion юеВ

Examining REGISTERS, address/long variable contents from DEBUGGER

 
Arch_Muthiah
Honored Contributor

Examining REGISTERS, address/long variable contents from DEBUGGER

Hi,

Env: Alpha DS10/OpenVMS 8.2/VAX MACRO/DEBUGGER
I am debugging MACRO program called from HPs C and C++.

Our documents says we can not see(examine) the "VALUE" stored in REGISTERS, PC, STACK, and some the operand valiable (LONG, WORD, ADDRESS, BLKB) used in difft way addressing modes.

Is there any otherway/method/third party tools using which can we examine the contents memory locations in difft addresing mode.

Thanks
Archunan
Regards
Archie
3 REPLIES 3
Jim_McKinney
Honored Contributor

Re: Examining REGISTERS, address/long variable contents from DEBUGGER

Are your C/C++ and Macro code are all built with any compiler optimizations "off" and "debug" on? Is the source is available to the debugger during run-time? Have you tried to "step into" the macro module while walking through the high-level language code?

Using SDA you could set the context to the target process and examine the registers and any other memory locations (you want the process paused at some known processing location first I'd imagine). An "exa/all" command will reveal nearly everything if you have a linker map to reference.
Ian Miller.
Honored Contributor

Re: Examining REGISTERS, address/long variable contents from DEBUGGER

Register values can be seen in the debugger register display.

I don't understand what you mean by difft addresing mode.
____________________
Purely Personal Opinion
Arch_Muthiah
Honored Contributor

Re: Examining REGISTERS, address/long variable contents from DEBUGGER

Ian/Jim,
thanks for your responses.

Jim: Yes I am going thru step by step of C/C++ and stepped into MACRO programs.

Ian: As of I knew there are 16 addressing modes. I found register-display displays only the address in almost all the addressing modes except "register addresing mode". The register deferred addressing mode, auto increment/decrement, displacement, indexed and other Program counter modes all display only the address. But mostly address only.

Example: Autoincrement deferred mode,
"@(Rn)+", this takes initial contents of the register as the address of indirect longword in memory; the register is then incremented by 4 (length of the indirect longword operand). Then the contents of the indirect longword are retrieved from memory, and that is the final effective address for the operand. Just playing with memory locations and finally pointing the address of low-order byte of the eff address to any operand variable. This varibale can be examined. But before that while traversing through the memory locations, is there any possiblity of seeing what is the contents on any particular mem locations.

Ian looks very hard, I don't know any other way to trace the values while debugging.

I will appreciate any help further on this.

Archunan
Regards
Archie