Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!att!rutgers!mcnc!uvaarpa!mmdf From: worley@compass.com (Dale Worley) Newsgroups: comp.lang.perl Subject: "Out of Memory" in debugger Message-ID: <1991Jan3.074230.2072@uvaarpa.Virginia.EDU> Date: 3 Jan 91 07:42:30 GMT Sender: mmdf@uvaarpa.Virginia.EDU (Uvaarpa Mail System) Reply-To: worley@compass.com Organization: The Internet Lines: 25 I am not certain, but I suspect that this problem (the debugger reports "Out of Memory" while trying to allocate gigabytes of memory) is due to dodb() constructing only one argument for the O_SUBR that calls DB, whereas do_subr() requires two (one for the subroutine name, one for the argument list). Evidence: -D1024 shows that "&db" written by the user is compiled with two arguments, whereas the implicit "&db" inserted by "-d" has only one. The code in do_subr() seems to expect two arguments, for example: register int items = arglast[2] - sp; /* sp = arglast[1] here */ int hasargs = ((arg[2].arg_type & A_MASK) != A_NULL); There seems to be no conditionalization in do_subr() that would allow it to avoid executing these statements when the implicit "&db" is called. Dale Dale Worley Compass, Inc. worley@compass.com -- This is your brain on drugs with a side order of bacon and our world-famous bottomless cup of coffee all for $2.99.