From 3c03b5de581f6a3ff644ec0dd0feeff5dd3648e5 Mon Sep 17 00:00:00 2001 From: Stu Grossman Date: Tue, 28 Jan 1992 02:24:08 +0000 Subject: * dbxread.c (process_one_symbol): Make a first cut at handling symbol tables generated by Suns acc. --- gdb/ChangeLog | 3 +++ gdb/dbxread.c | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 11d2fb3..bc5cfb1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ Mon Jan 27 15:46:21 1992 Stu Grossman (grossman at cygnus.com) + * dbxread.c (process_one_symbol): Make a first cut at handling + symbol tables generated by Suns acc. + * symtab.c (find_pc_line): Fix stepping into and out of #included files. diff --git a/gdb/dbxread.c b/gdb/dbxread.c index 8bb9365..251a81a 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -1355,6 +1355,13 @@ process_one_symbol (type, desc, valu, name) { case N_FUN: case N_FNAME: +/* It seems that the Sun ANSI C compiler (acc) replaces N_FUN with N_GSYM and + N_STSYM with a type code of f or F. Can't enable this until we get some + stuff straightened out with psymtabs. +*/ + case N_GSYM: + case N_STSYM: + /* Either of these types of symbols indicates the start of a new function. We must process its "name" normally for dbx, but also record the start of a new lexical context, and possibly @@ -1362,10 +1369,6 @@ process_one_symbol (type, desc, valu, name) /* This is not always true. This type of symbol may indicate a text segment variable. */ -#ifndef SUN_FIXED_LBRAC_BUG - last_pc_address = valu; /* Save for SunOS bug circumcision */ -#endif - colon_pos = strchr (name, ':'); if (!colon_pos++ || (*colon_pos != 'f' && *colon_pos != 'F')) @@ -1374,6 +1377,10 @@ process_one_symbol (type, desc, valu, name) break; } +#ifndef SUN_FIXED_LBRAC_BUG + last_pc_address = valu; /* Save for SunOS bug circumcision */ +#endif + within_function = 1; if (context_stack_depth > 0) { @@ -1384,7 +1391,7 @@ process_one_symbol (type, desc, valu, name) } /* Stack must be empty now. */ if (context_stack_depth != 0) - complain (lbrac_unmatched_complaint, symnum); + complain (&lbrac_unmatched_complaint, symnum); new = push_context (0, valu); new->name = define_symbol (valu, name, desc, type); @@ -1432,7 +1439,7 @@ process_one_symbol (type, desc, valu, name) new = pop_context(); if (desc != new->depth) - complain (lbrac_mismatch_complaint, symnum); + complain (&lbrac_mismatch_complaint, symnum); /* Some compilers put the variable decls inside of an LBRAC/RBRAC block. This macro should be nonzero if this -- cgit v1.1