Chapter 8 |
8
|
Using the OpenVMS Debugger
|
8.1
|
Debugging C++ Programs
|
8.1.1
|
Compiling and Linking in Preparation for Debugging
|
8.1.2
|
Debugger Support
|
8.1.3
|
Starting and Ending a Debugging Session
|
8.1.4
|
Features Basic to Debugging C++ Programs
|
8.1.4.1
|
Determining Language Mode
|
8.1.4.2
|
Built-In Operators
|
8.1.4.3
|
Constructs in Language and Address Expressions
|
8.1.4.4
|
Data Types
|
8.2
|
Using the OpenVMS Debugger with C++ Data
|
8.2.1
|
Nonstatic Data Members
|
8.2.1.1
|
Noninherited Data Members
|
8.2.1.2
|
Inherited Data Members
|
8.2.2
|
Reference Objects and Reference Members
|
8.2.3
|
Pointers to Members
|
8.2.4
|
Referencing Entities by Type
|
8.3
|
Using the OpenVMS Debugger with C++ Functions
|
8.3.1
|
Referring to Overloaded Functions
|
8.3.2
|
Referring to Destructors
|
8.3.3
|
Referring to Conversions
|
8.3.4
|
Referring to User-Defined Operators
|
8.3.5
|
Referring to Function Arguments
|
8.3.6
|
Calling C++ Member Functions from the Debugger
|
Chapter 9 |
9
|
Using 64-bit Address Space
|
9.1
|
32-bit Versus 64-bit Development Environment
|
9.1.1
|
Model ANSI
|
9.1.2
|
Memory Allocators
|
9.1.3
|
64-bit Pointer Support in the C Run Time Library
|
9.2
|
Qualifiers and Pragmas
|
9.2.1
|
The /MODEL=ANSI Qualifier
|
9.2.2
|
The /POINTER_SIZE Qualifier
|
9.2.3
|
The __INITIAL_POINTER_SIZE Macro
|
9.2.4
|
Pragmas
|
9.3
|
Determining Pointer Size
|
9.3.1
|
Special Cases
|
9.3.2
|
Mixing Pointer Sizes
|
9.4
|
Header File Considerations
|
9.5
|
Prologue/Epilogue Files
|
9.5.1
|
Rationale
|
9.5.2
|
Using Prologue/Epilogue Files
|
9.6
|
Avoiding Problems
|
9.7
|
Reasons for Not Using Mixed Pointer Sizes
|
Appendix A |
Appendix A
|
Compiler Command Qualifiers
|
Appendix B |
Appendix B
|
Programming Tools
|
B.1
|
DEC Language-Sensitive Editor
|
B.1.1
|
Starting and Terminating an LSE Session
|
B.1.2
|
LSE Placeholders and Tokens
|
B.1.3
|
Compiling and Reviewing Source Code from an LSE Session
|
B.1.4
|
DEC Source Code Analyzer (SCA)
|
Appendix C |
Appendix C
|
Built-In Functions
|
C.1
|
Built-In Functions for Alpha Systems (ALPHA ONLY)
|
C.1.1
|
Translation Macros
|
C.1.2
|
Intrinsic Functions
|
C.1.3
|
Privileged Architecture Library Code Instructions
|
C.1.4
|
Other Builtins
|
C.2
|
Built-In Functions for I64 Systems (I64 ONLY)
|
C.2.1
|
Builtin Differences on I64 Systems
|
C.2.2
|
Built-in Functions Specific to I64 Systems
|
Appendix D |
Appendix D
|
Class Library Restrictions
|
D.1
|
Class Library Restrictions
|
Appendix E |
Appendix E
|
Compiler Compatibility
|
E.1
|
Compatibility with Other C++ Compilers
|
E.2
|
Compatibility with Version 5.6 and Earlier
|
E.2.1
|
Language Differences
|
E.2.2
|
Implementation Differences
|
E.2.3
|
Using Templates
|
E.2.3.1
|
Linking with Version 5.n Instantiations
|
E.2.3.2
|
Linking Version 5.n Applications Against Version 6.n Repositories
|
E.2.4
|
Library Differences
|
E.3
|
Using Classes
|
E.3.1
|
Friend Declarations
|
E.3.2
|
Member Access
|
E.3.3
|
Base Class Initializers
|
E.4
|
Undefined Global Symbols for Static Data Members
|
E.5
|
Functions and Function Declaration Considerations
|
E.6
|
Using Pointers
|
E.6.1
|
Pointer Conversions
|
E.6.2
|
Bound Pointers
|
E.6.3
|
Constants in Function Returns
|
E.6.4
|
Pointers to Constants
|
E.7
|
Using typedefs
|
E.8
|
Initializing References
|
E.9
|
Using the switch and goto Statements
|
E.10
|
Using Volatile Objects
|
E.11
|
Preprocessing
|
E.12
|
Managing Memory
|
E.13
|
Size-of-Array Argument to delete Operator
|
E.14
|
Flushing the Output Buffer
|
E.15
|
Linking
|
E.16
|
Incrementing Enumerations
|
E.17
|
Guidelines for Writing Clean 64-Bit Code
|