Debugging on X86 (without compiler listings)

OpenVMS x86 Field Test questions, reports, and feedback.

Topic author
mgdaniel
Valued Contributor
Posts: 62
Joined: Mon Feb 28, 2022 5:16 pm
Reputation: 0
Location: Adelaide, South Australia
Status: Offline
Contact:

Re: Debugging on X86 (without compiler listings)

Post by mgdaniel » Sat Nov 19, 2022 10:51 am

Adding to your code Arne...

Code: Select all

   printf("minus one\n");
   ots$fill(buf, -1, 0x04);
   for(i = 0; i < sizeof(buf); i++) printf("%02X", buf[i]);
   printf("\n");
   printf("memset minus 1\n");
   memset(buf, 0x05, -1);
   for(i = 0; i < sizeof(buf); i++) printf("%02X", buf[i]);
   printf("\n");
Neither OTS$FILL() or memset() on IA64...

Code: Select all

IA64$ mcr []arne_v_3
01010101010101010101
02020202020202020202
03030303030303030303
minus one
03030303030303030303
memset minus 1
03030303030303030303
But on X86 perhaps something sandwiched between C-RTL and OTS-RTL, or something else entirely...

Code: Select all

X86VMS$ mcr []arne_v_3
01010101010101010101
02020202020202020202
03030303030303030303
minus one
03030303030303030303
memset minus 1
%SYSTEM-F-ACCVIO, access violation, reason mask=07, virtual address=000000007ACA2000, PC=FFFF830007A1B0BC, PS=0000001B

  Improperly handled condition, image exit forced by last chance handler.
    Signal arguments:   Number = 0000000000000005
                        Name   = 000000000000000C
                                 0000000000000007
                                 000000007ACA2000
                                 FFFF830007A1B0BC
                                 000000000000001B
    Register dump:
    RAX = 000000007ACA18C6  RDI = 000000007ACA18C6  RSI = 00000000FFFFFFFF
    RDX = 0505050505050505  RCX = 0000000000000738  R8  = 0000000000023A30
    R9  = 0000000000000000  RBX = 000000007FFCF898  RBP = 000000007ACA17E0
    R10 = FFFFFFFFFFFFFFFE  R11 = 0000000000000001  R12 = 000000007ACA19A8
    R13 = 0000000000000000  R14 = 000000007AEBA170  R15 = 0000000000018090
    RIP = FFFF830007A1B0BC  RSP = 000000007ACA1788  SS  = 000000000000001B
So we're still back at behavioural compatibility potentially avoiding a lot of unnecessarily exploding executables.

Interesting enough but somewhat nugatory activity.

After all this, here's hoping Development provide an explanation rather than just "fixed".
Last edited by mgdaniel on Sat Nov 19, 2022 10:56 am, edited 1 time in total.

User avatar

imiller
Master
Posts: 130
Joined: Fri Jun 28, 2019 8:45 am
Reputation: 0
Location: South Tyneside, UK
Status: Offline
Contact:

Re: Debugging on X86 (without compiler listings)

Post by imiller » Thu Aug 24, 2023 7:51 am

VMS921X_UPDATE-V0100 is now available with an updated debugger
Ian Miller
[ personal opinion only. usual disclaimers apply. Do not taunt happy fun ball ].


jreagan
VSI Expert
Master
Posts: 134
Joined: Tue Dec 01, 2020 8:40 am
Reputation: 0
Status: Offline

Re: Debugging on X86 (without compiler listings)

Post by jreagan » Thu Aug 24, 2023 6:56 pm

For the compilers (cross and native), the release notes talk about using ANALYZE/OBJECT/DISASSEMBLE. Append that to the .LIS file. It has code but no static data. It has line numbers and routine names but no symbolization at the moment.

Machine code listings, etc. is on my list.

And yes, C++ doesn't even have listings yet.

The debugger in the V9.2-1 update that just came out fixes several bugs, including SET MODE SCREEN. There are still bugs remaining and we'll be doing more debugger ECO updates over the next several months.

Post Reply