This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: crossgcc debug with HP emulator


Hi 

Steve deRosier wrote:

> I am having problems creating code with my crossgcc that 
> works properly with the HP emulator that we are using.  
...

> Is there a flag that I am missing or another
> permutation of the -g flag that will allow me to display the 
> C/C++ source in my debugger? 

We had the same problem. I ended up in modifying gcc as shown in the
attached small patch.

The effect is to add an option: -fkeep-file-path
that, when applied, does not strip the path from the supplied filename.

For us it works with HP emulator and Lauterbach hostdriver.

Kind regards

Hans Peter

   --
Hans Peter Jepsen          Phone: +45 74 88 50 11
Danfoss Drives A/S,        Fax:   +45 74 65 28 38
DG-133, Ulsnaes 1,         Email: Hans_Peter_Jepsen@danfoss.com
DK-6300 Graasten, Denmark  or:    hpj@computer.org



*** egcs-1.1b/gcc/toplev.c.orig	Sun May  2 20:47:14 1999
--- egcs-1.1b/gcc/toplev.c	Mon Jun 21 09:06:40 1999
***************
*** 721,726 ****
--- 721,731 ----
     if alias analysis (in general) is enabled.  */
  int flag_strict_aliasing = 0;
  
+ /* -fkeep-file-path causes the file directive in the outputfile to be the
name
+    given on the commandline, ie a possible directory path is not removed.
+    Normal/default behavior is to strip the path */
+ int keep_file_path = 0;
+ 
  extern int flag_dump_unnumbered;
  
  
***************
*** 908,913 ****
--- 913,920 ----
     "Generate code to check every memory access" },
    {"prefix-function-name", &flag_prefix_function_name, 1,
     "Add a prefix to all function names" },
+   {"keep-file-path", &keep_file_path,1,
+    "Do not strip path in .file directive"},
    {"dump-unnumbered", &flag_dump_unnumbered, 1}
  };
  
***************
*** 2371,2386 ****
       FILE *asm_file;
       char *input_name;
  {
!   int len = strlen (input_name);
!   char *na = input_name + len;
  
!   /* NA gets INPUT_NAME sans directory names.  */
!   while (na > input_name)
!     {
!       if (na[-1] == '/')
! 	break;
!       na--;
!     }
  
  #ifdef ASM_OUTPUT_MAIN_SOURCE_FILENAME
    ASM_OUTPUT_MAIN_SOURCE_FILENAME (asm_file, na);
--- 2378,2400 ----
       FILE *asm_file;
       char *input_name;
  {
!    char *na;
!    
!    if ( keep_file_path) /* leave the input_name unchanged */
!       na = input_name;
!    else /* strip leadin path from input_name - default behaviour */
!    {      
!       int len = strlen (input_name);
!       na = input_name + len;
  
!       /* NA gets INPUT_NAME sans directory names.  */
!       while (na > input_name)
!       {
! 	 if (na[-1] == '/')
! 	    break;
! 	 na--;
!       }
!    }
  
  #ifdef ASM_OUTPUT_MAIN_SOURCE_FILENAME
    ASM_OUTPUT_MAIN_SOURCE_FILENAME (asm_file, na);

toplev.c.patch.gz

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]