From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14131 invoked by alias); 21 Apr 2004 14:55:10 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 14123 invoked from network); 21 Apr 2004 14:55:09 -0000 Received: from unknown (HELO localhost.redhat.com) (24.157.170.238) by sources.redhat.com with SMTP; 21 Apr 2004 14:55:09 -0000 Received: from gnu.org (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id 5ACB52B9F; Tue, 20 Apr 2004 13:26:45 -0400 (EDT) Message-ID: <40855D55.7000708@gnu.org> Date: Wed, 21 Apr 2004 14:55:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-GB; rv:1.4.1) Gecko/20040217 MIME-Version: 1.0 To: Daniel Jacobowitz Cc: gdb-patches@sources.redhat.com Subject: Re: [RFC] XFAIL bigcore.exp on some GNU/Linux targets References: <20040417214254.GA14000@nevyn.them.org> In-Reply-To: <20040417214254.GA14000@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2004-04/txt/msg00484.txt.bz2 Why not ask the program the heap size? it's in total_allocated, just make that a static. > +# Traverse part of bigcore's linked list of memory chunks, finding the total > +# size. Note that we use GDB to do the math; TCL is not reliable with > +# extremely large integers. > + > +proc heap_size { } { > + global gdb_prompt > + global expect_out > + set test "find heap size" > + set lim 0 > + gdb_test "set \$size = 0" "" > + gdb_test_multiple "print heap.next" "$test" { > + -re " = \\(struct list \\*\\) 0x0.*$gdb_prompt $" { > + pass "$test" > + } > + -re " = \\(struct list \\*\\) (0x\[0-9a-f\]*).*$gdb_prompt $" { > + if { $lim >= 50 } { > + pass "$test (stop at $lim)" > + } else { > + incr lim > + gdb_test "set \$size = \$size + \$.size" "" > + send_gdb "print \$.next\n" > + exp_continue > + } > + } > + -re ".*$gdb_prompt $" { > + fail "$test (entry $lim)" > + } > + timeout { > + fail "$test (timeout)" > + } > + } > + gdb_test_multiple "print \$size" "print \$size" { > + -re " = (\[0-9\]*)\r\n$gdb_prompt $" { > + set size $expect_out(1,string) > + pass "print \$size" > + } > + } > + return $size; > +} > + Andrew