Debugging deadly embrace on Use command (shared objects)

I believe I have locked situation on a shared Storage object.

I’ve enabled Debug logs. I can see that one process executes the command that is just before a Use (sharedObject) statement: and that’s the last execution line of code I see for that process in the debug log.

My challenge is this: I don’t see the “Use” command (or “End Use”) in the debug logs at all. I think 4D is not recording those.

I’m extremely careful when in any Use statement: to do as little processing as possible. As much as reasonable: I pre-calculate any values to local vars: then in the Use statement assign from the local vars.

Does 4D provide any tools to tell me: what process is locking a shared object?

As I think about this more (and I’m probably just processing out loud), if 4D lacks any tools to help me on this: I contemplate if I should create “USE_Before(object)” and “USE_After(object)” methods that I would put around all USE/END USE statements: like this:

C_OBJECT($MyOb)
$MyOb:=Storage.MyOb
USE_Before ($MyOb;"Storage.MyOb")
Use ($MyOb)
	$MyOb.a:=1
	$MyOb.b:=2
End use 
USE_After ($MyOb)

and then in these new methods do /something/ where I can enable/disable logging, and tools to help debug locking situations.

I really don’t want to litter my code up with this: but if 4D doesn’t have the tools: then I’ll have to roll my own.