On Tue, Oct 08, 2019 at 09:24:56AM -0700, William Baker wrote: > On 10/7/19 9:30 PM, Junio C Hamano wrote: > > SZEDER Gábor <szeder.dev@xxxxxxxxx> writes: > > > >>> func(PROGRESS | REGRESS); > >>> func(PROGRESS + REGRESS); > >>> func(PROGRESS * 3); > >>> } > >>> > >>> how caller came about to give 3? > >> > >> No, they tend to show (PROGRESS | REGRESS), at least both gdb and lldb > >> do. > I tried to see how lldb would handle the "PROGRESS * 3" scenario > but I was unable to get lldb to display the "PROGRESS | REGRESS" format > even when ORing the flags: > > (lldb) l 399 > 399 enum test_flags { > 400 TEST_FLAG_1 = 1 << 0, > 401 TEST_FLAG_2 = 1 << 1, > 402 }; > 403 > 404 enum test_flags flags_1 = TEST_FLAG_1; > 405 enum test_flags flags_2 = TEST_FLAG_2; > 406 enum test_flags flags_both = TEST_FLAG_1 | TEST_FLAG_2; > 407 > 408 if (flags_1 || flags_2 || flags_both) > (lldb) p flags_1 > (test_flags) $0 = TEST_FLAG_1 > (lldb) p flags_2 > (test_flags) $1 = TEST_FLAG_2 > (lldb) p flags_both > (test_flags) $2 = 3 > (lldb) fr v flags_both > (test_flags) flags_both = 3 > (lldb) fr v --format enum flags_both > (test_flags) flags_both = 3 > (lldb) version > lldb-902.0.79.7 > Swift-4.1 > > Is there something that needs to be adjusted in the config or with > --format to display "TEST_FLAG_1 | TEST_FLAG_2" in this example? I'm afraid you are right and lldb doesn't do this, at least not by default, what a pity. I tried different versions of gdb and lldb, distro-shipped older ones and some more recent in containers a couple of days ago; now I tried it again and see the same behavior as you, so I must have misremembered. Sorry for the confusion. gdb still does the user-friendly thing, though.