Thread View: vmsnet.internals
2 messages
2 total messages
Started by Michael L. Hitch
Sat, 12 Dec 1992 20:37
Re: Why does this code crash with ACCVIO?
Author: Michael L. Hitch
Date: Sat, 12 Dec 1992 20:37
Date: Sat, 12 Dec 1992 20:37
28 lines
1520 bytes
1520 bytes
=> => > I can manually deposit values at => > location pointed to by dest/r0 (using debugger 'deposit *dest=...'), => > so it is not a invalid address. => => But now for the interesting ! => => The above test do NOT test what you think it tests at all ! => => The debugger is capable of depositing values in NOWRT psects ! .... => This little feature has been around for all the VMS versions I have => used and can be quite usefull. => => I once got the explanation that it is due to the fact, that the NOWRT => psect actually means user-mode:readonly and the debugger runs in => supervisor-mode ! If the debugger couldn't write into user readonly data and code sections, it would limit the utility of the debugger: you wouldn't be able to modify any readonly data or code while debugging a program. --- Michael L. Hitch osymh@msu.oscs.montana.edu Computer Consultant OSYMH@MTSUNIX1.BITNET Office of Systems and Computing Services Montana State University Bozeman, MT USA
Re: Why does this code crash with ACCVIO?
Author: jeh
Date: Sun, 13 Dec 1992 04:39
Date: Sun, 13 Dec 1992 04:39
36 lines
2094 bytes
2094 bytes
In article <00964FAA.F91C1440.10804@trex.oscs.montana.edu>, "Michael L. Hitch" <osymh%trex.oscs.montana.edu@MTSUNIX1.BITNET> writes:
> =>
> => > I can manually deposit values at
> => > location pointed to by dest/r0 (using debugger 'deposit *dest=...'),
> => > so it is not a invalid address.
> =>
> => But now for the interesting !
> =>
> => The above test do NOT test what you think it tests at all !
> =>
> => The debugger is capable of depositing values in NOWRT psects !
> ....
> => This little feature has been around for all the VMS versions I have
> => used and can be quite usefull.
> =>
> => I once got the explanation that it is due to the fact, that the NOWRT
> => psect actually means user-mode:readonly and the debugger runs in
> => supervisor-mode !
The debugger does not run in supervisor mode.
NOWRT psects normally cause pages to be protected "UR", which means user (or
any inner mode) read, nobody write.
The debugger can write into such pages the same way your program can: Use the
$SETPRT system service to change the protection mask on the pages of interest
to UW, do your writes, then change them back to UR.
You can do this to any pages mapped by your process as long as they're owned by
user mode, are not shareable (non-CRF) pages defined by a global section, and
several other restrictions (see the System Services Reference Manual).
--- Jamie Hanrahan, Kernel Mode Consulting, San Diego CA
Chair, Programming and Internals Working Group, U.S. DECUS VMS Systems SIG
Internet: jeh@cmkrnl.com, hanrahan@eisner.decus.org, or jeh@crash.cts.com
Uucp: ...{crash,eisner,uunet}!cmkrnl!jeh
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads