From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21438 invoked by alias); 30 Dec 2009 05:35:36 -0000 Received: (qmail 21428 invoked by uid 22791); 30 Dec 2009 05:35:35 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail10.snap.net.nz (HELO viper.snap.net.nz) (202.37.101.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 30 Dec 2009 05:35:29 +0000 Received: from totara (175.29.255.123.dynamic.snap.net.nz [123.255.29.175]) by viper.snap.net.nz (Postfix) with ESMTP id 5531B3DA496 for ; Wed, 30 Dec 2009 18:35:26 +1300 (NZDT) Received: by totara (Postfix, from userid 1000) id C73F4C167; Wed, 30 Dec 2009 18:35:24 +1300 (NZDT) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <19258.59036.731093.439412@totara.tehura.co.nz> Date: Wed, 30 Dec 2009 05:35:00 -0000 To: gdb@sourceware.org Subject: [Bug:cli] Loading user-defined function generates an internal error From: nickrob@snap.net.nz (Nick Roberts) X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2009-12/txt/msg00174.txt.bz2 If the user-defined function below is put in a file user.cmd, say, then in internal error is generated upon loading it: .. (gdb) source user.cmd utils.c:1206: internal-error: virtual memory exhausted. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) [answered Y; input not from terminal] utils.c:1206: internal-error: virtual memory exhausted. A problem internal to GDB has been detected, further debugging may prove unreliable. Create a core file of GDB? (y or n) [answered Y; input not from terminal] Aborted (core dumped) This didn't used to happen, say 3 months ago. -- Nick http://users.snap.net.nz/~nickrob define p_tree set $tree = ($arg0) set $i = 0 set $node = $tree->_M_t->_M_impl->_M_header->_M_left set $tree_size = $tree->_M_t->_M_impl->_M_node_count while ($i < $tree_size) set $i++ printf "NODE %d: ", $i set $value = (void *)($node + 1) p *($arg1 *)$value set $value = $value + 4 p *($arg2 *)$value # Next (bigger) value must be to right... if ($node->_M_right != 0) set $node = $node->_M_right # Descend tree while there is a left node. while ($node->_M_left != 0) set $node = $node->_M_left end # ...or further up the tree. else set $tmp_node = $node->_M_parent # Ascend tree while at right node. while ($node == $tmp_node->_M_right) set $node = $tmp_node set $tmp_node = $tmp_node->_M_parent end # Set to parent of first left node (condition always true?) if ($node->_M_right != $tmp_node) set $node = $tmp_node end end end end