in src/debugger/SourceFileManager.cpp [161:181]
void SourceFileManager::loadState(SEXP _list) {
ShieldSEXP list = _list;
if (list.type() != VECSXP) return;
currentGeneratedFileId = asInt(list[1]);
ShieldSEXP files = list[0];
if (files.type() != VECSXP) return;
for (int i = 0; i < files.length(); ++i) {
ShieldSEXP entry = files[i];
if (entry.type() != VECSXP || entry.length() != 5) continue;
std::string id = asStringUTF8(entry[1]);
if (id.empty() || virtualFiles.count(id)) continue;
ShieldSEXP extPtr = entry[0];
if (extPtr.type() != EXTPTRSXP) continue;
createVirtualFileInfo(id, extPtr);
virtualFiles[id] = extPtr;
VirtualFileInfoPtr virtualFile(extPtr);
virtualFile->isGenerated = asBool(entry[2]);
virtualFile->generatedName = asStringUTF8(entry[3]);
virtualFile->lines = TYPEOF(entry[4]) == STRSXP ? entry[4] : R_NilValue;
}
}