T.R | Title | User | Personal Name | Date | Lines |
---|
388.1 | Questions... | XDELTA::HOFFMAN | Steve, OpenVMS Engineering | Wed Mar 26 1997 16:51 | 6 |
|
How are these images linked? Are there writeable images (COMMONs)
involved? Are there any link errors or based-image messages? Is
anyone using LIB$FIND_IMAGE_SYMBOL? What are the attributes for
the various images and image sections from the link map?
|
388.2 | | EEMELI::MOSER | Orienteers do it in the bush... | Thu Mar 27 1997 06:29 | 5 |
| I've seen that too with ACMS over a year ago. It's the way they link
their stuff together. Things do work correctly I've verified that
and this is just an annoying bystander issue.
/cmos
|
388.3 | Answers to .1 | KSTREL::PEARSON | | Thu Mar 27 1997 11:11 | 24 |
| RE: 388.1
There are writable PSECTs, but none of them are shared. They are debug
images and they're installed. The code PSECTs are set writable so that
breakpoints can be set. We also understand the implications of writable
code psects in shared images. We do debugging on individual workstations.
They are not based images and there are no link errors.
LIB$FIND_ImAGE_SYMBOL is used, but not for either of these two images.
I've extracted the link information for ACMSHR.EXE and ACMS$TRACE_SHR.EXE
in .LOG files with the same file name. The MAP files are also available in
the same location on the node CLUSTA.
Directory CLUSTA::ACMS$PUBLIC
ACMS$TRACE_SHR.LOG;1 3 27-MAR-1997 10:55:50.20
ACMS$TRACE_SHR.MAP;7 55 24-MAR-1997 15:29:56.14
ACMSHR.LOG;1 90 27-MAR-1997 11:06:01.80
ACMSHR.MAP;1 2483 23-FEB-1997 00:36:34.25
Total of 4 files, 2631 blocks.
Larry Pearson
|
388.4 | Looks Like Self-Modifying Code... | XDELTA::HOFFMAN | Steve, OpenVMS Engineering | Thu Mar 27 1997 11:21 | 16 |
|
My assumption is that you effectively have a COMMON, and I've found
COMMONs cause all manner of "interesting" maintenance and debugging
implications. And headaches.
I'd use a different technique to create the debugging structure(s).
I'd look at imbedding the debugging code calls directly into the
image, or using conditional compilations, or using stub shareable
images, or run-time LIB$FIND_IMAGE_SYMBOL calls, or using a "patchable
vector array table" that can be built at run-time or revectored at
run-time via a global section, etc. Or some combination.
Using writable code is definitely questionable. If this technique
is used, there are specific cache-flushing requirements for what is
effectively better known as "dirty" or "self-modifying" code.
|