1. 18 2月, 2015 4 次提交
    • J
      scripts/gdb: convert ModuleList to generator function · fffb944c
      Jan Kiszka 提交于
      Analogously to the task list, convert the module list to a generator
      function.  It noticeably simplifies the code.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ben Widawsky <ben@bwidawsk.net>
      Cc: Borislav Petkov <bp@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fffb944c
    • P
      scripts/gdb: port to python3 / gdb7.7 · 276d97d9
      Pantelis Koukousoulas 提交于
      I tried to use these scripts in an ubuntu 14.04 host (gdb 7.7 compiled
      against python 3.3) but there were several errors.
      
      I believe this patch fixes these issues so that the commands now work (I
      tested lx-symbols, lx-dmesg, lx-lsmod).
      
      Main issues that needed to be resolved:
      
        * In python 2 iterators have a "next()" method. In python 3 it is
          __next__() instead (so let's just add both).
      
        * In older python versions there was an implicit conversion
          in object.__format__() (used when an object is in string.format())
          where it was converting the object to str first and then
          calling str's __format__(). This has now been removed so
          we must explicitly convert to str the objects for which
          we need to keep this behavior.
      
        * In dmesg.py: in python 3 log_buf is now a "memoryview" object
          which needs to be converted to a string in order to use string
          methods like "splitlines()". Luckily memoryview exists in
          python 2.7.6 as well, so we can convert log_buf to memoryview
          and use the same code in both python 2 and python 3.
      
      This version of the patch has now been tested with gdb 7.7 and both python
      3.4 and python 2.7.6 (I think asking for at least python 2.7.6 is a
      reasonable requirement instead of complicating the code with version
      checks etc).
      Signed-off-by: NPantelis Koukousoulas <pktoss@gmail.com>
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ben Widawsky <ben@bwidawsk.net>
      Cc: Borislav Petkov <bp@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      276d97d9
    • J
      scripts/gdb: add automatic symbol reloading on module insertion · 82b41e3d
      Jan Kiszka 提交于
      This installs a silent breakpoint on the do_init_module function.  The
      breakpoint handler will try to load symbols from the module files found
      during lx-symbols execution.  This way, breakpoints can be set to module
      initialization functions, and there is no need to explicitly call
      lx-symbols after (re-)loading a module.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ben Widawsky <ben@bwidawsk.net>
      Cc: Borislav Petkov <bp@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      82b41e3d
    • J
      scripts/gdb: add lx-symbols command · 66051720
      Jan Kiszka 提交于
      This is probably the most useful helper when debugging kernel modules:
      lx-symbols first reloads vmlinux.  Then it searches recursively for *.ko
      files in the specified paths and the current directory.  Finally it walks
      the kernel's module list, issuing the necessary add-symbol-file command
      for each loaded module so that gdb knows which module symbol corresponds
      to which address.  It also looks up variable sections (bss, data, rodata)
      and appends their address to the add-symbole-file command line.  This
      allows to access global module variables just like any other variable.
      Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Jason Wessel <jason.wessel@windriver.com>
      Cc: Andi Kleen <andi@firstfloor.org>
      Cc: Ben Widawsky <ben@bwidawsk.net>
      Cc: Borislav Petkov <bp@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      66051720