[ros-diffs] [tkreuzer] 40765: fix compilation of raddr2line, by moving it into the rsym folder, too. Thanks BugBoy for noticing.

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Fri May 1 23:39:48 CEST 2009


Author: tkreuzer
Date: Sat May  2 01:39:47 2009
New Revision: 40765

URL: http://svn.reactos.org/svn/reactos?rev=40765&view=rev
Log:
fix compilation of raddr2line, by moving it into the rsym folder, too. Thanks BugBoy for noticing.

Added:
    trunk/reactos/tools/rsym/raddr2line.c
      - copied unchanged from r40759, trunk/reactos/tools/raddr2line.c
    trunk/reactos/tools/rsym/raddr2line.mak
      - copied, changed from r40669, trunk/reactos/tools/raddr2line.mak
Removed:
    trunk/reactos/tools/raddr2line.c
    trunk/reactos/tools/raddr2line.mak
Modified:
    trunk/reactos/tools/tools.mak

Removed: trunk/reactos/tools/raddr2line.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/raddr2line.c?rev=40764&view=auto
==============================================================================
--- trunk/reactos/tools/raddr2line.c [iso-8859-1] (original)
+++ trunk/reactos/tools/raddr2line.c (removed)
@@ -1,188 +1,0 @@
-/*
- * Usage: raddr2line input-file address/offset
- *
- * This is a tool and is compiled using the host compiler,
- * i.e. on Linux gcc and not mingw-gcc (cross-compiler).
- * Therefore we can't include SDK headers and we have to
- * duplicate some definitions here.
- * Also note that the internal functions are "old C-style",
- * returning an int, where a return of 0 means success and
- * non-zero is failure.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "rsym.h"
-
-size_t fixup_offset ( size_t ImageBase, size_t offset )
-{
-//	if ( offset >= ImageBase )
-//		offset -= ImageBase;
-	return offset;
-}
-
-long
-my_atoi ( const char* a )
-{
-	int i = 0;
-	const char* fmt = "%x";
-
-	if ( *a == '0' )
-	{
-		switch ( *++a )
-		{
-		case 'x':
-			fmt = "%x";
-			++a;
-			break;
-		case 'd':
-			fmt = "%d";
-			++a;
-			break;
-		default:
-			fmt = "%o";
-			break;
-		}
-	}
-	sscanf ( a, fmt, &i );
-	return i;
-}
-
-PIMAGE_SECTION_HEADER
-find_rossym_section ( PIMAGE_FILE_HEADER PEFileHeader,
-	PIMAGE_SECTION_HEADER PESectionHeaders )
-{
-	size_t i;
-	for ( i = 0; i < PEFileHeader->NumberOfSections; i++ )
-	{
-		if ( 0 == strcmp ( (char*)PESectionHeaders[i].Name, ".rossym" ) )
-			return &PESectionHeaders[i];
-	}
-	return NULL;
-}
-
-int
-find_and_print_offset (
-	void* data,
-	size_t offset )
-{
-	PSYMBOLFILE_HEADER RosSymHeader = (PSYMBOLFILE_HEADER)data;
-	PROSSYM_ENTRY Entries = (PROSSYM_ENTRY)((char*)data + RosSymHeader->SymbolsOffset);
-	char* Strings = (char*)data + RosSymHeader->StringsOffset;
-	size_t symbols = RosSymHeader->SymbolsLength / sizeof(ROSSYM_ENTRY);
-	size_t i;
-
-	//if ( RosSymHeader->SymbolsOffset )
-
-	for ( i = 0; i < symbols; i++ )
-	{
-		if ( Entries[i].Address > offset )
-		{
-			if ( !i-- )
-				return 1;
-			else
-			{
-				PROSSYM_ENTRY e = &Entries[i];
-				printf ( "%s:%u (%s)\n",
-					&Strings[e->FileOffset],
-					(unsigned int)e->SourceLine,
-					&Strings[e->FunctionOffset] );
-				return 0;
-			}
-		}
-	}
-	return 1;
-}
-
-int
-process_data ( const void* FileData, size_t FileSize, size_t offset )
-{
-	PIMAGE_DOS_HEADER PEDosHeader;
-	PIMAGE_FILE_HEADER PEFileHeader;
-	PIMAGE_OPTIONAL_HEADER PEOptHeader;
-	PIMAGE_SECTION_HEADER PESectionHeaders;
-	PIMAGE_SECTION_HEADER PERosSymSectionHeader;
-	size_t ImageBase;
-	int res;
-
-	/* Check if MZ header exists  */
-	PEDosHeader = (PIMAGE_DOS_HEADER)FileData;
-	if (PEDosHeader->e_magic != IMAGE_DOS_MAGIC || PEDosHeader->e_lfanew == 0L)
-	{
-		perror("Input file is not a PE image.\n");
-		return 1;
-	}
-
-	/* Locate PE file header  */
-	/* sizeof(ULONG) = sizeof(MAGIC) */
-	PEFileHeader = (PIMAGE_FILE_HEADER)((char *)FileData + PEDosHeader->e_lfanew + sizeof(ULONG));
-
-	/* Locate optional header */
-	PEOptHeader = (PIMAGE_OPTIONAL_HEADER)(PEFileHeader + 1);
-	ImageBase = PEOptHeader->ImageBase;
-
-	/* Locate PE section headers  */
-	PESectionHeaders = (PIMAGE_SECTION_HEADER)((char *) PEOptHeader + PEFileHeader->SizeOfOptionalHeader);
-
-	/* make sure offset is what we want */
-	offset = fixup_offset ( ImageBase, offset );
-
-	/* find rossym section */
-	PERosSymSectionHeader = find_rossym_section (
-		PEFileHeader, PESectionHeaders );
-	if ( !PERosSymSectionHeader )
-	{
-		fprintf ( stderr, "Couldn't find rossym section in executable\n" );
-		return 1;
-	}
-	res = find_and_print_offset ( (char*)FileData + PERosSymSectionHeader->PointerToRawData,
-		offset );
-	if ( res )
-		printf ( "??:0\n" );
-	return res;
-}
-
-int
-process_file ( const char* file_name, size_t offset )
-{
-	void* FileData;
-	size_t FileSize;
-	int res = 1;
-
-	FileData = load_file ( file_name, &FileSize );
-	if ( !FileData )
-	{
-		fprintf ( stderr, "An error occured loading '%s'\n", file_name );
-	}
-	else
-	{
-		res = process_data ( FileData, FileSize, offset );
-		free ( FileData );
-	}
-
-	return res;
-}
-
-int main ( int argc, const char** argv )
-{
-	char* path;
-	size_t offset;
-	int res;
-
-	if ( argc != 3 )
-	{
-		fprintf(stderr, "Usage: raddr2line <exefile> <offset>\n");
-		exit(1);
-	}
-
-	path = convert_path ( argv[1] );
-	offset = my_atoi ( argv[2] );
-
-	res = process_file ( path, offset );
-
-	free ( path );
-
-	return res;
-}

Removed: trunk/reactos/tools/raddr2line.mak
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/raddr2line.mak?rev=40764&view=auto
==============================================================================
--- trunk/reactos/tools/raddr2line.mak [iso-8859-1] (original)
+++ trunk/reactos/tools/raddr2line.mak (removed)
@@ -1,41 +1,0 @@
-RADDR2LINE_BASE = $(TOOLS_BASE)
-RADDR2LINE_BASE_ = $(RADDR2LINE_BASE)$(SEP)
-
-RADDR2LINE_INT = $(INTERMEDIATE_)$(RADDR2LINE_BASE)
-RADDR2LINE_INT_ = $(RADDR2LINE_INT)$(SEP)
-RADDR2LINE_OUT = $(OUTPUT_)$(RADDR2LINE_BASE)
-RADDR2LINE_OUT_ = $(RADDR2LINE_OUT)$(SEP)
-
-RADDR2LINE_TARGET = \
-	$(RADDR2LINE_OUT_)raddr2line$(EXEPOSTFIX)
-
-RADDR2LINE_SOURCES = \
-	$(RADDR2LINE_BASE_)raddr2line.c \
-	$(RADDR2LINE_BASE_)rsym_common.c
-
-RADDR2LINE_OBJECTS = \
-	$(addprefix $(INTERMEDIATE_), $(RADDR2LINE_SOURCES:.c=.o))
-
-RADDR2LINE_HOST_CFLAGS = $(TOOLS_CFLAGS)
-
-RADDR2LINE_HOST_LFLAGS = $(TOOLS_LFLAGS)
-
-.PHONY: raddr2line
-raddr2line: $(RADDR2LINE_TARGET)
-
-$(RADDR2LINE_TARGET): $(RADDR2LINE_OBJECTS) | $(RADDR2LINE_OUT)
-	$(ECHO_HOSTLD)
-	${host_gcc} $(RADDR2LINE_OBJECTS) $(RADDR2LINE_HOST_LFLAGS) -o $@
-
-$(RADDR2LINE_INT_)raddr2line.o: $(RADDR2LINE_BASE_)raddr2line.c | $(RADDR2LINE_INT)
-	$(ECHO_HOSTCC)
-	${host_gcc} $(RADDR2LINE_HOST_CFLAGS) -c $< -o $@
-
-#$(RADDR2LINE_INT_)rsym_common.o: $(RADDR2LINE_BASE_)rsym_common.c | $(RADDR2LINE_INT)
-#	$(ECHO_HOSTCC)
-#	${host_gcc} $(RADDR2LINE_HOST_CFLAGS) -c $< -o $@
-
-.PHONY: raddr2line_clean
-raddr2line_clean:
-	-@$(rm) $(RADDR2LINE_TARGET) $(RADDR2LINE_OBJECTS) 2>$(NUL)
-clean: raddr2line_clean

Copied: trunk/reactos/tools/rsym/raddr2line.mak (from r40669, trunk/reactos/tools/raddr2line.mak)
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rsym/raddr2line.mak?p2=trunk/reactos/tools/rsym/raddr2line.mak&p1=trunk/reactos/tools/raddr2line.mak&r1=40669&r2=40765&rev=40765&view=diff
==============================================================================
--- trunk/reactos/tools/raddr2line.mak [iso-8859-1] (original)
+++ trunk/reactos/tools/rsym/raddr2line.mak [iso-8859-1] Sat May  2 01:39:47 2009
@@ -1,4 +1,4 @@
-RADDR2LINE_BASE = $(TOOLS_BASE)
+RADDR2LINE_BASE = $(TOOLS_BASE)$(SEP)rsym
 RADDR2LINE_BASE_ = $(RADDR2LINE_BASE)$(SEP)
 
 RADDR2LINE_INT = $(INTERMEDIATE_)$(RADDR2LINE_BASE)

Modified: trunk/reactos/tools/tools.mak
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/tools.mak?rev=40765&r1=40764&r2=40765&view=diff
==============================================================================
--- trunk/reactos/tools/tools.mak [iso-8859-1] (original)
+++ trunk/reactos/tools/tools.mak [iso-8859-1] Sat May  2 01:39:47 2009
@@ -49,6 +49,6 @@
 include tools/ofw_interface/ofw_interface.mak
 endif
 include tools/pefixup.mak
-include tools/raddr2line.mak
+include tools/rsym/raddr2line.mak
 include tools/rbuild/rbuild.mak
 include tools/rsym/rsym.mak



More information about the Ros-diffs mailing list