Don't run __sleep when serializing objects for the debugger wire protocol
commitbbe0dad9c41e5495516f50bd54c6bb756eb16a50
authorBert Maher <bertrand@fb.com>
Wed, 27 Aug 2014 00:38:38 +0000 (26 17:38 -0700)
committerhhvm-bot <hhvm-bot@fb.com>
Wed, 27 Aug 2014 01:00:20 +0000 (26 18:00 -0700)
tree4883c8ed048be5ff908655546584f8753fafc226
parent4aad00512aa7a6d5df4088698f07f75dbca5eb4c
Don't run __sleep when serializing objects for the debugger wire protocol

Summary: Running __sleep while serializing objects for the debugger can break
the protocol, e.g., if a breakpoint is hit while generating a backtrace.  It
seems doubtful that the user of the debugger actually wants to trigger __sleep
via debugger commands.

Reviewed By: @markw65

Differential Revision: D1519537
hphp/runtime/base/object-data.cpp
hphp/runtime/base/type-variant.cpp
hphp/runtime/base/variable-unserializer.h
hphp/runtime/debugger/debugger_thrift_buffer.cpp
hphp/test/quick/debugger/where-serialize.php [new file with mode: 0644]
hphp/test/quick/debugger/where-serialize.php.expectf [new file with mode: 0644]
hphp/test/quick/debugger/where-serialize.php.in [new file with mode: 0644]
hphp/test/quick/debugger/where-sleep.php [new file with mode: 0644]
hphp/test/quick/debugger/where-sleep.php.expectf [new file with mode: 0644]
hphp/test/quick/debugger/where-sleep.php.in [new file with mode: 0644]