3 Commits

Author SHA1 Message Date
Dave Lee
e0528382b5 [lldb] Add missing decorators import in TestPoPersistentResult.py 2023-02-16 21:45:56 -08:00
Dave Lee
5552c4ddd7 [lldb] Limit TestPoPersistentResult to darwin 2023-02-16 21:11:48 -08:00
Dave Lee
3328ee550c [lldb] Suppress persistent result when running po
Remove the persistent result variable after executing `po`.

Without this change, the following behavior happens:

```
(lldb) p thing
(NSObject *) $0 = 0x600000008000
(lldb) po thing
<NSObject: 0x600000008000>
(lldb) p thing
(NSObject *) $2 = 0x600000008000
(lldb) p $1
(NSObject *) $1 = 0x600000008000
```

Even though `po` hides the persistent result variable, it's still created - as $1 in
this example. It can be accessed even though its existence is not evident.

With this change, the persistent result is removed after the object description has
printed. Instead, this is the behavior:

```
(lldb) p thing
(NSObject *) $0 = 0x600000008000
(lldb) po thing
<NSObject: 0x600000008000>
(lldb) p thing
(NSObject *) $1 = 0x600000008000
```

The difference here is that the `po` doens't silently create a persistent result.

Differential Revision: https://reviews.llvm.org/D144044
2023-02-16 21:05:19 -08:00