You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kato-spec@incubator.apache.org by Stuart Monteith <st...@stoo.me.uk> on 2009/12/10 11:47:46 UTC

Andrew Johnson's comments: part 2

Hi,
     As before.

Page 31
=======

(20).

getInstalledMemory

"the amount of physical memory installed in the system..."

System = Partition? What about VM


---
(21).

Need Image.close() - need to tidy up the temp files etc?
Might get I/O Exception with subsequent accesses.

Page 32
=======
(22).

What happens if InetAddress hostname in dump environment is different to 
where dump is examined?
e.g. host = secret.mycompany.com 10.2.3.66 } won't resolve elsewhere.

Page 33
=======

(23).

There should be a page break before "Interface ImageRegister" as it has 
become separated from its description.

Page 34
=======
ImageRegister
=============
(24).

How to show NaT on IA64?
Normally Long for 64bit registers.
Need new type.
Perhaps implementation defined?
- or conditionally return

     public class NaT extends Number

Page 35
=======
MemoryAccessException
======================

(25).
Missing comma in
     public MemoryAccessException(ImagePointer badPointerString description)
                                                        ^^

ImageSection
============
(26).

(In)Consistency of method names

ImageSection getBaseAddress
JavaStackFrame getBasePointer
ImageStackFrame geeBasePointer
JavaVMOption getExtraInfo
CorruptData getAddress
ImageSymbol getAddress
MemoryAccessException getAddress
ImagePointer getPointerAt
ImageAddressSpace getPointer
JavaRuntime getJavaVM
JavaObject getID

also getID ImagePointer String

Page 36
=======

(27).
ImageSection.getName()

"Note that sections of the image which have no specific name will 
receive a name synthesised by the implementation."
                                                              ^^^^

Page 39
=======
ImagePointer
============

(28).
getPointerAt()

What happens if there is a 32-bit & 64 bit process in the address space.
Would this always return a 64bit pointer.

(29).
Mention endian conversion.

(30).

Also: getPointerAt(long index, int size) for mixed mode processes.

Page 41
========
ImagePointer
============

(31).
Also "getCharAt". Does "getBooleanAt" make sense?

Page 43
=======
DataUnavailable
================

(32).
Should DataUnavailable be DataUnavailableException?

ImageAddressSpace
=================

(32).
_BPX_SHAREAS see something like

(Andrew is talking about a z/OS environment variable. This allows 
commands in the UNIX shell to share the same address
space. If you are interested, 
http://publib.boulder.ibm.com/infocenter/zos/v1r9/index.jsp?topic=/com.ibm.zos.r9.bpxb200/shbene.htm)

Page 44
========
DiagnosticException
===================

(33).
Need String getID() method returning? decodable id or String? 0x123

Page 45
=======

(34).
ImageThread.getID()

If numeric should it be passable e.g. 0x1234 or 567
Perhaps suggestion?

Page 47
=======
ImageFactory
============

(35).
public Image getImage(File imageFileFile metadata)
                                    ^^

Missing comma.

(36).

Consider:
     boolean testImage(File imageFile)
     boolean testImage(File imageFile, File metaData)

(or isValidImage)

Give a quick guess if the file will work.

Page 48
=======

(37).

public String getValidFileExtensions()
             ^^

List or array List<String> or String[] ?

(It is actually a String array. I've fixed up the words to say "array", 
but the formatting of the document
has ommitted the square brackets).


(38).
String[] ImageFactory.getValidFileExtensions()

Arrays are modifiable - is that safe? i.e. is it a copy?

Page 49
=======
ImageProcess
============

(39).

getID()
Given choice make parsable using Long.decode() 0x123

(40).
getLibraries()

throws DataUnavailable
        CorruptDataException

only List which also throws exceptions
  - why is this like this method?

Page 51
=======
ImageProcess
============
(41).
getPointerSize()

     Current supported values are 31, 32 or 64.
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This is an implementation statement that maybe useful in this spec.

Page 52
=======
ImageStackFrame
===============

(42).
	getBasePointer

	returns	the base pointer of the stack frame

Always the lowest address?


Consider
	getSection  for the frame
	or getSections - e.g. IA-64
Need size&  sections could overlap between ImageStackFrames

+---+
|   |
|   |
+---+
|   |<- parms/args
+---+
|   |
|   |
+---+


Page 53
=======
(43).
getProcedureName()

. libname(sourcefile)::entrypoint+-<node></node>offset
                                    ^^^^^^^^^^^^^
(the xml appears spurious - the document generation needs to be fixed)

(44).

getProcedureName()

Returns:

? module + address (no offset)
e.g. system32@0x1234

or system32::0x123456

(45).

Consider new class
  ImageLocations
   getModule
   getProcedureAddress
   getSymbol
   getSymbolOffset
   getFileName
   getLineNumber

(46).

Also line number.
  lib(source.c:25)

Page 55
=======
ManagedRuntime
==============

(47).
getVersion

Throws DataUnavailable also? - which system property is this like?

(48).
getFullVersion Throws DataUnavailable?


----------

That's the end of the Image and ManageRuntime API. I'll continue Java in in part 3.

Regards,
    Stuart

-- 
Stuart Monteith
http://blog.stoo.me.uk/