On Tue, Apr 28, 2015 at 09:44:43AM -0400, Dave Anderson wrote: > ----- Original Message ----- > > ----- Original Message ----- > > > Hi Dave, > > > > > > I found it useful to be able listing structure's fields which are resided > > > deeper than the first level: > > > > > > crash> list super_block.s_list -s > > > super_block.s_id,s_dquot.info[1].dqi_dirty_list,s_dquot.dqonoff_mutex.count.counter > > > -H 0xc0a9c800 > > > de805c00 > > > s_id = > > > "sysfs\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000", > > > s_dquot.info[1].dqi_dirty_list = { > > > next = 0x0, > > > prev = 0x0 > > > }, > > > s_dquot.dqonoff_mutex.count.counter = 1 > > > de805800 > > > s_id = > > > "rootfs\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000", > > > s_dquot.info[1].dqi_dirty_list = { > > > next = 0x0, > > > prev = 0x0 > > > }, > > > s_dquot.dqonoff_mutex.count.counter = 1 > > > > > > Here is a draft patch which contains corresponding logic. > > > I will appreciate your comments and suggestions. > > > > > > Best regards, > > > Alexandr > > > > Hi Alexandr, > > > > This looks quite useful. > > > > I haven't looked at the details, but this kind of change modifies an a critical > > area of usage that I cannot risk breaking. > > > > To prevent any kind of possible regression/breakage or other unexpected behavior, > > would it be possible to call parse_for_member_new() *only* if it is required? > > In other words, if the commented-out MEMBER_EXISTS() call fails, then you could > > set a flag to force it to attempt parse_for_member_new(). Otherwise, it could > > continue to use the older/simpler parse_for_member() function. Sounds reasonable. Will do. > > I'll dig into the patch later, test it out, etc., and it's entirely possible > > that I'll change my mind, but paranoia forces me to err on the side of caution. > > > > Dave > > Another issue that comes to mind is that there are several other instances > in the crash utility command set besides the "list" command that specify > arguments that can be expressed in the "struct.member" format. > > By any chance, did you also attempt to fit this capability into the "struct" > command itself? And then there's also "tree", "task -R", "waitq", etc. Haven't seen these commands before, will check. However I've found some issue while testing, so please wait with review until I send fixed version. Thank you, Alexandr. -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility