FW: Seg fault when initializing default MIB context

Frank Fock Frank.Fock____t-online.de
Wed Apr 9 02:44:44 CEST 2003


Hi James,

I have tested your configuration on Linux with gcc 2.95
wihtout any problems. Please make sure that have the same
-D settings in all your makefile (SNMP++, AGENT++, and
the agent). Also check your LD_LIBRARY_PATH for not
linking a different lib into your executable.

Hope this helps.

Best regards,
Frank

James Brokenbek wrote:
> Thanks for your continued attention in regard to this problem.  I have
> additional data that may be useful for a diagnosis.
> 
> The following is an excerpt from my debugging session on the
> dynamic_tables example.  I've determined that the delete[] call in the
> OctetStr destructor is failing:
> 
> ###############################################################
> 
> Breakpoint 1, OctetStr::~OctetStr (this=0x8134080, __in_chrg=135484492)
> at octet.cpp:173
> 173       if (smival.value.string.ptr) delete []
> smival.value.string.ptr;
> (gdb) where
> #0  OctetStr::~OctetStr (this=0x8134080, __in_chrg=135484492) at
> octet.cpp:173
> #1  0x8106840 in Agentpp::OidList<Agentpp::MibContext>::add
> (this=0x8134070, item=0x8135440) at ../include/List.h:717
> #2  0x805db5f in Agentpp::Mib::Mib (this=0x8134070) at mib.cpp:2645
> #3  0x804a2ad in main (argc=1, argv=0xbfbffa74) at agent.cpp:357
> (gdb) l
> 168
> 169     //=============[ destructor
> ]=========================================
> 170     OctetStr::~OctetStr()
> 171     {
> 172       // if not empty, free it up
> 173       if (smival.value.string.ptr) delete []
> smival.value.string.ptr;
> 174       if (output_buffer)           delete [] output_buffer;
> 175     }
> 176
> 177
> (gdb) s
> agent in free(): warning: junk pointer, too low to make sense.
> 174       if (output_buffer)           delete [] output_buffer;
> (gdb) s
> SnmpSyntax::~SnmpSyntax (this=0x8134080, __in_chrg=135484492) at
> ../include/smival.h:145
> 145       virtual ~SnmpSyntax() {};
> (gdb) s
> 145       virtual ~SnmpSyntax() {};
> (gdb) s
> OctetStr::~OctetStr (this=0x8134080, __in_chrg=135484492) at
> octet.cpp:175
> 175     }
> (gdb) s
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x810684b in Agentpp::OidList<Agentpp::MibContext>::add (this=0x8134070,
> item=0x8135440) at ../include/List.h:717
> 717                     (*content)[item->key()] = (void*)item;
> (gdb)  
> 
> ###############################################################
> 
> Noting the message from free(), I think perhaps the failed delete is
> somehow trashing the stack; I'm still trying to characterize that.  The
> behavior is identical on my agent and on the atm_mib example, too.
> 
> Any insight would be gratefully received.
> 
> James Brokenbek
> 
> 
>>-----Original Message-----
>>From: James Brokenbek 
>>Sent: Tuesday, April 08, 2003 9:32 AM
>>To: agentpp-dl____agentpp.com
>>Subject: Seg fault when initializing default MIB context
>>
>>
>>I share Mr. Coco's sentiment from his message this weekend: 
>>time to broadcast my ignorance.
>>
>>Problem: After compiling my own simple v3.5.10c Agent++ agent 
>>and two of the example agents, I find that each one of the 
>>three seg faults on line 717 of "List.h" when called from 
>>"mib.cpp" line 2645, which is the addition of the default 
>>context inside a Mib object's default constructor.  The list 
>>object's "this" pointer ends up being invalid (0x1, if you're 
>>curious).
>>
>>Background:  Platform is x86 FreeBSD v4.3.  Compiler is gcc 
>>v2.95.3.  Flags are "-D__unix -DGCC -Dsun -D_NO_THREADS 
>>-D_NO_SNMPv3".  I also removed "-lpthreads" from each Makefile.
>>
>>Now, this is so consistent that I assume I must be committing 
>>some common, simple mistake in the build process, but 
>>searching the list archive hasn't yielded any insight.  Could 
>>someone please point out the error of my ways?
>>
>>Gratefully,
>>
>>James Brokenbek
>>Celion Networks
>>Richardson, TX USA
>>
> 
> 






More information about the AGENTPP mailing list