1. A method of enabling secure debugging of a software application, the method comprising: receiving, by a server, a secure software application from a client, wherein the secure software application is designed to execute within the server, wherein access to data used by the secure software application is protected by a security object, and wherein the security object allows a processor within the server to access the data used by the secure software application without permitting data to exit unprotected from the processor; receiving, by the server, a secure sidecar debugging application from the client, wherein the secure sidecar debugging application is designed to debug the secure software application, wherein the secure sidecar debugging application is encrypted, and wherein the client, but not the server, has a copy of a private key needed to decrypt the secure sidecar debugging application; in response to detecting an error in execution of the secure software application within the server, transmitting the secure software application from the server to the client; and in response to detecting the error in execution of the secure software application within the server, transmitting the secure sidecar debugging application from the server to the client, wherein the client is enabled to decrypt the secure sidecar debugging application and to debug the secure software application.