More work on high level language debug symbols. They are now passed correctly

via the object files to the linker and written to the debug info file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5285 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2011-08-30 11:42:26 +00:00
parent 2f82cb4fb8
commit aaa21c6417
16 changed files with 339 additions and 45 deletions

View File

@@ -67,9 +67,10 @@ static void AssignIds (void)
{
/* Walk over all modules */
unsigned I;
unsigned ScopeBaseId = 0;
unsigned SpanBaseId = 0;
unsigned SymBaseId = 0;
unsigned HLLSymBaseId = 0;
unsigned ScopeBaseId = 0;
unsigned SpanBaseId = 0;
unsigned SymBaseId = 0;
for (I = 0; I < CollCount (&ObjDataList); ++I) {
/* Get this module */
@@ -79,11 +80,13 @@ static void AssignIds (void)
O->Id = I;
/* Assign base ids */
O->ScopeBaseId = ScopeBaseId;
O->SpanBaseId = SpanBaseId;
O->SymBaseId = SymBaseId;
O->HLLSymBaseId = HLLSymBaseId;
O->ScopeBaseId = ScopeBaseId;
O->SpanBaseId = SpanBaseId;
O->SymBaseId = SymBaseId;
/* Bump the base ids */
HLLSymBaseId += CollCount (&O->HLLDbgSyms);
ScopeBaseId += CollCount (&O->Scopes);
SpanBaseId += CollCount (&O->Spans);
SymBaseId += CollCount (&O->DbgSyms);
@@ -115,7 +118,8 @@ void CreateDbgFile (void)
*/
fprintf (
F,
"info\tfile=%u,lib=%u,line=%u,mod=%u,scope=%u,seg=%u,span=%u,type=%u\n",
"info\tcsym=%u,file=%u,lib=%u,line=%u,mod=%u,scope=%u,seg=%u,span=%u,sym=%u,type=%u\n",
HLLDbgSymCount (),
FileInfoCount (),
LibraryCount (),
LineInfoCount (),
@@ -123,12 +127,16 @@ void CreateDbgFile (void)
ScopeCount (),
SegmentCount (),
SpanCount (),
DbgSymCount (),
TypeCount ()
);
/* Assign the ids to the items */
AssignIds ();
/* Output high level language symbols */
PrintHLLDbgSyms (F);
/* Output files */
PrintDbgFileInfo (F);