This is the mail archive of the gdb-prs@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: macros/2564: 'p siginfo->si_addr' doesn't work anymore


The following reply was made to PR macros/2564; it has been noted by GNATS.

From: Pedro Alves <pedro@codesourcery.com>
To: Tom Tromey <tromey@redhat.com>
Cc: gdb-gnats@sources.redhat.com,
 nobody@sources.redhat.com,
 gdb-prs@sources.redhat.com
Subject: Re: macros/2564: 'p siginfo->si_addr' doesn't work anymore
Date: Wed, 10 Dec 2008 21:13:57 +0000

 Hmmm, weird.  I'm trying on pristine sources from today.
 
 (gdb) set debug expression 1
 (gdb) p siginfo.si_addr
 Dump of expression @ 0xdd0520'
         Language c, 19 elements, 16 bytes each.
         Index                Opcode         Hex Value  String Value
             0          OP_VAR_VALUE  44  ,...............
             1               OP_NULL  0  ................
             2    <unknown 12531280>  12531280  P6..............
             3          OP_VAR_VALUE  44  ,...............
             4       STRUCTOP_STRUCT  87  W...............
             5     BINOP_LOGICAL_AND  9  ................
             6  <unknown 1718186847>  7236270204641702751  _sifields.......
             7     BINOP_LOGICAL_AND  9  ................
             8       STRUCTOP_STRUCT  87  W...............
             9       STRUCTOP_STRUCT  87  W...............
            10     BINOP_LOGICAL_AND  9  ................
            11  <unknown 1734964063>  7815259820820886367  _sigfault.......
            12     BINOP_LOGICAL_AND  9  ................
            13       STRUCTOP_STRUCT  87  W...............
            14       STRUCTOP_STRUCT  87  W...............
            15             BINOP_LSH  7  ................
            16               OP_NULL  25263822268792832  ....P.Y.........
            17             BINOP_LSH  7  ................
            18       STRUCTOP_STRUCT  87  W...............
 Dump of expression @ 0xdd0520, after conversion to prefix form:
 Expression: `siginfo._sifields._sigfault.'
         Language c, 19 elements, 16 bytes each.
 
 
             0  STRUCTOP_STRUCT       Element name: `'
             5    STRUCTOP_STRUCT       Element name: `_sigfault'
            10      STRUCTOP_STRUCT       Element name: `_sifields'
            15        OP_VAR_VALUE          Block @0x0, symbol @0xbf3650 (siginfo)
 There is no member named .
 (gdb)
 
 Hmmm, I just noticed that if I try enough times, it sometimes
 succeeds, which brings us to Valgrind:
 
 (gdb) p siginfo_p->si_addr
 ==18963==
 ==18963== Invalid read of size 1
 ==18963==    at 0x4C250A8: memcpy (mc_replace_strmem.c:402)
 ==18963==    by 0x546B36: write_exp_string (parse.c:349)
 ==18963==    by 0x5E2F94: c_parse_internal (c-exp.y:338)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==    by 0x49DA8B: do_cfunc (cli-decode.c:63)
 ==18963==    by 0x4A06F6: cmd_func (cli-decode.c:1700)
 ==18963==  Address 0x7c583f2 is 26 bytes inside a block of size 36 free'd
 ==18963==    at 0x4C22B2E: free (vg_replace_malloc.c:323)
 ==18963==    by 0x45BC31: xfree (utils.c:1151)
 ==18963==    by 0x595098: finished_macro_expansion (c-lang.c:246)
 ==18963==    by 0x5E5379: c_lex (c-exp.y:1475)
 ==18963==    by 0x5E2B2A: c_parse_internal (c-exp.c.tmp:1785)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==
 ==18963== Invalid read of size 1
 ==18963==    at 0x4C250B1: memcpy (mc_replace_strmem.c:402)
 ==18963==    by 0x546B36: write_exp_string (parse.c:349)
 ==18963==    by 0x5E2F94: c_parse_internal (c-exp.y:338)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==    by 0x49DA8B: do_cfunc (cli-decode.c:63)
 ==18963==    by 0x4A06F6: cmd_func (cli-decode.c:1700)
 ==18963==  Address 0x7c583f1 is 25 bytes inside a block of size 36 free'd
 ==18963==    at 0x4C22B2E: free (vg_replace_malloc.c:323)
 ==18963==    by 0x45BC31: xfree (utils.c:1151)
 ==18963==    by 0x595098: finished_macro_expansion (c-lang.c:246)
 ==18963==    by 0x5E5379: c_lex (c-exp.y:1475)
 ==18963==    by 0x5E2B2A: c_parse_internal (c-exp.c.tmp:1785)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==
 ==18963== Invalid read of size 1
 ==18963==    at 0x4C250B8: memcpy (mc_replace_strmem.c:402)
 ==18963==    by 0x546B36: write_exp_string (parse.c:349)
 ==18963==    by 0x5E2F94: c_parse_internal (c-exp.y:338)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==    by 0x49DA8B: do_cfunc (cli-decode.c:63)
 ==18963==    by 0x4A06F6: cmd_func (cli-decode.c:1700)
 ==18963==  Address 0x7c583f0 is 24 bytes inside a block of size 36 free'd
 ==18963==    at 0x4C22B2E: free (vg_replace_malloc.c:323)
 ==18963==    by 0x45BC31: xfree (utils.c:1151)
 ==18963==    by 0x595098: finished_macro_expansion (c-lang.c:246)
 ==18963==    by 0x5E5379: c_lex (c-exp.y:1475)
 ==18963==    by 0x5E2B2A: c_parse_internal (c-exp.c.tmp:1785)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==
 ==18963== Invalid read of size 1
 ==18963==    at 0x4C250BF: memcpy (mc_replace_strmem.c:402)
 ==18963==    by 0x546B36: write_exp_string (parse.c:349)
 ==18963==    by 0x5E2F94: c_parse_internal (c-exp.y:338)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==    by 0x49DA8B: do_cfunc (cli-decode.c:63)
 ==18963==    by 0x4A06F6: cmd_func (cli-decode.c:1700)
 ==18963==  Address 0x7c583ef is 23 bytes inside a block of size 36 free'd
 ==18963==    at 0x4C22B2E: free (vg_replace_malloc.c:323)
 ==18963==    by 0x45BC31: xfree (utils.c:1151)
 ==18963==    by 0x595098: finished_macro_expansion (c-lang.c:246)
 ==18963==    by 0x5E5379: c_lex (c-exp.y:1475)
 ==18963==    by 0x5E2B2A: c_parse_internal (c-exp.c.tmp:1785)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==
 ==18963== Invalid read of size 1
 ==18963==    at 0x4C250E0: memcpy (mc_replace_strmem.c:402)
 ==18963==    by 0x546B36: write_exp_string (parse.c:349)
 ==18963==    by 0x5E2F94: c_parse_internal (c-exp.y:338)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==    by 0x49DA8B: do_cfunc (cli-decode.c:63)
 ==18963==    by 0x4A06F6: cmd_func (cli-decode.c:1700)
 ==18963==  Address 0x7c583ee is 22 bytes inside a block of size 36 free'd
 ==18963==    at 0x4C22B2E: free (vg_replace_malloc.c:323)
 ==18963==    by 0x45BC31: xfree (utils.c:1151)
 ==18963==    by 0x595098: finished_macro_expansion (c-lang.c:246)
 ==18963==    by 0x5E5379: c_lex (c-exp.y:1475)
 ==18963==    by 0x5E2B2A: c_parse_internal (c-exp.c.tmp:1785)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==
 ==18963== Invalid read of size 1
 ==18963==    at 0x4C250F0: memcpy (mc_replace_strmem.c:402)
 ==18963==    by 0x546B36: write_exp_string (parse.c:349)
 ==18963==    by 0x5E2F94: c_parse_internal (c-exp.y:338)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 ==18963==    by 0x49DA8B: do_cfunc (cli-decode.c:63)
 ==18963==    by 0x4A06F6: cmd_func (cli-decode.c:1700)
 ==18963==  Address 0x7c583ec is 20 bytes inside a block of size 36 free'd
 ==18963==    at 0x4C22B2E: free (vg_replace_malloc.c:323)
 ==18963==    by 0x45BC31: xfree (utils.c:1151)
 ==18963==    by 0x595098: finished_macro_expansion (c-lang.c:246)
 ==18963==    by 0x5E5379: c_lex (c-exp.y:1475)
 ==18963==    by 0x5E2B2A: c_parse_internal (c-exp.c.tmp:1785)
 ==18963==    by 0x5E62FD: c_parse (c-exp.y:1908)
 ==18963==    by 0x5951C4: c_preprocess_and_parse (c-lang.c:286)
 ==18963==    by 0x547B4B: parse_exp_in_context (parse.c:1034)
 ==18963==    by 0x547993: parse_exp_1 (parse.c:972)
 ==18963==    by 0x547C82: parse_expression (parse.c:1084)
 ==18963==    by 0x4EFE36: print_command_1 (printcmd.c:871)
 ==18963==    by 0x4EFFCB: print_command (printcmd.c:921)
 $1 = (void *) 0x1
 (gdb)      
 
 -- 
 Pedro Alves


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