我有一个以字符\0
开头的字符串 - 它是设计的,我知道它的实际长度。
如果我知道它的长度,如何使用"\0foo\0bar\0"
之类的转义打印其表示?
答案 0 :(得分:6)
嗯,您应该能够将其打印为数组:
print *str@length
答案 1 :(得分:0)
您可以使用GDB printf命令。
你只需要打印char *,加1,这样你就没有NULL字符。
如果您有以下代码:
int main( void )
{
char * s1 = "abcd";
char * s2 = "\0abcd";
return 0;
}
使用以下命令编译您的程序:
gcc -Wall -g -o test test.c
然后运行GDB:
gdb test
(gdb) break main
(gdb) run
Breakpoint 1 at 0x100000f04: file test.c, line 3.
(gdb) si
1 char * s1 = "abcd";
(gdb) si
2 char * s2 = "\0abcd";
(gdb) printf "%s", s1
abcd
(gdb) printf "%s", s2+1
abcd