Debugging on X86 (without compiler listings)

OpenVMS x86 Field Test questions, reports, and feedback.

Topic author
mgdaniel
Contributor
Posts: 22
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.

Post Reply