This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
"Transfer rate" patch
- From: Ilko Iliev <iliev at ronetix dot at>
- To: Vladimir Prus <ghost at cs dot msu dot su>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 07 Sep 2006 16:20:35 +0200
- Subject: "Transfer rate" patch
- References: <44FD2640.7080605@ronetix.at> <edlsab$kvl$1@sea.gmane.org>
Hi,
The corrected patch again - the output is in "KBytes/sec" or "bytes/sec".
The ChangeLog file is updated too.
I changed to "KBytes/sec" because of our and other fast JTAG Emulators.
regards,
Ilko Iliev
Ronetix - JTAG Emulators and Flash Programmers
www.ronetix.at
Vladimir Prus wrote:
Ilko Iliev wrote:
"Transfer rate" patch
From:
Ilko Iliev <office@ronetix.at>
Date:
Tuesday 05 September 2006 11:24:48
Groups:
gmane.comp.gdb.patches
Hi,
I found a small bug by the calculating of the transfer rate at the
"load" command - if the download image size or the download speed is
higher then occurs overflow and the printed information is wrong.
I attached a patch for this problem.
regards,
Ilko Iliev
www.ronetix.at
gdb_download_speed.patch
--- symfile.c.orig 2006-08-31 15:29:12.000000000 +0200
+++ symfile.c 2006-08-31 15:47:28.000000000 +0200
@@ -1769,14 +1769,14 @@
ui_out_text (uiout, "Transfer rate: ");
if (time_count > 0)
{
- ui_out_field_fmt (uiout, "transfer-rate", "%lu",
- 1000 * (data_count * 8) / time_count);
- ui_out_text (uiout, " bits/sec");
+ ui_out_field_fmt (uiout, "transfer-rate", "%lu",
+ (unsigned long)((((unsigned long
long)data_count)*1000)/time_count)/1024); + ui_out_text (uiout, "
Kbytes/sec"); }
I am not sure about motivation to switch to "Kbytes/sec" -- I've seen a
target that does 700 *bytes* per second, so your code will just print '0'
in that case -- is that intended?
else
{
- ui_out_field_fmt (uiout, "transferred-bits", "%lu", (data_count *
8)); - ui_out_text (uiout, " bits in <1 sec");
+ ui_out_field_fmt (uiout, "transferred-bits", "%lu", data_count);
+ ui_out_text (uiout, " bytes in <1 sec");
You've changed the code to output the number of bytes and changes the text
to read "bytes" the the name of output field is still 'transferred-bits'.
I'm not sure this matters (maybe in MI mode), but in any way, you should
adjust that.
- Volodya
--- ChangeLog.orig 2006-09-07 15:23:19.000000000 +0200
+++ ChangeLog 2006-09-07 15:27:46.000000000 +0200
@@ -1,3 +1,8 @@
+2006-09-07 Ilko Iliev <iliev@ronetix.at>
+
+ * symfile.c (print_transfer_performance): Fix overflow problem
+ and change bits/sec to KBytes/sec or bytes/sec
+
2006-08-28 DJ Delorie <dj@redhat.com>
* m32c-tdep.c (m32c_decode_srcdest4): Initialize fields in sd
--- symfile.c.orig 2006-08-31 15:29:12.000000000 +0200
+++ symfile.c 2006-09-07 15:19:45.000000000 +0200
@@ -1769,14 +1769,23 @@
ui_out_text (uiout, "Transfer rate: ");
if (time_count > 0)
{
- ui_out_field_fmt (uiout, "transfer-rate", "%lu",
- 1000 * (data_count * 8) / time_count);
- ui_out_text (uiout, " bits/sec");
+ if ( data_count < 1024 )
+ {
+ ui_out_field_fmt (uiout, "transfer-rate", "%lu",
+ (unsigned long)((((unsigned long long)data_count) * 1000) / time_count));
+ ui_out_text (uiout, " bytes/sec");
+ }
+ else
+ {
+ ui_out_field_fmt (uiout, "transfer-rate", "%lu",
+ (unsigned long)((((unsigned long long)data_count) * 1000) / time_count) / 1024);
+ ui_out_text (uiout, " Kbytes/sec");
+ }
}
else
{
- ui_out_field_fmt (uiout, "transferred-bits", "%lu", (data_count * 8));
- ui_out_text (uiout, " bits in <1 sec");
+ ui_out_field_fmt (uiout, "transferred-bytes", "%lu", data_count);
+ ui_out_text (uiout, " bytes in <1 sec");
}
if (write_count > 0)
{