Message ID | 1413982654-15995-1-git-send-email-yao@codesourcery.com |
---|---|
State | New |
Headers | show |
Yao Qi <yao@codesourcery.com> writes: > In gdb/command/prompt.py:before_prompt_hook, the '\' in the new prompt > is replaced with '\\', shown as below, > >> def before_prompt_hook(self, current): >> if self.value is not '': >> newprompt = gdb.prompt.substitute_prompt(self.value) >> return newprompt.replace('\\', '\\\\') >> else: >> return None > > I don't see any explanations on this in comments nor email. As doc > said, "set extended-prompt \w" substitute the current working > directory, but it prints something different from what pwd or > os.getcwdu() prints on mingw32 host. > > (gdb) python print os.getcwdu()^M > \\build2-lucid-cs\yqi\yqi\arm-none-eabi > > (gdb) pwd^M > Working directory \\build2-lucid-cs\yqi\yqi\arm-none-eabi > > (gdb) set extended-prompt \w > \\\\build2-lucid-cs\\yqi\\yqi\\arm-none-eabi > > This makes me think whether the substitution in before_prompt_hook is > necessary or not. This patch is to remove this substitution. > > Run gdb.python on x86_64-linux and arm-none-eabi on mingw32 host. No > regressions. Is it OK? > > gdb: > > 2014-10-22 Yao Qi <yao@codesourcery.com> > > * python/lib/gdb/command/prompt.py (before_prompt_hook): Don't > replace '\\' with '\\\\'.: The trailing : can be removed. I appreciate people familiar with gdb python can review this patch, so, here is a ping.
On 29/10/14 14:19, Yao Qi wrote: > Yao Qi <yao@codesourcery.com> writes: > >> In gdb/command/prompt.py:before_prompt_hook, the '\' in the new prompt >> is replaced with '\\', shown as below, >> >>> def before_prompt_hook(self, current): >>> if self.value is not '': >>> newprompt = gdb.prompt.substitute_prompt(self.value) >>> return newprompt.replace('\\', '\\\\') >>> else: >>> return None >> >> I don't see any explanations on this in comments nor email. As doc >> said, "set extended-prompt \w" substitute the current working >> directory, but it prints something different from what pwd or >> os.getcwdu() prints on mingw32 host. >> >> (gdb) python print os.getcwdu()^M >> \\build2-lucid-cs\yqi\yqi\arm-none-eabi >> >> (gdb) pwd^M >> Working directory \\build2-lucid-cs\yqi\yqi\arm-none-eabi >> >> (gdb) set extended-prompt \w >> \\\\build2-lucid-cs\\yqi\\yqi\\arm-none-eabi >> >> This makes me think whether the substitution in before_prompt_hook is >> necessary or not. This patch is to remove this substitution. >> >> Run gdb.python on x86_64-linux and arm-none-eabi on mingw32 host. No >> regressions. Is it OK? >> >> gdb: >> >> 2014-10-22 Yao Qi <yao@codesourcery.com> >> >> * python/lib/gdb/command/prompt.py (before_prompt_hook): Don't >> replace '\\' with '\\\\'.: > > The trailing : can be removed. I appreciate people familiar with gdb > python can review this patch, so, here is a ping. > If the tests pass, I think it is fine. We are not close to a release, so we can put it back if it causes issues (and fix up some new tests to catch the regression.) Cheers Phil
On 29/10/14 14:34, Phil Muldoon wrote: > On 29/10/14 14:19, Yao Qi wrote: >> Yao Qi <yao@codesourcery.com> writes: >> >>> In gdb/command/prompt.py:before_prompt_hook, the '\' in the new prompt >>> is replaced with '\\', shown as below, >>> >>>> def before_prompt_hook(self, current): >>>> if self.value is not '': >>>> newprompt = gdb.prompt.substitute_prompt(self.value) >>>> return newprompt.replace('\\', '\\\\') >>>> else: >>>> return None >>> I don't see any explanations on this in comments nor email. As doc >>> said, "set extended-prompt \w" substitute the current working >>> directory, but it prints something different from what pwd or >>> os.getcwdu() prints on mingw32 host. >>> >>> (gdb) python print os.getcwdu()^M >>> \\build2-lucid-cs\yqi\yqi\arm-none-eabi >>> >>> (gdb) pwd^M >>> Working directory \\build2-lucid-cs\yqi\yqi\arm-none-eabi >>> >>> (gdb) set extended-prompt \w >>> \\\\build2-lucid-cs\\yqi\\yqi\\arm-none-eabi >>> >>> This makes me think whether the substitution in before_prompt_hook is >>> necessary or not. This patch is to remove this substitution. >>> >>> Run gdb.python on x86_64-linux and arm-none-eabi on mingw32 host. No >>> regressions. Is it OK? >>> >>> gdb: >>> >>> 2014-10-22 Yao Qi <yao@codesourcery.com> >>> >>> * python/lib/gdb/command/prompt.py (before_prompt_hook): Don't >>> replace '\\' with '\\\\'.: >> The trailing : can be removed. I appreciate people familiar with gdb >> python can review this patch, so, here is a ping. >> > If the tests pass, I think it is fine. We are not close to a release, > so we can put it back if it causes issues (and fix up some new tests > to catch the regression.) > Oops I better clarify, this is for mainline, not the impending 7.8.1 release? Cheers Phil
Phil Muldoon <pmuldoon@redhat.com> writes: >> If the tests pass, I think it is fine. We are not close to a release, >> so we can put it back if it causes issues (and fix up some new tests >> to catch the regression.) >> > Oops I better clarify, this is for mainline, not the impending 7.8.1 release? Phil, this patch is for mainline.
Yao Qi <yao@codesourcery.com> writes: >>> If the tests pass, I think it is fine. We are not close to a release, >>> so we can put it back if it causes issues (and fix up some new tests >>> to catch the regression.) >>> >> Oops I better clarify, this is for mainline, not the impending 7.8.1 release? > > Phil, > this patch is for mainline. I've pushed it in to mainline.
diff --git a/gdb/python/lib/gdb/command/prompt.py b/gdb/python/lib/gdb/command/prompt.py index e7dc3da..5e973e4 100644 --- a/gdb/python/lib/gdb/command/prompt.py +++ b/gdb/python/lib/gdb/command/prompt.py @@ -58,8 +58,7 @@ The currently defined substitutions are: def before_prompt_hook(self, current): if self.value is not '': - newprompt = gdb.prompt.substitute_prompt(self.value) - return newprompt.replace('\\', '\\\\') + return gdb.prompt.substitute_prompt(self.value) else: return None