Issue 137468
Summary lldb cannot change formatting of uint8_t[35] to print as an array of integers
Labels new issue
Assignees
Reporter dmlary
    I've been fighting with this across multiple versions of lldb.  I'm trying to print a `uint8_t[32]` as an array of unsigned integers, but it keeps printing as a binary string.  What follows is all the different ways I tried manually setting the format manually to `dwim-print`, and using `type format add`.  Regardless of what I do, the variable is always formatted as a binary string.

```txt
# uint8_t PatternIndex[6][35] = {...}
(lldb) dwim-print -f int8_t[] -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) dwim-print -f a -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) dwim-print -f A -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) type format clear
(lldb) dwim-print -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) dwim-print -f b -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) dwim-print -f x -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) dwim-print -f uint8_t[] -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) dwim-print -f int -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) dwim-print -f E -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) type format add --format int uint8_t
(lldb) dwim-print -- PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
(lldb) type format info PatternIndex[1]
no format applies to (const uint8_t[35]) PatternIndex[1]
(lldb) type format add --format int uint8_t[35]
(lldb) type format info PatternIndex[1]
format applied to (const uint8_t[35]) PatternIndex[1] is: int8_t[]
(lldb) p PatternIndex[1]
(const uint8_t[35]) "\0\U00000001\b\U0000001b\"\a\U00000002\U00000003\U00000004\U00000005\U00000006\U0000000e\t\n\v\f\r!\U0000001c\U0000001d\U0000001e\U0000001f \U00000019\U0000001a\U0000000f\U00000010\U00000011\U00000012\U00000013\U00000014\U00000015\U00000016\U00000017\U00000018"
```

LLDB versions tested:
* lldb version 20.1.3
* lldb-1600.0.39.10 (Apple clang)

Anyone got a suggestion how to just print it as an array of integer values?
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to