+ /* Seek to the correct position */
+ FileSetPos (F, Pos);
+
+ /* Read the asm debug symbols */
+ DbgSymCount = ReadVar (F);
+ CollGrow (&O->DbgSyms, DbgSymCount);
+ for (I = 0; I < DbgSymCount; ++I) {
+ CollAppend (&O->DbgSyms, ReadDbgSym (F, O, I));
+ }
+
+ /* Read the hll debug symbols */
+ DbgSymCount = ReadVar (F);
+ CollGrow (&O->HLLDbgSyms, DbgSymCount);
+ for (I = 0; I < DbgSymCount; ++I) {
+ CollAppend (&O->HLLDbgSyms, ReadHLLDbgSym (F, O, I));
+ }
+}
+
+
+
+void ObjReadLineInfos (FILE* F, unsigned long Pos, ObjData* O)
+/* Read the line infos from a file at the given position */
+{
+ unsigned I;
+ unsigned LineInfoCount;
+
+ /* Seek to the correct position */
+ FileSetPos (F, Pos);
+
+ /* Read the data */
+ LineInfoCount = ReadVar (F);
+ CollGrow (&O->LineInfos, LineInfoCount);
+ for (I = 0; I < LineInfoCount; ++I) {
+ CollAppend (&O->LineInfos, ReadLineInfo (F, O));
+ }
+}
+
+
+
+void ObjReadStrPool (FILE* F, unsigned long Pos, ObjData* O)
+/* Read the string pool from a file at the given position */
+{
+ unsigned I;
+
+ /* Seek to the correct position */
+ FileSetPos (F, Pos);
+
+ /* Read the data */
+ O->StringCount = ReadVar (F);
+ O->Strings = xmalloc (O->StringCount * sizeof (O->Strings[0]));
+ for (I = 0; I < O->StringCount; ++I) {
+ O->Strings[I] = ReadStr (F);
+ }
+}
+
+
+
+void ObjReadAssertions (FILE* F, unsigned long Pos, ObjData* O)
+/* Read the assertions from a file at the given offset */
+{
+ unsigned I;
+ unsigned AssertionCount;
+
+ /* Seek to the correct position */
+ FileSetPos (F, Pos);
+
+ /* Read the data */
+ AssertionCount = ReadVar (F);
+ CollGrow (&O->Assertions, AssertionCount);
+ for (I = 0; I < AssertionCount; ++I) {
+ CollAppend (&O->Assertions, ReadAssertion (F, O));
+ }
+}
+
+
+
+void ObjReadScopes (FILE* F, unsigned long Pos, ObjData* O)
+/* Read the scope table from a file at the given offset */
+{
+ unsigned I;
+ unsigned ScopeCount;
+
+ /* Seek to the correct position */
+ FileSetPos (F, Pos);
+
+ /* Read the data */
+ ScopeCount = ReadVar (F);
+ CollGrow (&O->Scopes, ScopeCount);
+ for (I = 0; I < ScopeCount; ++I) {
+ CollAppend (&O->Scopes, ReadScope (F, O, I));
+ }
+}
+
+
+
+void ObjReadSpans (FILE* F, unsigned long Pos, ObjData* O)
+/* Read the span table from a file at the given offset */
+{
+ unsigned I;
+ unsigned SpanCount;
+
+ /* Seek to the correct position */
+ FileSetPos (F, Pos);
+
+ /* Read the data */
+ SpanCount = ReadVar (F);
+ CollGrow (&O->Spans, SpanCount);
+ for (I = 0; I < SpanCount; ++I) {
+ CollAppend (&O->Spans, ReadSpan (F, O, I));