From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id XaVmLyms0F9SDgAAWB0awg (envelope-from ) for ; Wed, 09 Dec 2020 05:51:21 -0500 Received: by simark.ca (Postfix, from userid 112) id B51D71F0A9; Wed, 9 Dec 2020 05:51:21 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id C64A91EF4B for ; Wed, 9 Dec 2020 05:51:20 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 27A593857C69; Wed, 9 Dec 2020 10:51:20 +0000 (GMT) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by sourceware.org (Postfix) with ESMTPS id 897653857C5F for ; Wed, 9 Dec 2020 10:51:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 897653857C5F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mliska@suse.cz X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id 983EBAB63; Wed, 9 Dec 2020 10:51:16 +0000 (UTC) Subject: Re: [PATCH] gdb: print size of downloaded debuginfod binary To: Simon Marchi , gdb-patches@sourceware.org References: <6ad82f30-0ca3-8b19-2907-d71f0dfecafe@suse.cz> <2c28a403-a169-0dc3-9b64-58484237c8c2@suse.cz> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Message-ID: Date: Wed, 9 Dec 2020 11:51:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------54AFC08E5E315C399D669224" Content-Language: en-US X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" This is a multi-part message in MIME format. --------------54AFC08E5E315C399D669224 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit On 12/8/20 3:28 PM, Simon Marchi wrote: > On 2020-12-08 5:16 a.m., Martin Liška wrote: >> Temporary breakpoint 1 at 0x406150: file /home/marxin/Programming/gcc/gcc/gcc-main.c, line 44. >> Starting program: /home/marxin/bin/gcc/bin/gcc >> Downloading 1.00 MB separate debug info for /lib64/ld-linux-x86-64.so.2...10%..20%..30%..40%..50%..60%..70%..80%..90%..100% >> Downloading 4.20 MB separate debug info for /lib64/libm.so.6...10%..20%..30%..40%..50%..60%..70%..80%..90%..100% >> Downloading 10.72 MB separate debug info for /lib64/libc.so.6...10%..20%..30%..40%..50% >> >> Thoughts? > > Could you make it so the percentage always gets written at the same place, overwriting the  previous percentage written? Sure, implemented in the attached patch. Martin > > Simon --------------54AFC08E5E315C399D669224 Content-Type: text/x-patch; charset=UTF-8; name="0001-gdb-Print-percent-progress-for-debuginfod.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-gdb-Print-percent-progress-for-debuginfod.patch" >From 51f332475399ce42767fc912291fa879b91d4ddf Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Wed, 9 Dec 2020 11:48:15 +0100 Subject: [PATCH] gdb: Print percent progress for debuginfod. Prints progress like: Downloading 4.89 MB separate debug info for /usr/lib64/libgcrypt.so.20.. 100% Downloading 1.10 MB separate debug info for /usr/lib64/liblzma.so.5.. 100% Downloading 1.31 MB separate debug info for /usr/lib64/liblz4.so.1.. 100% Downloading 0.96 MB separate debug info for /usr/lib64/libsmime3.so.. 36% ChangeLog: * gdb/debuginfod-support.c (struct user_data): Add last_percent_printed field. (progressfn): Print progress. --- gdb/debuginfod-support.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/gdb/debuginfod-support.c b/gdb/debuginfod-support.c index e21b2f40ca..3d68f08fc0 100644 --- a/gdb/debuginfod-support.c +++ b/gdb/debuginfod-support.c @@ -46,12 +46,12 @@ debuginfod_debuginfo_query (const unsigned char *build_id, struct user_data { user_data (const char *desc, const char *fname) - : desc (desc), fname (fname), has_printed (false) + : desc (desc), fname (fname), last_percent_printed (-1) { } const char * const desc; const char * const fname; - bool has_printed; + long last_percent_printed; }; /* Deleter for a debuginfod_client. */ @@ -80,13 +80,20 @@ progressfn (debuginfod_client *c, long cur, long total) return 1; } - if (!data->has_printed && total != 0) + if (total != 0) { /* Print this message only once. */ - data->has_printed = true; - printf_filtered ("Downloading %s %ps...\n", - data->desc, - styled_string (file_name_style.style (), data->fname)); + long percent = 100 * cur / total; + if (percent != data->last_percent_printed) + { + data->last_percent_printed = percent; + printf_filtered ("\rDownloading %.2f MB %s %ps.. %3ld%%%s", + 1.0f * total / (1024 * 1024), + data->desc, + styled_string (file_name_style.style (), data->fname), + percent, cur == total ? "\n" : ""); + gdb_flush (gdb_stdout); + } } return 0; -- 2.29.2 --------------54AFC08E5E315C399D669224--