Author: tkreuzer Date: Wed Dec 16 02:06:10 2009 New Revision: 44617
URL: http://svn.reactos.org/svn/reactos?rev=44617&view=rev Log: Copy from trunk
Modified: branches/ros-amd64-bringup/reactos/tools/rsym/log2lines.c
Modified: branches/ros-amd64-bringup/reactos/tools/rsym/log2lines.c URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/tools/... ============================================================================== --- branches/ros-amd64-bringup/reactos/tools/rsym/log2lines.c [iso-8859-1] (original) +++ branches/ros-amd64-bringup/reactos/tools/rsym/log2lines.c [iso-8859-1] Wed Dec 16 02:06:10 2009 @@ -27,7 +27,7 @@ #define CP_CMD "copy /Y " #define DIR_FMT "dir /a:-d /s /b %s > %s"
-#else /* not defined (__DJGPP__) || defined (__WIN32__) */ +#else /* not defined (__DJGPP__) || defined (__WIN32__) */
#include <errno.h> #include <limits.h> @@ -41,7 +41,7 @@ #define CP_CMD "cp -f " #define DIR_FMT "find %s -type f > %s"
-#endif /* not defined (__DJGPP__) || defined (__WIN32__) */ +#endif /* not defined (__DJGPP__) || defined (__WIN32__) */
#define CP_FMT CP_CMD "%s %s > " DEV_NULL
@@ -82,14 +82,14 @@
struct summ_struct { - int translated; - int undo; - int redo; - int skipped; - int diff; + int translated; + int undo; + int redo; + int skipped; + int diff; int majordiff; - int offset_errors; - int total; + int offset_errors; + int total; };
struct lineinfo_struct @@ -104,11 +104,11 @@ };
typedef struct cache_struct CACHE; -typedef struct summ_struct SUMM; +typedef struct summ_struct SUMM; typedef struct lineinfo_struct LINEINFO;
-static CACHE cache; -static SUMM summ; +static CACHE cache; +static SUMM summ; static LINEINFO lastLine;
static char *optchars = "bcd:fFhl:mMrsS:tTuUvz:"; @@ -130,7 +130,7 @@ static char opt_dir[MAX_PATH]; // -d static char opt_logFile[MAX_PATH]; // -l static char opt_7z[MAX_PATH]; // -z -static char opt_scanned[LINESIZE]; // all scanned options +static char opt_scanned[LINESIZE]; // all scanned options static FILE *logFile = NULL;
static char *cache_name; @@ -229,9 +229,9 @@ static PROSSYM_ENTRY find_offset(void *data, size_t offset) { - PSYMBOLFILE_HEADER RosSymHeader = (PSYMBOLFILE_HEADER) data; - PROSSYM_ENTRY Entries = (PROSSYM_ENTRY) ((char *)data + RosSymHeader->SymbolsOffset); - size_t symbols = RosSymHeader->SymbolsLength / sizeof (ROSSYM_ENTRY); + PSYMBOLFILE_HEADER RosSymHeader = (PSYMBOLFILE_HEADER)data; + PROSSYM_ENTRY Entries = (PROSSYM_ENTRY)((char *)data + RosSymHeader->SymbolsOffset); + size_t symbols = RosSymHeader->SymbolsLength / sizeof(ROSSYM_ENTRY); size_t i;
for (i = 0; i < symbols; i++) @@ -252,7 +252,7 @@ static int print_offset(void *data, size_t offset, char *toString) { - PSYMBOLFILE_HEADER RosSymHeader = (PSYMBOLFILE_HEADER) data; + PSYMBOLFILE_HEADER RosSymHeader = (PSYMBOLFILE_HEADER)data; PROSSYM_ENTRY e = NULL; PROSSYM_ENTRY e2 = NULL; int bFileOffsetChanged = 0; @@ -264,20 +264,20 @@ if (opt_twice) { e2 = find_offset(data, offset - 1); - - if ( e == e2 ) + + if (e == e2) e2 = NULL; else summ.diff++;
- if ( opt_Twice && e2 ) + if (opt_Twice && e2) { e = e2; e2 = NULL; /* replaced (transparantly), but updated stats */ } } - if ( e || e2 ) + if (e || e2) { strcpy(lastLine.file1, &Strings[e->FileOffset]); strcpy(lastLine.func1, &Strings[e->FunctionOffset]); @@ -315,47 +315,47 @@ else strcat(fmt, "%.0s)");
- if (toString) - { // put in toString if provided + if (toString) + { // put in toString if provided snprintf(toString, LINESIZE, fmt, - &Strings[e->FileOffset], + &Strings[e->FileOffset], &Strings[e2->FileOffset], - (unsigned int)e->SourceLine, + (unsigned int)e->SourceLine, (unsigned int)e2->SourceLine, - &Strings[e->FunctionOffset], - &Strings[e2->FunctionOffset]); + &Strings[e->FunctionOffset], + &Strings[e2->FunctionOffset]); } else { strcat(fmt, "\n"); printf(fmt, - &Strings[e->FileOffset], + &Strings[e->FileOffset], &Strings[e2->FileOffset], - (unsigned int)e->SourceLine, + (unsigned int)e->SourceLine, (unsigned int)e2->SourceLine, &Strings[e->FunctionOffset], &Strings[e2->FunctionOffset]); } } else - { + { if (toString) { // put in toString if provided snprintf(toString, LINESIZE, "%s:%u (%s)", - &Strings[e->FileOffset], - (unsigned int)e->SourceLine, + &Strings[e->FileOffset], + (unsigned int)e->SourceLine, &Strings[e->FunctionOffset]); } else { printf("%s:%u (%s)\n", - &Strings[e->FileOffset], - (unsigned int)e->SourceLine, - &Strings[e->FunctionOffset]); - } - } - return 0; - } + &Strings[e->FileOffset], + (unsigned int)e->SourceLine, + &Strings[e->FunctionOffset]); + } + } + return 0; + } return 1; }
@@ -371,24 +371,24 @@ int res;
/* Check if MZ header exists */ - PEDosHeader = (PIMAGE_DOS_HEADER) FileData; + PEDosHeader = (PIMAGE_DOS_HEADER)FileData; if (PEDosHeader->e_magic != IMAGE_DOS_MAGIC || PEDosHeader->e_lfanew == 0L) { fprintf(stderr, "Input file is not a PE image.\n"); - summ.offset_errors ++; + summ.offset_errors++; return 1; }
/* Locate PE file header */ /* sizeof(ULONG) = sizeof(MAGIC) */ - PEFileHeader = (PIMAGE_FILE_HEADER) ((char *)FileData + PEDosHeader->e_lfanew + sizeof (ULONG)); + PEFileHeader = (PIMAGE_FILE_HEADER)((char *)FileData + PEDosHeader->e_lfanew + sizeof(ULONG));
/* Locate optional header */ - PEOptHeader = (PIMAGE_OPTIONAL_HEADER) (PEFileHeader + 1); + PEOptHeader = (PIMAGE_OPTIONAL_HEADER)(PEFileHeader + 1); ImageBase = PEOptHeader->ImageBase;
/* Locate PE section headers */ - PESectionHeaders = (PIMAGE_SECTION_HEADER) ((char *)PEOptHeader + PEFileHeader->SizeOfOptionalHeader); + PESectionHeaders = (PIMAGE_SECTION_HEADER)((char *)PEOptHeader + PEFileHeader->SizeOfOptionalHeader);
/* make sure offset is what we want */ offset = fixup_offset(ImageBase, offset); @@ -398,7 +398,7 @@ if (!PERosSymSectionHeader) { fprintf(stderr, "Couldn't find rossym section in executable\n"); - summ.offset_errors ++; + summ.offset_errors++; return 1; } res = print_offset((char *)FileData + PERosSymSectionHeader->PointerToRawData, offset, toString); @@ -413,7 +413,7 @@ printf("??:0\n"); } fprintf(stderr, "Offset not found.\n"); - summ.offset_errors ++; + summ.offset_errors++; }
return res; @@ -538,7 +538,7 @@ return 1; }
- readLen = fread(&PEDosHeader, sizeof (IMAGE_DOS_HEADER), 1, fr); + readLen = fread(&PEDosHeader, sizeof(IMAGE_DOS_HEADER), 1, fr); if (1 != readLen) { if (opt_verbose) @@ -557,8 +557,8 @@ }
/* Locate PE file header */ - res = fseek(fr, PEDosHeader.e_lfanew + sizeof (ULONG), SEEK_SET); - readLen = fread(&PEFileHeader, sizeof (IMAGE_FILE_HEADER), 1, fr); + res = fseek(fr, PEDosHeader.e_lfanew + sizeof(ULONG), SEEK_SET); + readLen = fread(&PEFileHeader, sizeof(IMAGE_FILE_HEADER), 1, fr); if (1 != readLen) { if (opt_verbose) @@ -568,7 +568,7 @@ }
/* Locate optional header */ - readLen = fread(&PEOptHeader, sizeof (IMAGE_OPTIONAL_HEADER), 1, fr); + readLen = fread(&PEOptHeader, sizeof(IMAGE_OPTIONAL_HEADER), 1, fr); if (1 != readLen) { if (opt_verbose) @@ -625,7 +625,7 @@ if (!Line) return NULL;
- pentry = malloc(sizeof (CACHE_ENTRY)); + pentry = malloc(sizeof(CACHE_ENTRY)); if (!pentry) return NULL;
@@ -682,7 +682,7 @@ if (PATHCMP(name, pnext->name) == 0) { if (pprev) - { // move to head for faster lookup next time + { // move to head for faster lookup next time pprev->pnext = pnext->pnext; pnext->pnext = cache.phead; cache.phead = pnext; @@ -895,9 +895,9 @@ static char * remove_mark(char *Line) { - if( Line[1] == ' ' && Line[2] == '<' ) - if ( Line[0] == '*' || Line[0] == '?' ) - return Line+2; + if (Line[1] == ' ' && Line[2] == '<') + if (Line[0] == '*' || Line[0] == '?') + return Line + 2; return Line; }
@@ -934,7 +934,7 @@ if (cnt == 3 && ch == ' ') { tail = strchr(s, '>'); - tail = tail ? tail-1 : tail; + tail = tail ? tail - 1 : tail; if (tail && tail[0] == ')' && tail[1] == '>') { res = 0; @@ -943,20 +943,20 @@ if (opt_redo && !(res = translate_file(path, offset, LineOut))) { log(outFile, "%s<%s:%x (%s)>%s", mark, path, offset, LineOut, tail); - summ.redo ++; + summ.redo++; } else { log(outFile, "%s<%s:%x>%s", mark, path, offset, tail); - summ.undo ++; + summ.undo++; } } else { mark = opt_Mark ? "? " : ""; - summ.skipped ++; + summ.skipped++; } - summ.total ++; + summ.total++; } }
@@ -969,14 +969,14 @@ { mark = opt_mark ? "* " : ""; log(outFile, "%s<%s:%x (%s)>%s", mark, path, offset, LineOut, tail); - summ.translated ++; + summ.translated++; } else { mark = opt_Mark ? "? " : ""; - summ.skipped ++; + summ.skipped++; } - summ.total ++; + summ.total++; } } } @@ -990,29 +990,29 @@ }
static void -print_summary(FILE * outFile) +print_summary(FILE *outFile) { if (outFile) { fprintf(outFile, "\n*** LOG2LINES SUMMARY ***\n"); - fprintf(outFile, "Translated: %d\n", summ.translated); - fprintf(outFile, "Reverted: %d\n", summ.undo); - fprintf(outFile, "Retranslated: %d\n", summ.redo); - fprintf(outFile, "Skipped: %d\n", summ.skipped); - fprintf(outFile, "Differ: %d\n", summ.diff); + fprintf(outFile, "Translated: %d\n", summ.translated); + fprintf(outFile, "Reverted: %d\n", summ.undo); + fprintf(outFile, "Retranslated: %d\n", summ.redo); + fprintf(outFile, "Skipped: %d\n", summ.skipped); + fprintf(outFile, "Differ: %d\n", summ.diff); fprintf(outFile, "Differ (function/source): %d\n", summ.majordiff); - fprintf(outFile, "Offset error: %d\n", summ.offset_errors); - fprintf(outFile, "Total: %d\n", summ.total); + fprintf(outFile, "Offset error: %d\n", summ.offset_errors); + fprintf(outFile, "Total: %d\n", summ.total); fprintf(outFile, "-------------------------------\n"); fprintf(outFile, "Log2lines version: " LOG2LINES_VERSION "\n"); - fprintf(outFile, "Directory: %s\n",opt_dir); - fprintf(outFile, "Passed options: %s\n",opt_scanned); + fprintf(outFile, "Directory: %s\n", opt_dir); + fprintf(outFile, "Passed options: %s\n", opt_scanned); fprintf(outFile, "-------------------------------\n"); } }
static int -translate_files(FILE * inFile, FILE * outFile) +translate_files(FILE *inFile, FILE *outFile) { char *Line = malloc(LINESIZE + 1); char *path = malloc(LINESIZE + 1); @@ -1090,7 +1090,7 @@ } } else - { // Line by line, slightly faster but less interactive + { // Line by line, slightly faster but less interactive while (fgets(Line, LINESIZE, inFile) != NULL) { if (!opt_raw) @@ -1125,7 +1125,7 @@ " - Also, <offset> can be repeated for each <exefile>\n" " - NOTE: some of the options below will have no effect in this form.\n" " Otherwise it reads stdin and tries to translate lines of the form:\n" -" IMAGENAME:ADDRESS\n\n" +" IMAGENAME:ADDRESS\n\n" " The result is written to stdout.\n" " log2lines uses a cache in order to avoid a directory scan at each\n" " image lookup, greatly increasing performance. Only image path and its\n" @@ -1158,14 +1158,14 @@ " -r Raw output without translation.\n\n" " -s Statistics. A summary with the following info is printed after EOF:\n" " *** LOG2LINES SUMMARY ***\n" -" - Translated: Translated lines.\n" -" - Reverted: Lines translated back. See -u option\n" -" - Retranslated: Lines retranslated. See -U option\n" -" - Skipped: Lines not translated.\n" -" - Differ: Lines where (addr-1) info differs. See -tT options\n" +" - Translated: Translated lines.\n" +" - Reverted: Lines translated back. See -u option\n" +" - Retranslated: Lines retranslated. See -U option\n" +" - Skipped: Lines not translated.\n" +" - Differ: Lines where (addr-1) info differs. See -tT options\n" " - Differ(func/src):Lines where also function or source info differ.\n" -" - Offset error: Image exists, but error retrieving offset info.\n" -" - Total: Total number of lines attempted to translate.\n" +" - Offset error: Image exists, but error retrieving offset info.\n" +" - Total: Total number of lines attempted to translate.\n" " Also some version info is displayed.\n\n" " -S <context>\n" " Source lines. Display up to <context> lines until linenumber.\n" @@ -1195,7 +1195,7 @@ "Examples:\n" " Setup is a VMware machine with its serial port set to: '\\.\pipe\kdbg'.\n\n" " Just recreate cache after a svn update or a new module has been added:\n" -" log2lines -F\n\n" +" log2lines -F\n\n" " Use kdbg debugger via console (interactive):\n" " log2lines -c < \\.\pipe\kdbg\n\n" " Use kdbg debugger via console, and append copy to logFile:\n" @@ -1243,7 +1243,7 @@ char Line[LINESIZE]; int res = 0; char iso_tmp[MAX_PATH]; - int iso_copied = 0; + int iso_copied = 0; FILE *fiso;
strcpy(iso_tmp, iso); @@ -1252,8 +1252,8 @@ if (opt_verbose) fprintf(stderr, "Open of %s failed (locked for writing?), trying to copy first\n", iso);
- strcat(iso_tmp,"~"); - if (copy_file(iso,iso_tmp)) + strcat(iso_tmp, "~"); + if (copy_file(iso, iso_tmp)) return 3; iso_copied = 1; } @@ -1394,7 +1394,7 @@ }
strcpy(opt_scanned, ""); - for (i=1; i<argc; i++) + for (i = 1; i < argc; i++) { strcat(opt_scanned, argv[i]); strcat(opt_scanned, " "); @@ -1506,7 +1506,7 @@ { if (opt_verbose) fprintf(stderr, "Disabling log buffering on %s\n", opt_logFile); - setbuf(logFile,NULL); + setbuf(logFile, NULL); } else { @@ -1537,15 +1537,15 @@ fprintf(stderr, "translating %s %s\n", base, offset); translate_file(base, my_atoi(offset), NULL); reportSource(stdout); - } + } else { fprintf(stderr, "<exefile> expected\n"); res = 3; break; - } - } - else + } + } + else { // Must be exefile base = offset; @@ -1553,7 +1553,7 @@ } } else - { // translate logging from stdin + { // translate logging from stdin translate_files(stdin, stdout); }