linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] scripts/gdb: Add automatic path expansion when loading modules
@ 2016-06-07 21:26 Nikolay Borisov
  2016-06-08  9:35 ` Jan Kiszka
  0 siblings, 1 reply; 7+ messages in thread
From: Nikolay Borisov @ 2016-06-07 21:26 UTC (permalink / raw)
  To: jan.kiszka; +Cc: linux-kernel, Nikolay Borisov

Python doesn't do automatic expansion of paths. In case one passes
path of the from ~/foo/bar the gdb scripts won't automatically expand
that and as a result the symbols files won't be loaded. Fix this
by explicitly expanding all paths which begin with "~"

Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
---
 scripts/gdb/linux/symbols.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
index 9a0f8923f67c..2f5b2bee8c34 100644
--- a/scripts/gdb/linux/symbols.py
+++ b/scripts/gdb/linux/symbols.py
@@ -81,6 +81,12 @@ lx-symbols command."""
                         self.module_files.append(root + "/" + name)
         self.module_files_updated = True
 
+    def __expand_homedir(self):
+        for index, path in enumerate(self.module_paths):
+            if path.startswith("~"):
+                self.module_paths[index] = os.path.expanduser(path)
+
+
     def _get_module_file(self, module_name):
         module_pattern = ".*/{0}\.ko$".format(
             module_name.replace("_", r"[_\-]"))
@@ -160,6 +166,7 @@ lx-symbols command."""
         self.module_files = []
         self.module_files_updated = False
 
+        self.__expand_homedir()
         self.load_all_symbols()
 
         if hasattr(gdb, 'Breakpoint'):
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] scripts/gdb: Add automatic path expansion when loading modules
  2016-06-07 21:26 [PATCH] scripts/gdb: Add automatic path expansion when loading modules Nikolay Borisov
@ 2016-06-08  9:35 ` Jan Kiszka
  2016-06-08 10:09   ` Nikolay Borisov
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Kiszka @ 2016-06-08  9:35 UTC (permalink / raw)
  To: Nikolay Borisov; +Cc: linux-kernel, Kieran Bingham

On 2016-06-07 23:26, Nikolay Borisov wrote:
> Python doesn't do automatic expansion of paths. In case one passes
> path of the from ~/foo/bar the gdb scripts won't automatically expand
> that and as a result the symbols files won't be loaded. Fix this
> by explicitly expanding all paths which begin with "~"
> 
> Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
> ---
>  scripts/gdb/linux/symbols.py | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
> index 9a0f8923f67c..2f5b2bee8c34 100644
> --- a/scripts/gdb/linux/symbols.py
> +++ b/scripts/gdb/linux/symbols.py
> @@ -81,6 +81,12 @@ lx-symbols command."""
>                          self.module_files.append(root + "/" + name)
>          self.module_files_updated = True
>  
> +    def __expand_homedir(self):
> +        for index, path in enumerate(self.module_paths):
> +            if path.startswith("~"):
> +                self.module_paths[index] = os.path.expanduser(path)
> +
> +
>      def _get_module_file(self, module_name):
>          module_pattern = ".*/{0}\.ko$".format(
>              module_name.replace("_", r"[_\-]"))
> @@ -160,6 +166,7 @@ lx-symbols command."""
>          self.module_files = []
>          self.module_files_updated = False
>  
> +        self.__expand_homedir()
>          self.load_all_symbols()
>  
>          if hasattr(gdb, 'Breakpoint'):
> 

Valid point, but let's expand unconditionally in invoke when building
self.module_paths.

I'm no Python expert, but my feeling tells me that there is even a more
compact way to do loop. Does this work?

module_paths = [expanduser(p) for p in arg.spilt()]

Jan

-- 
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] scripts/gdb: Add automatic path expansion when loading modules
  2016-06-08  9:35 ` Jan Kiszka
@ 2016-06-08 10:09   ` Nikolay Borisov
  2016-06-08 10:21     ` Jan Kiszka
  0 siblings, 1 reply; 7+ messages in thread
From: Nikolay Borisov @ 2016-06-08 10:09 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: linux-kernel, Kieran Bingham



On 06/08/2016 12:35 PM, Jan Kiszka wrote:
> On 2016-06-07 23:26, Nikolay Borisov wrote:
>> Python doesn't do automatic expansion of paths. In case one passes
>> path of the from ~/foo/bar the gdb scripts won't automatically expand
>> that and as a result the symbols files won't be loaded. Fix this
>> by explicitly expanding all paths which begin with "~"
>>
>> Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
>> ---
>>  scripts/gdb/linux/symbols.py | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
>> index 9a0f8923f67c..2f5b2bee8c34 100644
>> --- a/scripts/gdb/linux/symbols.py
>> +++ b/scripts/gdb/linux/symbols.py
>> @@ -81,6 +81,12 @@ lx-symbols command."""
>>                          self.module_files.append(root + "/" + name)
>>          self.module_files_updated = True
>>  
>> +    def __expand_homedir(self):
>> +        for index, path in enumerate(self.module_paths):
>> +            if path.startswith("~"):
>> +                self.module_paths[index] = os.path.expanduser(path)
>> +
>> +
>>      def _get_module_file(self, module_name):
>>          module_pattern = ".*/{0}\.ko$".format(
>>              module_name.replace("_", r"[_\-]"))
>> @@ -160,6 +166,7 @@ lx-symbols command."""
>>          self.module_files = []
>>          self.module_files_updated = False
>>  
>> +        self.__expand_homedir()
>>          self.load_all_symbols()
>>  
>>          if hasattr(gdb, 'Breakpoint'):
>>
> 
> Valid point, but let's expand unconditionally in invoke when building
> self.module_paths.
> 
> I'm no Python expert, but my feeling tells me that there is even a more
> compact way to do loop. Does this work?
> 
> module_paths = [expanduser(p) for p in arg.spilt()]

module_paths = [os.path.expanduser(p) for p in arg.spilt()] does work.

I'm no python expert either, but list comprehensions is more idiomatic
indeed. I will cook up a patch tonight and resend, unless you want to do
it.

> 
> Jan
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] scripts/gdb: Add automatic path expansion when loading modules
  2016-06-08 10:09   ` Nikolay Borisov
@ 2016-06-08 10:21     ` Jan Kiszka
  2016-06-08 16:28       ` [PATCH] scripts/gdb: Perform path expansion to lx-symbol's arguments Nikolay Borisov
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Kiszka @ 2016-06-08 10:21 UTC (permalink / raw)
  To: Nikolay Borisov; +Cc: linux-kernel, Kieran Bingham

On 2016-06-08 12:09, Nikolay Borisov wrote:
> 
> 
> On 06/08/2016 12:35 PM, Jan Kiszka wrote:
>> On 2016-06-07 23:26, Nikolay Borisov wrote:
>>> Python doesn't do automatic expansion of paths. In case one passes
>>> path of the from ~/foo/bar the gdb scripts won't automatically expand
>>> that and as a result the symbols files won't be loaded. Fix this
>>> by explicitly expanding all paths which begin with "~"
>>>
>>> Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
>>> ---
>>>  scripts/gdb/linux/symbols.py | 7 +++++++
>>>  1 file changed, 7 insertions(+)
>>>
>>> diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
>>> index 9a0f8923f67c..2f5b2bee8c34 100644
>>> --- a/scripts/gdb/linux/symbols.py
>>> +++ b/scripts/gdb/linux/symbols.py
>>> @@ -81,6 +81,12 @@ lx-symbols command."""
>>>                          self.module_files.append(root + "/" + name)
>>>          self.module_files_updated = True
>>>  
>>> +    def __expand_homedir(self):
>>> +        for index, path in enumerate(self.module_paths):
>>> +            if path.startswith("~"):
>>> +                self.module_paths[index] = os.path.expanduser(path)
>>> +
>>> +
>>>      def _get_module_file(self, module_name):
>>>          module_pattern = ".*/{0}\.ko$".format(
>>>              module_name.replace("_", r"[_\-]"))
>>> @@ -160,6 +166,7 @@ lx-symbols command."""
>>>          self.module_files = []
>>>          self.module_files_updated = False
>>>  
>>> +        self.__expand_homedir()
>>>          self.load_all_symbols()
>>>  
>>>          if hasattr(gdb, 'Breakpoint'):
>>>
>>
>> Valid point, but let's expand unconditionally in invoke when building
>> self.module_paths.
>>
>> I'm no Python expert, but my feeling tells me that there is even a more
>> compact way to do loop. Does this work?
>>
>> module_paths = [expanduser(p) for p in arg.spilt()]
> 
> module_paths = [os.path.expanduser(p) for p in arg.spilt()] does work.
> 
> I'm no python expert either, but list comprehensions is more idiomatic
> indeed. I will cook up a patch tonight and resend, unless you want to do
> it.

Go ahead, looking forward to your patch!

Thanks
Jan

-- 
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH] scripts/gdb: Perform path expansion to lx-symbol's arguments
  2016-06-08 10:21     ` Jan Kiszka
@ 2016-06-08 16:28       ` Nikolay Borisov
  2016-06-13  6:18         ` Jan Kiszka
  0 siblings, 1 reply; 7+ messages in thread
From: Nikolay Borisov @ 2016-06-08 16:28 UTC (permalink / raw)
  To: jan.kiszka; +Cc: linux-kernel, Nikolay Borisov

Python doesn't do automatic expansion of paths. In case one passes
path of the from ~/foo/bar the gdb scripts won't automatically expand
that and as a result the symbols files won't be loaded. Fix this
by explicitly expanding all paths which begin with "~"

Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
---
 scripts/gdb/linux/symbols.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
index 9a0f8923f67c..004b0ac7fa72 100644
--- a/scripts/gdb/linux/symbols.py
+++ b/scripts/gdb/linux/symbols.py
@@ -153,7 +153,7 @@ lx-symbols command."""
             saved_state['breakpoint'].enabled = saved_state['enabled']
 
     def invoke(self, arg, from_tty):
-        self.module_paths = arg.split()
+        self.module_paths = [os.path.expanduser(p) for p in arg.split()]
         self.module_paths.append(os.getcwd())
 
         # enforce update
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] scripts/gdb: Perform path expansion to lx-symbol's arguments
  2016-06-08 16:28       ` [PATCH] scripts/gdb: Perform path expansion to lx-symbol's arguments Nikolay Borisov
@ 2016-06-13  6:18         ` Jan Kiszka
  2016-06-13  8:54           ` Kieran Bingham
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Kiszka @ 2016-06-13  6:18 UTC (permalink / raw)
  To: Nikolay Borisov, Kieran Bingham; +Cc: linux-kernel

On 2016-06-08 18:28, Nikolay Borisov wrote:
> Python doesn't do automatic expansion of paths. In case one passes
> path of the from ~/foo/bar the gdb scripts won't automatically expand
> that and as a result the symbols files won't be loaded. Fix this
> by explicitly expanding all paths which begin with "~"
> 
> Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
> ---
>  scripts/gdb/linux/symbols.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
> index 9a0f8923f67c..004b0ac7fa72 100644
> --- a/scripts/gdb/linux/symbols.py
> +++ b/scripts/gdb/linux/symbols.py
> @@ -153,7 +153,7 @@ lx-symbols command."""
>              saved_state['breakpoint'].enabled = saved_state['enabled']
>  
>      def invoke(self, arg, from_tty):
> -        self.module_paths = arg.split()
> +        self.module_paths = [os.path.expanduser(p) for p in arg.split()]
>          self.module_paths.append(os.getcwd())
>  
>          # enforce update
> 

Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>

Kieran, will you take this, as you are already preparing other patches?

Thanks,
Jan

-- 
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] scripts/gdb: Perform path expansion to lx-symbol's arguments
  2016-06-13  6:18         ` Jan Kiszka
@ 2016-06-13  8:54           ` Kieran Bingham
  0 siblings, 0 replies; 7+ messages in thread
From: Kieran Bingham @ 2016-06-13  8:54 UTC (permalink / raw)
  To: Jan Kiszka, Nikolay Borisov; +Cc: linux-kernel



On 13/06/16 07:18, Jan Kiszka wrote:
> On 2016-06-08 18:28, Nikolay Borisov wrote:
>> Python doesn't do automatic expansion of paths. In case one passes
>> path of the from ~/foo/bar the gdb scripts won't automatically expand
>> that and as a result the symbols files won't be loaded. Fix this
>> by explicitly expanding all paths which begin with "~"
>>
>> Signed-off-by: Nikolay Borisov <n.borisov.lkml@gmail.com>
>> ---
>>  scripts/gdb/linux/symbols.py | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/scripts/gdb/linux/symbols.py b/scripts/gdb/linux/symbols.py
>> index 9a0f8923f67c..004b0ac7fa72 100644
>> --- a/scripts/gdb/linux/symbols.py
>> +++ b/scripts/gdb/linux/symbols.py
>> @@ -153,7 +153,7 @@ lx-symbols command."""
>>              saved_state['breakpoint'].enabled = saved_state['enabled']
>>  
>>      def invoke(self, arg, from_tty):
>> -        self.module_paths = arg.split()
>> +        self.module_paths = [os.path.expanduser(p) for p in arg.split()]
>>          self.module_paths.append(os.getcwd())
>>  
>>          # enforce update
>>
> 
> Reviewed-by: Jan Kiszka <jan.kiszka@siemens.com>
> 
> Kieran, will you take this, as you are already preparing other patches?

Yes, that should be fine.

> Thanks,
> Jan
> 

-- 
Regards

Kieran Bingham

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-06-13  8:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-07 21:26 [PATCH] scripts/gdb: Add automatic path expansion when loading modules Nikolay Borisov
2016-06-08  9:35 ` Jan Kiszka
2016-06-08 10:09   ` Nikolay Borisov
2016-06-08 10:21     ` Jan Kiszka
2016-06-08 16:28       ` [PATCH] scripts/gdb: Perform path expansion to lx-symbol's arguments Nikolay Borisov
2016-06-13  6:18         ` Jan Kiszka
2016-06-13  8:54           ` Kieran Bingham

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).