Segfault on Comment Line

View: New views
4 Messages — Rating Filter:   Alert me  

Segfault on Comment Line

by Neil Tiffin-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

indent 2.2.9 and 2.2.10 are both segfaulting on a comment line and in  
the same place.

Below is part of both the resultant file and the source file.  The  
full source file is at

        http://code.google.com/p/rpostgresql/source/browse/trunk/RPostgreSQL/src/RS-PostgreSQL.c

When run under debug the following backtrace is produced

MBP:src nt$ gdb --args /Users/nt/Downloads/indent-2.2.10/src/indent --
verbose -br -i4 -nut --line-length120 --comment-line-length120 --leave-
preprocessor-space -npcs RS-PostgreSQL.c
GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40  
UTC 2008)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and  
you are
welcome to change it and/or distribute copies of it under certain  
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for  
details.
This GDB was configured as "i386-apple-darwin"...Reading symbols for  
shared libraries .... done

(gdb) r
Starting program: /Users/neiltiffin/Downloads/indent-2.2.10/src/indent  
--verbose -br -i4 -nut --line-length120 --comment-line-length120 --
leave-preprocessor-space -npcs RS-PostgreSQL.c
Reading symbols for shared libraries +++. done
option: br
option: i
option: nut
option: l
option: lc
option: lps
option: npcs
indent: RS-PostgreSQL.c:139: Warning:Line broken 2
indent: RS-PostgreSQL.c:140: Warning:Line broken 2
indent: RS-PostgreSQL.c:141: Warning:Line broken 2
indent: RS-PostgreSQL.c:142: Warning:Line broken 2
indent: RS-PostgreSQL.c:143: Warning:Line broken 2
indent: RS-PostgreSQL.c:144: Warning:Line broken 2
indent: RS-PostgreSQL.c:145: Warning:Line broken 2
indent: RS-PostgreSQL.c:184: Warning:Line broken 2
indent: RS-PostgreSQL.c:185: Warning:Line broken 2
indent: RS-PostgreSQL.c:186: Warning:Line broken 2
indent: RS-PostgreSQL.c:187: Warning:Line broken 2
indent: RS-PostgreSQL.c:188: Warning:Line broken 2
indent: RS-PostgreSQL.c:189: Warning:Line broken 2
indent: RS-PostgreSQL.c:190: Warning:Line broken 2
indent: RS-PostgreSQL.c:360: Warning:Line broken 2
indent: RS-PostgreSQL.c:432: Warning:Line broken 2
indent: RS-PostgreSQL.c:438: Warning:Line broken 2
indent: RS-PostgreSQL.c:597: Warning:old style assignment ambiguity in  
"=-".  Assuming "= -"

indent: RS-PostgreSQL.c:618: Warning:Line broken 2
indent: RS-PostgreSQL.c:620: Warning:Line broken 2
indent: RS-PostgreSQL.c:639: Warning:Line broken 2
indent: RS-PostgreSQL.c:674: Warning:Line broken 2

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0002d000
current_column () at code_io.c:204
204        switch (*p)
(gdb) bt
#0  current_column () at code_io.c:204
#1  0x00008158 in print_comment (paren_targ=0x15014,  
pbreak_line=0xbffff09c "") at comments.c:273
#2  0x000064a6 in indent (this_file=<value temporarily unavailable,  
due to optimizations>) at indent.c:2908
#3  0x00006eab in main (argc=10, argv=0xbffff1bc) at indent.c:3242
(gdb)

I suspect something in the source is causing this.  How do I  
troubleshoot to find out? The particular source line looks benign.  I  
have checked for goofy characters in the source and there are none.

Neil

the result file ends here.
==============================================================
#define BEGIN_GROUP     4       /* just read in 1'st row for a  
different group */
#define END_GROUP       8       /* just read the last row of the  
current group */
#define NEW_RECORD     16       /* unin


the partial source file is
==============================================================
s_object    *expand_list(s_object *old, Sint new_len);
void         add_group(s_object *group_names, s_object *data,
                             Stype *fld_Sclass, Sint group,
                             Sint ngroup, Sint i);
unsigned int check_groupEvents(s_object *data, Stype fld_Sclass[],
                           Sint row, Sint col);

/* The following are the masks for the events/states we recognize as we
  * bring rows from the result set/cursor
  */
#define NEVER           0
#define BEGIN           1  /* prior to reading 1st row from the  
resultset */
#define END             2  /* after reading last row from the result  
set  */
#define BEGIN_GROUP     4  /* just read in 1'st row for a different  
group */
#define END_GROUP       8  /* just read the last row of the current  
group */
#define NEW_RECORD     16  /* uninteresting */
#define PARTIAL_GROUP  32  /* too much data (>max_rex) partial  
buffer     */

/* the following are non-grouping events (e.g., db errors, memory) */
#define EXHAUSTED_DF   64  /* exhausted the allocated data.frame  */
#define EXHAUSTED_OUT 128  /* exhausted the allocated output list */
#define END_OF_DATA   256  /* end of data from the result set     */
#define DBMS_ERROR    512  /* error in remote dbms                */

/* beginGroupFun takes only one arg: the name of the current group */
s_object *
RS_DBI_invokeBeginGroup(s_object *callObj,      /* should be  
initialized */
                         const char *group_name, /* one string */
                         s_object *rho)
{
     S_EVALUATOR

     s_object *s_group_name, *val;

     /* make a copy of the argument */
     MEM_PROTECT(s_group_name = NEW_CHARACTER((Sint) 1));
     SET_CHR_EL(s_group_name, 0, C_S_CPY(group_name));




_______________________________________________
bug-indent mailing list
bug-indent@...
http://lists.gnu.org/mailman/listinfo/bug-indent

Re: Segfault on Comment Line

by indent-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I cannot reproduce the problem with indent 2.2.10 using x64 Suse.

Here is my terminal output:

*> indent --verbose -br -i4 -nut --line-length120
--comment-line-length120 --leave-preprocessor-space -npcs RS-PostgreSQL.c*
option: br
option: i
option: nut
option: l
option: lc
option: lps
option: npcs
There were 1301 non-blank output lines and 274 comments
(Lines with comments)/(Lines with code):  0.248
*> indent --version*
GNU indent 2.2.10

I suggest you look in the input source file UP TO line 139 where you
first get a warning - probably a missing comment close. The warning
about line 597 does not appear, but I do see the following line at L621:

                completed = -1;

What does your compiler say about the input file?

David

Neil Tiffin wrote:

> indent 2.2.9 and 2.2.10 are both segfaulting on a comment line and in
> the same place.
>
> Below is part of both the resultant file and the source file.  The
> full source file is at
>
>     http://code.google.com/p/rpostgresql/source/browse/trunk/RPostgreSQL/src/RS-PostgreSQL.c
>
>
> When run under debug the following backtrace is produced
>
> MBP:src nt$ gdb --args /Users/nt/Downloads/indent-2.2.10/src/indent
> --verbose -br -i4 -nut --line-length120 --comment-line-length120
> --leave-preprocessor-space -npcs RS-PostgreSQL.c
> GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40
> UTC 2008)
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and
> you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for
> details.
> This GDB was configured as "i386-apple-darwin"...Reading symbols for
> shared libraries .... done
>
> (gdb) r
> Starting program: /Users/neiltiffin/Downloads/indent-2.2.10/src/indent
> --verbose -br -i4 -nut --line-length120 --comment-line-length120
> --leave-preprocessor-space -npcs RS-PostgreSQL.c
> Reading symbols for shared libraries +++. done
> option: br
> option: i
> option: nut
> option: l
> option: lc
> option: lps
> option: npcs
> indent: RS-PostgreSQL.c:139: Warning:Line broken 2
> indent: RS-PostgreSQL.c:140: Warning:Line broken 2
> indent: RS-PostgreSQL.c:141: Warning:Line broken 2
> indent: RS-PostgreSQL.c:142: Warning:Line broken 2
> indent: RS-PostgreSQL.c:143: Warning:Line broken 2
> indent: RS-PostgreSQL.c:144: Warning:Line broken 2
> indent: RS-PostgreSQL.c:145: Warning:Line broken 2
> indent: RS-PostgreSQL.c:184: Warning:Line broken 2
> indent: RS-PostgreSQL.c:185: Warning:Line broken 2
> indent: RS-PostgreSQL.c:186: Warning:Line broken 2
> indent: RS-PostgreSQL.c:187: Warning:Line broken 2
> indent: RS-PostgreSQL.c:188: Warning:Line broken 2
> indent: RS-PostgreSQL.c:189: Warning:Line broken 2
> indent: RS-PostgreSQL.c:190: Warning:Line broken 2
> indent: RS-PostgreSQL.c:360: Warning:Line broken 2
> indent: RS-PostgreSQL.c:432: Warning:Line broken 2
> indent: RS-PostgreSQL.c:438: Warning:Line broken 2
> indent: RS-PostgreSQL.c:597: Warning:old style assignment ambiguity in
> "=-".  Assuming "= -"
>
> indent: RS-PostgreSQL.c:618: Warning:Line broken 2
> indent: RS-PostgreSQL.c:620: Warning:Line broken 2
> indent: RS-PostgreSQL.c:639: Warning:Line broken 2
> indent: RS-PostgreSQL.c:674: Warning:Line broken 2
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x0002d000
> current_column () at code_io.c:204
> 204            switch (*p)
> (gdb) bt
> #0  current_column () at code_io.c:204
> #1  0x00008158 in print_comment (paren_targ=0x15014,
> pbreak_line=0xbffff09c "") at comments.c:273
> #2  0x000064a6 in indent (this_file=<value temporarily unavailable,
> due to optimizations>) at indent.c:2908
> #3  0x00006eab in main (argc=10, argv=0xbffff1bc) at indent.c:3242
> (gdb)
>
> I suspect something in the source is causing this.  How do I
> troubleshoot to find out? The particular source line looks benign.  I
> have checked for goofy characters in the source and there are none.
>
> Neil
>
> the result file ends here.
> ==============================================================
> #define BEGIN_GROUP     4       /* just read in 1'st row for a
> different group */
> #define END_GROUP       8       /* just read the last row of the
> current group */
> #define NEW_RECORD     16       /* unin
>
>
> the partial source file is
> ==============================================================
> s_object    *expand_list(s_object *old, Sint new_len);
> void         add_group(s_object *group_names, s_object *data,
>                      Stype *fld_Sclass, Sint group,
>                  Sint ngroup, Sint i);
> unsigned int check_groupEvents(s_object *data, Stype fld_Sclass[],
>                           Sint row, Sint col);
>
> /* The following are the masks for the events/states we recognize as we
>  * bring rows from the result set/cursor
>  */
> #define NEVER           0
> #define BEGIN           1  /* prior to reading 1st row from the
> resultset */
> #define END             2  /* after reading last row from the result
> set  */
> #define BEGIN_GROUP     4  /* just read in 1'st row for a different
> group */
> #define END_GROUP       8  /* just read the last row of the current
> group */
> #define NEW_RECORD     16  /* uninteresting */
> #define PARTIAL_GROUP  32  /* too much data (>max_rex) partial
> buffer     */
>
> /* the following are non-grouping events (e.g., db errors, memory) */
> #define EXHAUSTED_DF   64  /* exhausted the allocated data.frame  */
> #define EXHAUSTED_OUT 128  /* exhausted the allocated output list */
> #define END_OF_DATA   256  /* end of data from the result set     */
> #define DBMS_ERROR    512  /* error in remote dbms                */
>
> /* beginGroupFun takes only one arg: the name of the current group */
> s_object *
> RS_DBI_invokeBeginGroup(s_object *callObj,      /* should be
> initialized */
>                         const char *group_name, /* one string */
>                         s_object *rho)
> {
>     S_EVALUATOR
>
>     s_object *s_group_name, *val;
>
>     /* make a copy of the argument */
>     MEM_PROTECT(s_group_name = NEW_CHARACTER((Sint) 1));
>     SET_CHR_EL(s_group_name, 0, C_S_CPY(group_name));
>
>
>
>
> _______________________________________________
> bug-indent mailing list
> bug-indent@...
> http://lists.gnu.org/mailman/listinfo/bug-indent
>



_______________________________________________
bug-indent mailing list
bug-indent@...
http://lists.gnu.org/mailman/listinfo/bug-indent

Re: Segfault on Comment Line

by Neil Tiffin-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ok, a couple of things.

1. Depending on when you checked the source file you may have used the  
wrong version.  After submitting the bug report, I updated the source  
file from r65 to r99. The original problem version is now here:

        http://code.google.com/p/rpostgresql/source/browse/trunk/RPostgreSQL/src/RS-PostgreSQL.c?r=65

        svn export -r 65 http://rpostgresql.googlecode.com/svn/trunk/RPostgreSQL/src/RS-PostgreSQL.c

2. I fixed the problem by running the source through astyle (http://sourceforge.net/projects/astyle 
) using the command "astyle --brackets=attach --verbose RS-
PostgreSQL.c" then through indent.  After being processed by astyle  
indent did not give any error.  You can diff the two files to see the  
changes.

3. Yes the line  "completed = -1;"  is ambiguous in the source.  
Either astyle or indent changed it.  The compiler never complained.  I  
am in the process of verifying the correct operation with unit tests.

4. I just verified again that checking out the code via the above svn  
command still has the same SEGFAULT problem.  It may be a line ending  
problem since svn changes depending on the operating system being  
used.  If you want I can send the exact file as it exists on my system.

5. The warnings at line 139 appear to be where a single line "if"  
statement is broken into two lines.  There are no comments in the  
vicinity of line 139.

6. running indent with no options on the original problem file seems  
to work fine.  Only reporting the following warnings.
        indent: RS-PostgreSQL.c:597: Warning:old style assignment ambiguity  
in "=-".  Assuming "= -"

        indent: RS-PostgreSQL.c:1118: Warning:old style assignment ambiguity  
in "=-".  Assuming "= -"

7. I verified the problem exists with both GNU indent 2.2.9 and GNU  
indent 2.2.10.

Neil

On May 21, 2009, at 3:51 AM, indent wrote:

> I cannot reproduce the problem with indent 2.2.10 using x64 Suse.
>
> Here is my terminal output:
>
> *> indent --verbose -br -i4 -nut --line-length120
> --comment-line-length120 --leave-preprocessor-space -npcs RS-
> PostgreSQL.c*
> option: br
> option: i
> option: nut
> option: l
> option: lc
> option: lps
> option: npcs
> There were 1301 non-blank output lines and 274 comments
> (Lines with comments)/(Lines with code):  0.248
> *> indent --version*
> GNU indent 2.2.10
>
> I suggest you look in the input source file UP TO line 139 where you
> first get a warning - probably a missing comment close. The warning
> about line 597 does not appear, but I do see the following line at  
> L621:
>
>                completed = -1;
>
> What does your compiler say about the input file?
>
> David
>
> Neil Tiffin wrote:
>> indent 2.2.9 and 2.2.10 are both segfaulting on a comment line and in
>> the same place.
>>
>> Below is part of both the resultant file and the source file.  The
>> full source file is at
>>
>>    http://code.google.com/p/rpostgresql/source/browse/trunk/RPostgreSQL/src/RS-PostgreSQL.c
>>
>>
>> When run under debug the following backtrace is produced
>>
>> MBP:src nt$ gdb --args /Users/nt/Downloads/indent-2.2.10/src/indent
>> --verbose -br -i4 -nut --line-length120 --comment-line-length120
>> --leave-preprocessor-space -npcs RS-PostgreSQL.c
>> GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40
>> UTC 2008)
>> Copyright 2004 Free Software Foundation, Inc.
>> GDB is free software, covered by the GNU General Public License, and
>> you are
>> welcome to change it and/or distribute copies of it under certain
>> conditions.
>> Type "show copying" to see the conditions.
>> There is absolutely no warranty for GDB.  Type "show warranty" for
>> details.
>> This GDB was configured as "i386-apple-darwin"...Reading symbols for
>> shared libraries .... done
>>
>> (gdb) r
>> Starting program: /Users/neiltiffin/Downloads/indent-2.2.10/src/
>> indent
>> --verbose -br -i4 -nut --line-length120 --comment-line-length120
>> --leave-preprocessor-space -npcs RS-PostgreSQL.c
>> Reading symbols for shared libraries +++. done
>> option: br
>> option: i
>> option: nut
>> option: l
>> option: lc
>> option: lps
>> option: npcs
>> indent: RS-PostgreSQL.c:139: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:140: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:141: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:142: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:143: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:144: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:145: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:184: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:185: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:186: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:187: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:188: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:189: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:190: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:360: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:432: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:438: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:597: Warning:old style assignment ambiguity  
>> in
>> "=-".  Assuming "= -"
>>
>> indent: RS-PostgreSQL.c:618: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:620: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:639: Warning:Line broken 2
>> indent: RS-PostgreSQL.c:674: Warning:Line broken 2
>>
>> Program received signal EXC_BAD_ACCESS, Could not access memory.
>> Reason: KERN_INVALID_ADDRESS at address: 0x0002d000
>> current_column () at code_io.c:204
>> 204            switch (*p)
>> (gdb) bt
>> #0  current_column () at code_io.c:204
>> #1  0x00008158 in print_comment (paren_targ=0x15014,
>> pbreak_line=0xbffff09c "") at comments.c:273
>> #2  0x000064a6 in indent (this_file=<value temporarily unavailable,
>> due to optimizations>) at indent.c:2908
>> #3  0x00006eab in main (argc=10, argv=0xbffff1bc) at indent.c:3242
>> (gdb)
>>
>> I suspect something in the source is causing this.  How do I
>> troubleshoot to find out? The particular source line looks benign.  I
>> have checked for goofy characters in the source and there are none.
>>
>> Neil
>>
>> the result file ends here.
>> ==============================================================
>> #define BEGIN_GROUP     4       /* just read in 1'st row for a
>> different group */
>> #define END_GROUP       8       /* just read the last row of the
>> current group */
>> #define NEW_RECORD     16       /* unin
>>
>>
>> the partial source file is
>> ==============================================================
>> s_object    *expand_list(s_object *old, Sint new_len);
>> void         add_group(s_object *group_names, s_object *data,
>>                     Stype *fld_Sclass, Sint group,
>>                 Sint ngroup, Sint i);
>> unsigned int check_groupEvents(s_object *data, Stype fld_Sclass[],
>>                          Sint row, Sint col);
>>
>> /* The following are the masks for the events/states we recognize  
>> as we
>> * bring rows from the result set/cursor
>> */
>> #define NEVER           0
>> #define BEGIN           1  /* prior to reading 1st row from the
>> resultset */
>> #define END             2  /* after reading last row from the result
>> set  */
>> #define BEGIN_GROUP     4  /* just read in 1'st row for a different
>> group */
>> #define END_GROUP       8  /* just read the last row of the current
>> group */
>> #define NEW_RECORD     16  /* uninteresting */
>> #define PARTIAL_GROUP  32  /* too much data (>max_rex) partial
>> buffer     */
>>
>> /* the following are non-grouping events (e.g., db errors, memory) */
>> #define EXHAUSTED_DF   64  /* exhausted the allocated data.frame  */
>> #define EXHAUSTED_OUT 128  /* exhausted the allocated output list */
>> #define END_OF_DATA   256  /* end of data from the result set     */
>> #define DBMS_ERROR    512  /* error in remote dbms                */
>>
>> /* beginGroupFun takes only one arg: the name of the current group */
>> s_object *
>> RS_DBI_invokeBeginGroup(s_object *callObj,      /* should be
>> initialized */
>>                        const char *group_name, /* one string */
>>                        s_object *rho)
>> {
>>    S_EVALUATOR
>>
>>    s_object *s_group_name, *val;
>>
>>    /* make a copy of the argument */
>>    MEM_PROTECT(s_group_name = NEW_CHARACTER((Sint) 1));
>>    SET_CHR_EL(s_group_name, 0, C_S_CPY(group_name));
>>
>>
>>
>>
>> _______________________________________________
>> bug-indent mailing list
>> bug-indent@...
>> http://lists.gnu.org/mailman/listinfo/bug-indent
>>
>



_______________________________________________
bug-indent mailing list
bug-indent@...
http://lists.gnu.org/mailman/listinfo/bug-indent

Re: Segfault on Comment Line

by indent-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Nope, no crash for me with r65 either.

David.

Neil Tiffin wrote:

> Ok, a couple of things.
>
> 1. Depending on when you checked the source file you may have used the
> wrong version.  After submitting the bug report, I updated the source
> file from r65 to r99. The original problem version is now here:
>
>     http://code.google.com/p/rpostgresql/source/browse/trunk/RPostgreSQL/src/RS-PostgreSQL.c?r=65
>
>
>     svn export -r 65
> http://rpostgresql.googlecode.com/svn/trunk/RPostgreSQL/src/RS-PostgreSQL.c
>
>
> 2. I fixed the problem by running the source through astyle
> (http://sourceforge.net/projects/astyle) using the command "astyle
> --brackets=attach --verbose RS-PostgreSQL.c" then through indent.
> After being processed by astyle indent did not give any error.  You
> can diff the two files to see the changes.
>
> 3. Yes the line  "completed = -1;"  is ambiguous in the source.
> Either astyle or indent changed it.  The compiler never complained.  I
> am in the process of verifying the correct operation with unit tests.
>
> 4. I just verified again that checking out the code via the above svn
> command still has the same SEGFAULT problem.  It may be a line ending
> problem since svn changes depending on the operating system being
> used.  If you want I can send the exact file as it exists on my system.
>
> 5. The warnings at line 139 appear to be where a single line "if"
> statement is broken into two lines.  There are no comments in the
> vicinity of line 139.
>
> 6. running indent with no options on the original problem file seems
> to work fine.  Only reporting the following warnings.
>     indent: RS-PostgreSQL.c:597: Warning:old style assignment
> ambiguity in "=-".  Assuming "= -"
>
>     indent: RS-PostgreSQL.c:1118: Warning:old style assignment
> ambiguity in "=-".  Assuming "= -"
>
> 7. I verified the problem exists with both GNU indent 2.2.9 and GNU
> indent 2.2.10.
>
> Neil
>
> On May 21, 2009, at 3:51 AM, indent wrote:
>
>> I cannot reproduce the problem with indent 2.2.10 using x64 Suse.
>>
>> Here is my terminal output:
>>
>> *> indent --verbose -br -i4 -nut --line-length120
>> --comment-line-length120 --leave-preprocessor-space -npcs
>> RS-PostgreSQL.c*
>> option: br
>> option: i
>> option: nut
>> option: l
>> option: lc
>> option: lps
>> option: npcs
>> There were 1301 non-blank output lines and 274 comments
>> (Lines with comments)/(Lines with code):  0.248
>> *> indent --version*
>> GNU indent 2.2.10
>>
>> I suggest you look in the input source file UP TO line 139 where you
>> first get a warning - probably a missing comment close. The warning
>> about line 597 does not appear, but I do see the following line at L621:
>>
>>                completed = -1;
>>
>> What does your compiler say about the input file?
>>
>> David
>>
>> Neil Tiffin wrote:
>>> indent 2.2.9 and 2.2.10 are both segfaulting on a comment line and in
>>> the same place.
>>>
>>> Below is part of both the resultant file and the source file.  The
>>> full source file is at
>>>
>>>  
>>> http://code.google.com/p/rpostgresql/source/browse/trunk/RPostgreSQL/src/RS-PostgreSQL.c
>>>
>>>
>>>
>>> When run under debug the following backtrace is produced
>>>
>>> MBP:src nt$ gdb --args /Users/nt/Downloads/indent-2.2.10/src/indent
>>> --verbose -br -i4 -nut --line-length120 --comment-line-length120
>>> --leave-preprocessor-space -npcs RS-PostgreSQL.c
>>> GNU gdb 6.3.50-20050815 (Apple version gdb-962) (Sat Jul 26 08:14:40
>>> UTC 2008)
>>> Copyright 2004 Free Software Foundation, Inc.
>>> GDB is free software, covered by the GNU General Public License, and
>>> you are
>>> welcome to change it and/or distribute copies of it under certain
>>> conditions.
>>> Type "show copying" to see the conditions.
>>> There is absolutely no warranty for GDB.  Type "show warranty" for
>>> details.
>>> This GDB was configured as "i386-apple-darwin"...Reading symbols for
>>> shared libraries .... done
>>>
>>> (gdb) r
>>> Starting program: /Users/neiltiffin/Downloads/indent-2.2.10/src/indent
>>> --verbose -br -i4 -nut --line-length120 --comment-line-length120
>>> --leave-preprocessor-space -npcs RS-PostgreSQL.c
>>> Reading symbols for shared libraries +++. done
>>> option: br
>>> option: i
>>> option: nut
>>> option: l
>>> option: lc
>>> option: lps
>>> option: npcs
>>> indent: RS-PostgreSQL.c:139: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:140: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:141: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:142: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:143: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:144: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:145: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:184: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:185: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:186: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:187: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:188: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:189: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:190: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:360: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:432: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:438: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:597: Warning:old style assignment ambiguity in
>>> "=-".  Assuming "= -"
>>>
>>> indent: RS-PostgreSQL.c:618: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:620: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:639: Warning:Line broken 2
>>> indent: RS-PostgreSQL.c:674: Warning:Line broken 2
>>>
>>> Program received signal EXC_BAD_ACCESS, Could not access memory.
>>> Reason: KERN_INVALID_ADDRESS at address: 0x0002d000
>>> current_column () at code_io.c:204
>>> 204            switch (*p)
>>> (gdb) bt
>>> #0  current_column () at code_io.c:204
>>> #1  0x00008158 in print_comment (paren_targ=0x15014,
>>> pbreak_line=0xbffff09c "") at comments.c:273
>>> #2  0x000064a6 in indent (this_file=<value temporarily unavailable,
>>> due to optimizations>) at indent.c:2908
>>> #3  0x00006eab in main (argc=10, argv=0xbffff1bc) at indent.c:3242
>>> (gdb)
>>>
>>> I suspect something in the source is causing this.  How do I
>>> troubleshoot to find out? The particular source line looks benign.  I
>>> have checked for goofy characters in the source and there are none.
>>>
>>> Neil
>>>
>>> the result file ends here.
>>> ==============================================================
>>> #define BEGIN_GROUP     4       /* just read in 1'st row for a
>>> different group */
>>> #define END_GROUP       8       /* just read the last row of the
>>> current group */
>>> #define NEW_RECORD     16       /* unin
>>>
>>>
>>> the partial source file is
>>> ==============================================================
>>> s_object    *expand_list(s_object *old, Sint new_len);
>>> void         add_group(s_object *group_names, s_object *data,
>>>                     Stype *fld_Sclass, Sint group,
>>>                 Sint ngroup, Sint i);
>>> unsigned int check_groupEvents(s_object *data, Stype fld_Sclass[],
>>>                          Sint row, Sint col);
>>>
>>> /* The following are the masks for the events/states we recognize as we
>>> * bring rows from the result set/cursor
>>> */
>>> #define NEVER           0
>>> #define BEGIN           1  /* prior to reading 1st row from the
>>> resultset */
>>> #define END             2  /* after reading last row from the result
>>> set  */
>>> #define BEGIN_GROUP     4  /* just read in 1'st row for a different
>>> group */
>>> #define END_GROUP       8  /* just read the last row of the current
>>> group */
>>> #define NEW_RECORD     16  /* uninteresting */
>>> #define PARTIAL_GROUP  32  /* too much data (>max_rex) partial
>>> buffer     */
>>>
>>> /* the following are non-grouping events (e.g., db errors, memory) */
>>> #define EXHAUSTED_DF   64  /* exhausted the allocated data.frame  */
>>> #define EXHAUSTED_OUT 128  /* exhausted the allocated output list */
>>> #define END_OF_DATA   256  /* end of data from the result set     */
>>> #define DBMS_ERROR    512  /* error in remote dbms                */
>>>
>>> /* beginGroupFun takes only one arg: the name of the current group */
>>> s_object *
>>> RS_DBI_invokeBeginGroup(s_object *callObj,      /* should be
>>> initialized */
>>>                        const char *group_name, /* one string */
>>>                        s_object *rho)
>>> {
>>>    S_EVALUATOR
>>>
>>>    s_object *s_group_name, *val;
>>>
>>>    /* make a copy of the argument */
>>>    MEM_PROTECT(s_group_name = NEW_CHARACTER((Sint) 1));
>>>    SET_CHR_EL(s_group_name, 0, C_S_CPY(group_name));
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> bug-indent mailing list
>>> bug-indent@...
>>> http://lists.gnu.org/mailman/listinfo/bug-indent
>>>
>>
>
>



_______________________________________________
bug-indent mailing list
bug-indent@...
http://lists.gnu.org/mailman/listinfo/bug-indent