This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Don't munge yacc's #line directives


On 01/08/2015 01:01 AM, Patrick Palka wrote:
> The #line directives within GDB's autogenerated yacc files (e.g.
> c-exp.c) are being munged by a dubious sed expression that is causing
> these directives to refer to nonexistent source files.  As a result it
> is currently not possible to debug these source files at source level.
> 
> The culprit sed expression was added by commit 954d8cae for non-obvious
> reasons.  

That predates when we started putting more complete descriptions
in the commit log.  Did you look for the mailing list patch submission?
That should have included a description.  If not, then maybe Jan
recalls.  The expression refers to basename and slashes, it makes
me wonder whether this was build-in-srcdir vs build-out-of-srcdir
related.


> My guess is that the expression was added to work around a bug
> in ylwrap which has since been fixed upstream: if I revert the November
> 2014 update to ylwrap, commit be3046511, then the culprit sed line no

OOC, got url for that git repo?

Thanks,
Pedro Alves

> longer causes the above mentioned issue.
> 
> So this patch removes the culprit sed script since it does not seem
> needed anymore; the emitted #line directives look and work fine without
> it.
> 
> gdb/ChangeLog:
> 
> 2015-01-07  Patrick Palka  <patrick@parcs.ath.cx>
> 
> 	* Makefile.in (.y.c): Don't munge yacc's #line
> 	directives.
> ---
>  gdb/Makefile.in | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> index 31c8a4c..97d0045 100644
> --- a/gdb/Makefile.in
> +++ b/gdb/Makefile.in
> @@ -1856,7 +1856,6 @@ po/$(PACKAGE).pot: force
>  	     -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \
>  	     -e 's/\([ \t;,(]\)free$$/\1xfree/g' \
>  	     -e '/^#line.*y.tab.c/d' \
> -	     -e "s/^\(#line.*\)`basename $<`/\1`echo $<|sed 's/\//\\\\\//g'`/" \
>  	  < $@.tmp > $@
>  	rm -f $@.tmp
>  .l.c:
> 



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]