Add option -l logfile to redirect diagnostic messages to a logfile rather
than stderr. git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1179 81a1dc3b-b13d-400b-aceb-764788c761c2
This commit is contained in:
parent
3756a42db1
commit
d0625e8fec
|
@ -1,3 +1,9 @@
|
||||||
|
2013-05-08 Joerg Wunsch <j.gnu@uriah.heep.sax.de>
|
||||||
|
|
||||||
|
* main.c (main): Add option -l logfile.
|
||||||
|
* avrdude.1: Document -l option.
|
||||||
|
* doc/avrdude.texi: (Dito.)
|
||||||
|
|
||||||
2013-05-15 Rene Liebscher <R.Liebscher@gmx.de>
|
2013-05-15 Rene Liebscher <R.Liebscher@gmx.de>
|
||||||
|
|
||||||
* configure.ac: if both found libftdi and libftdi1 use only libftdi1
|
* configure.ac: if both found libftdi and libftdi1 use only libftdi1
|
||||||
|
|
5
NEWS
5
NEWS
|
@ -129,6 +129,11 @@ Current:
|
||||||
|
|
||||||
(patch #7699 Read additional config files)
|
(patch #7699 Read additional config files)
|
||||||
|
|
||||||
|
* The new option -l logfile allows to redirect diagnostic messages
|
||||||
|
to a logfile rather than stdout. Useful to record debugging
|
||||||
|
traces, in particular in environments which do not offer
|
||||||
|
shell-style redirection functionality for standard streams.
|
||||||
|
|
||||||
* Programmer types in configuration file are no longer keywords but
|
* Programmer types in configuration file are no longer keywords but
|
||||||
specified as string.
|
specified as string.
|
||||||
|
|
||||||
|
|
15
avrdude.1
15
avrdude.1
|
@ -1,6 +1,6 @@
|
||||||
.\"
|
.\"
|
||||||
.\" avrdude - A Downloader/Uploader for AVR device programmers
|
.\" avrdude - A Downloader/Uploader for AVR device programmers
|
||||||
.\" Copyright (C) 2001, 2002, 2003, 2005 - 2011 Joerg Wunsch
|
.\" Copyright (C) 2001, 2002, 2003, 2005 - 2013 Joerg Wunsch
|
||||||
.\"
|
.\"
|
||||||
.\" This program is free software; you can redistribute it and/or modify
|
.\" This program is free software; you can redistribute it and/or modify
|
||||||
.\" it under the terms of the GNU General Public License as published by
|
.\" it under the terms of the GNU General Public License as published by
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
.\"
|
.\"
|
||||||
.\" $Id$
|
.\" $Id$
|
||||||
.\"
|
.\"
|
||||||
.Dd DATE December 3, 2012
|
.Dd DATE May 16, 2013
|
||||||
.Os
|
.Os
|
||||||
.Dt AVRDUDE 1
|
.Dt AVRDUDE 1
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
|
@ -38,6 +38,7 @@
|
||||||
.Oc
|
.Oc
|
||||||
.Op Fl F
|
.Op Fl F
|
||||||
.Op Fl i Ar delay
|
.Op Fl i Ar delay
|
||||||
|
.Op Fl n logfile
|
||||||
.Op Fl n
|
.Op Fl n
|
||||||
.Op Fl O
|
.Op Fl O
|
||||||
.Op Fl P Ar port
|
.Op Fl P Ar port
|
||||||
|
@ -416,6 +417,16 @@ is running.
|
||||||
On Win32 operating systems, a preconfigured number of cycles per
|
On Win32 operating systems, a preconfigured number of cycles per
|
||||||
microsecond is assumed that might be off a bit for very fast or very
|
microsecond is assumed that might be off a bit for very fast or very
|
||||||
slow machines.
|
slow machines.
|
||||||
|
.It Fl l Ar logfile
|
||||||
|
Use
|
||||||
|
.Ar logfile
|
||||||
|
rather than
|
||||||
|
.Va stderr
|
||||||
|
for diagnostics output.
|
||||||
|
Note that initial diagnostic messages (during option parsing) are still
|
||||||
|
written to
|
||||||
|
.Va stderr
|
||||||
|
anyway.
|
||||||
.It Fl n
|
.It Fl n
|
||||||
No-write - disables actually writing data to the MCU (useful for debugging
|
No-write - disables actually writing data to the MCU (useful for debugging
|
||||||
.Nm avrdude
|
.Nm avrdude
|
||||||
|
|
|
@ -485,6 +485,11 @@ On Win32 operating systems, a preconfigured number of cycles per
|
||||||
microsecond is assumed that might be off a bit for very fast or very
|
microsecond is assumed that might be off a bit for very fast or very
|
||||||
slow machines.
|
slow machines.
|
||||||
|
|
||||||
|
@item -l @var{logfile}
|
||||||
|
Use @var{logfile} rather than @var{stderr} for diagnostics output.
|
||||||
|
Note that initial diagnostic messages (during option parsing) are still
|
||||||
|
written to @var{stderr} anyway.
|
||||||
|
|
||||||
@item -n
|
@item -n
|
||||||
No-write - disables actually writing data to the MCU (useful for
|
No-write - disables actually writing data to the MCU (useful for
|
||||||
debugging AVRDUDE).
|
debugging AVRDUDE).
|
||||||
|
|
20
main.c
20
main.c
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* avrdude - A Downloader/Uploader for AVR device programmers
|
* avrdude - A Downloader/Uploader for AVR device programmers
|
||||||
* Copyright (C) 2000-2005 Brian S. Dean <bsd@bsdhome.com>
|
* Copyright (C) 2000-2005 Brian S. Dean <bsd@bsdhome.com>
|
||||||
* Copyright 2007-2009 Joerg Wunsch <j@uriah.heep.sax.de>
|
* Copyright 2007-2013 Joerg Wunsch <j@uriah.heep.sax.de>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -123,6 +123,7 @@ static void usage(void)
|
||||||
" -Y <number> Initialize erase cycle # in EEPROM.\n"
|
" -Y <number> Initialize erase cycle # in EEPROM.\n"
|
||||||
" -v Verbose output. -v -v for more.\n"
|
" -v Verbose output. -v -v for more.\n"
|
||||||
" -q Quell progress output. -q -q for less.\n"
|
" -q Quell progress output. -q -q for less.\n"
|
||||||
|
" -l logfile Use logfile rather than stderr for diagnostics.\n"
|
||||||
" -? Display this usage.\n"
|
" -? Display this usage.\n"
|
||||||
"\navrdude version %s, URL: <http://savannah.nongnu.org/projects/avrdude/>\n"
|
"\navrdude version %s, URL: <http://savannah.nongnu.org/projects/avrdude/>\n"
|
||||||
,progname, version);
|
,progname, version);
|
||||||
|
@ -332,6 +333,7 @@ int main(int argc, char * argv [])
|
||||||
int silentsafe; /* Don't ask about fuses, 1=silent, 0=normal */
|
int silentsafe; /* Don't ask about fuses, 1=silent, 0=normal */
|
||||||
int init_ok; /* Device initialization worked well */
|
int init_ok; /* Device initialization worked well */
|
||||||
int is_open; /* Device open succeeded */
|
int is_open; /* Device open succeeded */
|
||||||
|
char * logfile; /* Use logfile rather than stderr for diagnostics */
|
||||||
enum updateflags uflags = UF_AUTO_ERASE; /* Flags for do_op() */
|
enum updateflags uflags = UF_AUTO_ERASE; /* Flags for do_op() */
|
||||||
unsigned char safemode_lfuse = 0xff;
|
unsigned char safemode_lfuse = 0xff;
|
||||||
unsigned char safemode_hfuse = 0xff;
|
unsigned char safemode_hfuse = 0xff;
|
||||||
|
@ -411,6 +413,7 @@ int main(int argc, char * argv [])
|
||||||
safemode = 1; /* Safemode on by default */
|
safemode = 1; /* Safemode on by default */
|
||||||
silentsafe = 0; /* Ask by default */
|
silentsafe = 0; /* Ask by default */
|
||||||
is_open = 0;
|
is_open = 0;
|
||||||
|
logfile = NULL;
|
||||||
|
|
||||||
if (isatty(STDIN_FILENO) == 0)
|
if (isatty(STDIN_FILENO) == 0)
|
||||||
safemode = 0; /* Turn off safemode if this isn't a terminal */
|
safemode = 0; /* Turn off safemode if this isn't a terminal */
|
||||||
|
@ -459,7 +462,7 @@ int main(int argc, char * argv [])
|
||||||
/*
|
/*
|
||||||
* process command line arguments
|
* process command line arguments
|
||||||
*/
|
*/
|
||||||
while ((ch = getopt(argc,argv,"?b:B:c:C:DeE:Fi:np:OP:qstU:uvVx:yY:")) != -1) {
|
while ((ch = getopt(argc,argv,"?b:B:c:C:DeE:Fi:l:np:OP:qstU:uvVx:yY:")) != -1) {
|
||||||
|
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'b': /* override default programmer baud rate */
|
case 'b': /* override default programmer baud rate */
|
||||||
|
@ -519,6 +522,10 @@ int main(int argc, char * argv [])
|
||||||
ovsigck = 1;
|
ovsigck = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'l':
|
||||||
|
logfile = optarg;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'n':
|
case 'n':
|
||||||
uflags |= UF_NOWRITE;
|
uflags |= UF_NOWRITE;
|
||||||
break;
|
break;
|
||||||
|
@ -608,6 +615,15 @@ int main(int argc, char * argv [])
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (logfile != NULL) {
|
||||||
|
FILE *newstderr = freopen(logfile, "w", stderr);
|
||||||
|
if (newstderr == NULL) {
|
||||||
|
/* Help! There's no stderr to complain to anymore now. */
|
||||||
|
printf("Cannot create logfile \"%s\": %s\n",
|
||||||
|
logfile, strerror(errno));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (quell_progress == 0) {
|
if (quell_progress == 0) {
|
||||||
if (isatty (STDERR_FILENO))
|
if (isatty (STDERR_FILENO))
|
||||||
|
|
Loading…
Reference in New Issue