How do you approach debugging a system when you do not have immediate access to all the underlying code?