Dereference a raw or smart pointer.
(val)
| 143 | |
| 144 | |
| 145 | def deref(val): |
| 146 | """ |
| 147 | Dereference a raw or smart pointer. |
| 148 | """ |
| 149 | ty = get_basic_type(val.type) |
| 150 | if ty.code == gdb.TYPE_CODE_PTR: |
| 151 | return val.dereference() |
| 152 | if ty.name.startswith('std::'): |
| 153 | if "shared" in ty.name: |
| 154 | return SharedPtr(val).value |
| 155 | if "unique" in ty.name: |
| 156 | return UniquePtr(val).value |
| 157 | raise TypeError(f"Cannot dereference value of type '{ty.name}'") |
| 158 | |
| 159 | |
| 160 | _string_literal_mapping = { |
no test coverage detected