RFE: UPCXX_FREEZE environment variable
Issue #592
new
Currently, we document (in docs/debugging.md) use of GASNET_FREEZE
to request that UPC++ processes stop to await debugger attach. This issue is a request for a UPCXX_FREEZE
environment variable which would cause upcxx::init()
to pause very late (possibly as the last thing before return) for debugger attach. There are at least three motivations for this:
- This entire proposal grew out of discussions surrounding issue
#591, which we noted would never have occurred if debugger attach occurred later than primary segment validation. - The current "attach point" relatively early in GASNet initialization leaves a signficant amount of GASNet and UPC++ runtime code the user must somehow step over before reaching their own code. Attaching instead at (or near) the end of
upcxx::init()
could (if implemented within init itself) reduce this to a singlefinish
command in gdb. - There is precedent in the Berkeley UPC project which provided a distinct
UPC_FREEZE
environment variable for this purpose. At least point 2 was a motivating consideration in that design.
Comments (2)
-
-
- removed milestone
Clear past Milestone for open issues
- Log in to comment
I suggest we adopt a similar UI to Berkeley UPC UPC_FREEZE, specifically define that the argument to
UPCXX_FREEZE
can be used to freeze selected processes. So for exampleUPCXX_FREEZE=1
would mean freeze only process 1 andUPCXX_FREEZE=0,4,6-9
would freeze the selected processes. We should also have a syntax for "freeze them all", perhapsUPCXX_FREEZE=*
orUPCXX_FREEZE=-