----- Original Message ----- > > Hi Dave, > > thank you for the comments. Here is the fixed patch. > > Best, > Alexandr Hi Alexandr, I actually haven't studied the meat of parse_for_member_new() yet, but in testing the patch, I've come up with a few issues that still need addressing. Unlike what you have done for "struct" and "list", when the "task" command calls task_struct_member(), if *any* of the comma-separated members are the new complicated format, you set the call_new_parser flag, so it somewhat defeats the purpose of having the flag at all: if (call_new_parser) { for (i = 0; i < argcnt; i++) { dm.member = arglist[i]; parse_for_member_new(&dm, 0); } } else { parse_task_thread(argcnt, arglist, tc); } I still would like the confidence of knowing that the old function will still be used with the simple "struct.member" format. And related to the issue above, here's a bug -- the "task" command is quite often useful to call from "foreach", where for each task, the task's banner is displayed followed by the requested data. For example: crash> foreach task -R prio,sched_class PID: 0 TASK: ffffffff81c13440 CPU: 0 COMMAND: "swapper/0" prio = 0x78, sched_class = 0xffffffff81808960 <idle_sched_class>, PID: 0 TASK: ffff88021282d330 CPU: 1 COMMAND: "swapper/1" prio = 0x78, sched_class = 0xffffffff81808960 <idle_sched_class>, PID: 0 TASK: ffff88021282dac0 CPU: 2 COMMAND: "swapper/2" prio = 0x78, sched_class = 0xffffffff81808960 <idle_sched_class>, PID: 0 TASK: ffff88021282e250 CPU: 3 COMMAND: "swapper/3" prio = 0x78, sched_class = 0xffffffff81808960 <idle_sched_class>, PID: 1 TASK: ffff880212828000 CPU: 2 COMMAND: "systemd" prio = 0x78, sched_class = 0xffffffff81808a40 <fair_sched_class>, PID: 2 TASK: ffff880212828790 CPU: 3 COMMAND: "kthreadd" prio = 0x78, sched_class = 0xffffffff81808a40 <fair_sched_class>, PID: 3 TASK: ffff880212828f20 CPU: 0 COMMAND: "ksoftirqd/0" prio = 0x78, sched_class = 0xffffffff81808a40 <fair_sched_class>, PID: 5 TASK: ffff880212829e40 CPU: 0 COMMAND: "kworker/0:0H" prio = 0x64, sched_class = 0xffffffff81808a40 <fair_sched_class>, PID: 7 TASK: ffff88021282ad60 CPU: 0 COMMAND: "kworker/u:0H" prio = 0x64, sched_class = 0xffffffff81808a40 <fair_sched_class>, PID: 8 TASK: ffff88021282b4f0 CPU: 0 COMMAND: "migration/0" prio = 0x0, sched_class = 0xffffffff81808d20 <stop_sched_class>, ... But when I add a new extended reference, the banner doesn't get displayed, rendering the command useless: crash> foreach task -R prio,sched_class,se.on_rq prio = 0x78, sched_class = 0xffffffff81808960 <idle_sched_class>, se.on_rq = 0x0, prio = 0x78, sched_class = 0xffffffff81808960 <idle_sched_class>, se.on_rq = 0x0, prio = 0x78, sched_class = 0xffffffff81808960 <idle_sched_class>, se.on_rq = 0x0, prio = 0x78, sched_class = 0xffffffff81808960 <idle_sched_class>, se.on_rq = 0x0, prio = 0x78, sched_class = 0xffffffff81808a40 <fair_sched_class>, se.on_rq = 0x0, prio = 0x78, sched_class = 0xffffffff81808a40 <fair_sched_class>, se.on_rq = 0x0, prio = 0x78, sched_class = 0xffffffff81808a40 <fair_sched_class>, se.on_rq = 0x0, prio = 0x64, sched_class = 0xffffffff81808a40 <fair_sched_class>, se.on_rq = 0x0, prio = 0x64, sched_class = 0xffffffff81808a40 <fair_sched_class>, se.on_rq = 0x0, prio = 0x0, sched_class = 0xffffffff81808d20 <stop_sched_class>, se.on_rq = 0x0, ... Also, similar to the "list" command, the "tree" command also supports the "-s struct.member" option: crash> help tree ... [ cut ] ... -s struct For each entry in a tree, format and print it as this type of data structure; use the "struct.member" format in order to display a particular member of the structure. To display multiple members of a structure, use a comma-separated list of members. Can you look into putting support there as well? I'm also going to need "help" page updates for the commands that use "struct.member" arguments. I would do it, but if you want to get a head-start, please feel free to do so. Thanks, Dave -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility