Options

 

 

Technical Article


Options may be set to modify the behavior of ACIS. An option's value may be a flag (indicating an on/off state), a number (integer or real number), or a string. Options may be set in a Scheme application (such as Scheme AIDE) using the Scheme extension option:set; or in a C++ application using one of several API functions.

crash

Action:
Sets crash on error.

Name String:
crash

Scheme:
Type    Values Default
boolean #f,#t #f

C++:
Type   Values Default
logical FALSE,TRUE FALSE

Description
If this option is on, a useful message is printed out and the process is aborted so that tracebacks can be obtained for debugging. ACIS recovers from most errors using an exception mechanism to unwind the call stack to the outermost entry point (i.e. the API_BEGIN). The model as well as the modeler are cleaned up on the way out. Setting the crash option to TRUE disables recovery (error propagation) in favor of an abort.

; crash
; Turn on crash option
(option:set "crash" #t)
;; #f

[Top]


debug_absolute_addresses

Action:
Controls how memory address for pointers are returned for debugging: as absolute or relative, and as hex or long integer.

Name String:
debug_absolute_addresses

Scheme:
Type Values Default
integer 0, 1, 2,3 0

C++:
Type Values Default
int 0,1, 2,3 0
Description
This option allows the address for a pointer to be returned as the absolute memory address rather than the offset from base address (relative). Under normal circumstances, this is less useful than the offset address, but may be useful for chasing memory allocation problems. The option also allows selection of long integer or hex values for the address. The possible option settings are:

0 - Relative address as a long integer
1 - Absolute address as a long integer
2 - Relative address in hex
3 - Absolute address in hex
; debug_absolute_addresses
; Create a block and debug it with offset addresses
(define b (solid:block (position 0 0 0 )
    (position 30 30 30)))
;; b
; #[entity 2 1]
(entity:debug b 2)
;; body **** 1032504:
;;  Rollback pointer: NULL
;;  Attribute list: display_attribute 0 1032696
;;  Lump list      : lump 0 1032552
;;  Wire list      : NULL
;;  Transform      : transform 0 254320
;;  Bounding box   : NULL
;; "solid body"; Use absolute addresses and debug again
(option:set "debug_absolute_addresses" 1)
;; 0
(entity:debug b 2)
;; body **** 81343368:
;;  Rollback pointer: NULL
;;  Attribute list  : display_attribute 0 81343560
;;  Lump list       : lump 0 81343416
;;  Wire list       : NULL
;;  Transform       : transform 0 80565184
;;  Bounding box    : NULL
;; "solid body"
; Use relative hex addresses and debug again
(option:set "debug_absolute_addresses" 2)
;; 1
(entity:debug b 2)
;; body **** fc138:
;;  Rollback pointer: NULL
;;  Attribute list  : display_attribute 0 fc1f8
;;  Lump list       : lump 0 fc168
;;  Wire list       : NULL
;;  Transform       : transform 0 3e170
;;  Bounding box    : NULL
;; "solid body"
; Use absolute hex addresses and debug again
(option:set "debug_absolute_addresses" 3)
;; 2
(entity:debug b 2)
;; body **** 4d93388:
;;  Rollback pointer: NULL
;;  Attribute list  : display_attribute 0 4d93448
;;  Lump list       : lump 0 4d933b8
;;  Wire list       : NULL
;;  Transform       : transform 0 4cd53c0
;;  Bounding box    : NULL
;; "solid body"
; Reset the option
(option:set "debug_absolute_addresses" 0)
;; 3

[Top]


mmgrfile

Action:
Sets the name of the file to which to write memory manager debugging and memory leak auditing information.

Name String:
mmgrfile

Scheme:
Type Values Default
string validpathname "mmgr.log"

C++:
Type Values Default
char* validpathname "mmgr.log"

Description
Debugging and memory leak audit information collected by the memory manager are written to the file when the application terminates.

; mmgrfile
; Change the memory manager log file name.
(option:set "mmgrfile" "application.log")
;; "mmgr.log"

[Top]


mmgrfill

Action:
Enables or disables pattern filling of unallocated memory by the memory manager.

Name String:
mmgrfill

Scheme:
Type Values Default
boolean #t,#f #t

C++:
Type Values Default
logical TRUE,FALSE TRUE

Description
If true, unused memory is pattern filled.

; mmgrfill
; Disable unallocated memory pattern filling.
(option:set "mmgrfill" #f)
;; #t

[Top]


mmgrlog

Action:
Enables or disables writing of memory manager debugging and memory leak auditing information to a file.

Name String:
mmgrlog

Scheme:
Type Values Default
boolean #t,#f #f

C++:
Type Values Default
logical TRUE,FALSE FALSE
; mmgrlog
; Enable memory manager log file dump.
(option:set "mmgrlog" #t)
;; #f

[Top]


stack_check_error

Action:
Controls behavior when the stack limit is reached.

Name String:
stack_check_error

Scheme:
Type Values Default
boolean #t,#f #t

C++:
Type Values Default
logical TRUE,FALSE TRUE

Description
When a stack limit is set for monitoring. For example, when using function api_stackmon_limit and this option is on (true), a system error (EXCEEDED_STACK_LIMIT) is thrown if the limit is reached. If this option is off (false), only a system warning is issued.

; stack_check_error
; Turn off error, so only a warning is issued.
(option:set "stack_check_error" #f)
;; #t

[Top]


timing

Action:
Sets whether or not timing information is returned.

Name String:
timing

Scheme:
Type Values Default
boolean #f,#t #f

Description
This is an interface option. It has no effect on the modeler. It provides timing information for each command issued from the Scheme AIDE.

; timing
; Turn on timing
(option:set "timing" #t)
;; #f

[Top]