[AGENT++] Core dump on AIX 5.3

赵军伟163 touchzhao at 163.com
Wed Jan 25 01:52:17 CET 2006


Hi,

A snmpmanager based on snmp++ is running well on HP-UX platform.
But when I migrate it to AIX 5.3 platform, it crashs often.
Here is the debug information:

$ dbx snmpdau core
Type 'help' for help.
[using memory image in core]
reading symbolic information ...

Type 'help' for help.
[using memory image in core]
reading symbolic information ...

Segmentation fault in . at 0xe098 ($t43)
(dbx) where
0x0000e098 warning: Unable to access address 0xe098 from core
.() at 0xe098
msgqueue.memset(void*,int,unsigned long)(0x20343968, 0x0, 0x2000), line 127
in "string.h"
HandleEvents(int,const fd_set&,const fd_set&,const fd_set&)(0x20cc4578,
0x2a, 0x20347a38, 0x20349a38, 0x2034ba38), line 468 in "msgqueue.cpp"
unnamed block in HandleEvents(int,const fd_set&,const fd_set&,const
fd_set&)(0x20cc54b8, 0x2a, 0x20347a38, 0x20349a38, 0x2034ba38), line 183 in
"eventlist.cpp"
unnamed block in HandleEvents(int,const fd_set&,const fd_set&,const
fd_set&)(0x20cc54b8, 0x2a, 0x20347a38, 0x20349a38, 0x2034ba38), line 183 in
"eventlist.cpp"
HandleEvents(int,const fd_set&,const fd_set&,const fd_set&)(0x20cc54b8,
0x2a, 0x20347a38, 0x20349a38, 0x2034ba38), line 183 in "eventlist.cpp"
SNMPProcessPendingEvents()(0x20cc54a8), line 213 in "eventlistholder.cpp"
SNMPProcessEvents(int)(0x20cc54a8, 0x3e8), line 266 in "eventlistholder.cpp"
SNMPBlockForResponse(unsigned long,Pdu&)(0x20cc54a8, 0x2372, 0x20354f30),
line 161 in "eventlistholder.cpp"
snmp_engine(Pdu&,long,long,const
SnmpTarget&,void(*)(int,Snmp*,Pdu&,SnmpTarget&,void*),const
void*,int)(0x20cc5348, 0x20354f30, 0x0, 0x0, 0x2136cf28, 0x0, 0x0,
0xffffffff), line 1757 in "uxsnmp.cpp"
uxsnmp.get_next(Pdu&,const SnmpTarget&)(0x20cc5348, 0x20354f30, 0x2136cf28),
line 1008 in "uxsnmp.cpp"
unnamed block in run()(0x2136ca18), line 67 in "snmpwalk.cpp"
run()(0x2136ca18), line 67 in "snmpwalk.cpp"
run()(0x203426c8), line 466 in "thread.cpp"
start(void*)(0x2034272c), line 183 in "thread.cpp"
(dbx) thread current
 thread  state-k     wchan    state-u    k-tid   mode held scope function
>$t43    run                  running  2773067     k   no   pro
(dbx) thread info 43
 thread  state-k     wchan    state-u    k-tid   mode held scope function
>$t43    run                  running  2773067     k   no   pro

      general:
         pthread addr = 0x203bbc1c         size         = 0x290
         vp addr      = 0x20fe5950         size         = 0x2d8
         thread errno = 0
         start pc     = 0x2001a6a8
         joinable     = yes
         pthread_t    = 2a2b
      scheduler:
         kernel       =
         user         = 1 (other)
         nice         = 60
      event :
         event        = 0x0
         cancel       = enabled, deferred, not pending
      stack storage:
         base         = 0x203ab000         size         = 0x10000
         limit        = 0x203bbc1c
         sp           = 0x203a75e0
(dbx) up 0
.() at 0xe098
(dbx) up
msgqueue.memset(void*,int,unsigned long)(0x203a9968, 0x0, 0x2000), line 127
in "string.h"
(dbx) up
CSNMPMessageQueue::HandleEvents(int,const fd_set&,const fd_set&,const
fd_set&)(this = 0x20d73858, maxfds = 48, readfds = &(...),  = &(...),  =
&(...)), line 468 in "msgqueue.cpp"
(dbx) l
  468     FD_ZERO(&snmp_writefds);
  469     FD_ZERO(&snmp_errfds);
  470     GetFdSets(tmp_maxfds, snmp_readfds, snmp_writefds, snmp_errfds);
  471
  472     for (int fd = 0; fd < maxfds; fd++)
  473     {
  474       if ((FD_ISSET(fd, &snmp_readfds)) &&
  475           (FD_ISSET(fd, &readfds)))
  476       {
  477         tmppdu.set_request_id(0);
(dbx)

the compile and link options are the same:

CPP = xlC_r
OPTIONS
= -g -bdynamic -qchars=signed -qrtti=all -brtl -DAIX -D_XPG4_EXTENDED -D__un
ix -DRWSTD_MULTI_THREAD -D_REENTRANT

thanks ahead.

moore





More information about the AGENTPP mailing list