MCPcopy Create free account
hub / github.com/TASEmulators/fceux / ld65_SymbolLoad

Method ld65_SymbolLoad

src/debugsymboltable.cpp:935–986  ·  view source on GitHub ↗

--------------------------------------------------------------

Source from the content-addressed store, hash-verified

933}
934//--------------------------------------------------------------
935void debugSymbolTable_t::ld65_SymbolLoad( ld65::sym *s )
936{
937 int bank = -1;
938 debugSymbol_t *sym;
939 debugSymbolPage_t *page;
940 ld65::scope *scope = s->getScope();
941 ld65::segment *seg = s->getSegment();
942
943 if ( s->type() == ld65::sym::LABEL )
944 {
945 //printf("Symbol Label Load: name:\"%s\" val:%i 0x%x\n", s->name(), s->value(), s->value() );
946 if (seg)
947 {
948 int romAddr = seg->ofs() - NES_HEADER_SIZE;
949
950 bank = romAddr >= 0 ? romAddr / (1<<debuggerPageSize) : -1;
951
952 //printf(" Seg: name:'%s' ofs:%i Bank:%x\n", seg->name(), romAddr, bank );
953 }
954 //printf("\n");
955
956 auto pageIt = pageMap.find(bank);
957
958 if (pageIt == pageMap.end() )
959 {
960 page = new debugSymbolPage_t(bank);
961
962 pageMap[bank] = page;
963 }
964 else
965 {
966 page = pageIt->second;
967 }
968 std::string name;
969
970 if (scope)
971 {
972 scope->getFullName(name);
973 }
974 name.append(s->name());
975
976 //printf("Creating Symbol: %s\n", name.c_str() );
977
978 sym = new debugSymbol_t( s->value(), name.c_str() );
979
980 if ( page->addSymbol( sym ) )
981 {
982 //printf("Failed to load sym: id:%i name:'%s' bank:%i \n", s->id(), s->name(), bank );
983 delete sym;
984 }
985 }
986}
987//--------------------------------------------------------------
988int debugSymbolTable_t::ld65LoadDebugFile( const char *dbgFilePath )
989{

Callers 1

ld65_iterate_cbFunction · 0.80

Calls 8

getScopeMethod · 0.80
getSegmentMethod · 0.80
typeMethod · 0.80
ofsMethod · 0.80
getFullNameMethod · 0.80
valueMethod · 0.80
addSymbolMethod · 0.80
nameMethod · 0.45

Tested by

no test coverage detected