/usr/local/bin/ssphys: unrecognized file during LOADVSSNAMES

Marcel Juffermans mjuffermans at paradigmone.com.au
Wed Feb 28 23:57:26 EST 2007


Sorry Dirk, I may have wrong-footed you there. The first try catch  
block throws an exception (which is caught and not reported). The  
exception is thrown here:

#0  SSRecord::SSRecord (this=0xd010f0, filePtr=@0x2000c07, offset=0)  
at ./SSPhysLib/SSRecord.cpp:94
#1  0x00011fd8 in SSFileImp::ReadRecord (this=0x50000000, offset=0)  
at ./SSPhysLib/SSFiles.cpp:134
#2  0x000144e8 in SSFileImp::GetRecord (this=0xd010c0, offset=0) at ./ 
SSPhysLib/SSFiles.cpp:121
#3  0x00014764 in SSRecordFile::GetRecord (this=0x2000c07, offset=7)  
at ./SSPhysLib/SSFiles.cpp:274
#4  0x0001562c in SSRecordFile::GetFirstRecord (this=0xbffff564) at ./ 
SSPhysLib/SSFiles.cpp:235
#5  0x00015f9c in SSRecordFile::MakeFile (fileName=@0xd00cb0) at ./ 
SSPhysLib/SSFiles.cpp:194
#6  0x0000e998 in CInfoCommand::Execute (this=0xd00750,  
options=@0xd0075c, arg=@0xd00cb0) at ./source/InfoCommand.cpp:58
#7  0x00004914 in CMultiArgCommand::Execute (this=0xd00750,  
options=@0xd0075c, args=@0x7) at ./source/Command.cpp:121
#8  0x00004fe8 in CCommand::Execute (this=0xd00750, args=@0xbffff770)  
at ./source/Command.cpp:81
#9  0x00010f2c in main (argc=-1073743588, argv=0xbffffb44) at ./ 
source/ssphys.cpp:122

The exception is "bad header: length variable exceeds file size". At  
this point the m_Header is:

(gdb) print m_Header
$4 = {
   size = 1342177280,
   type = "HN",
   checksum = -23990
}

The size looks way too big. It's equal to the first 4 bytes of the  
file (0x50000000) (see od dump below). gdb says:

(gdb) print sizeof(m_Header)
$5 = 8

Does this indicate the compilation problem? If so, what kind of  
compiler arguments should I be looking into? I've not done any C++  
programming ever, but have done C (long long time ago).

Many thanks,

- Marcel

On 01/03/2007, at 3:16 PM, Marcel Juffermans wrote:

> OK, so I've compiled again with -g flag, and run it through gdb.  
> The problem occurs in eType SSRecord::GetType () because m_pBuffer  
> is null. I found the other private data defined in SSRecord.h and  
> printed them:
>
> (gdb) print m_Header
> $8 = {
>   size = 0,
>   type = "\000",
>   checksum = 0
> }
> (gdb) print m_pBuffer
> $9 = (byte *) 0x0
> (gdb) print m_FileImpPtr
> $10 = {
>   px = 0xd01390,
>   pn = {
>     pi_ = 0xd013b0
>   }
> }
> (gdb) print m_Header
> $11 = {
>   size = 0,
>   type = "\000",
>   checksum = 0
> }
> (gdb) print m_pBuffer
> $12 = (byte *) 0x0
> (gdb) print m_Len
> $13 = 0
> (gdb) print m_Offset
> $14 = 52
> (gdb) print m_FileImpPtr
> $15 = {
>   px = 0xd01390,
>   pn = {
>     pi_ = 0xd013b0
>   }
> }
>
> Good fun, I've never done this before! Can't see straight away why  
> this happens, though. Any ideas?
>
> Thanks,
>
> - Marcel
>
> On 01/03/2007, at 10:59 AM, Dirk wrote:
>
>>
>>>
>>> $ od -N 50 -a -H dummy/data/names.dat
>>> 0000000    P nul nul nul   H   N  a2   J nul nul nul nul nul nul  
>>> nul nul
>>>                  50000000        484ea24a        00000000         
>>> 00000000
>>> 0000020  nul nul nul nul nul nul nul nul  db  cd soh nul nul nul  
>>> nul nul
>>>                  00000000        00000000        dbcd0100         
>>> 00000000
>>> 0000040  nul nul nul nul nul nul nul nul nul nul nul nul nul nul  
>>> nul nul
>>>                  00000000        00000000        00000000         
>>> 00000000
>>> *
>>> 0000060
>>>
>>> So the names.dat does have the "HN" magic in it (not sure if it's  
>>> in the right spot or not). I'm stuck now, what else can I do?
>>
>> All in all this looks ok to me. It must have to do with the  
>> compilation you used. Perhaps some structure misalignment. Can you  
>> run the ssphys command within the debugger? Please try to step  
>> through the function SSRecordFile* SSRecordFile::MakeFile (const  
>> std::string& fileName) in SSFiles.cpp. the first try catch block  
>> should return a valid record. Please check that record.
>>
>> Dirk
>>
>> _______________________________________________
>> vss2svn-users mailing list
>> Project homepage:
>> http://www.pumacode.org/projects/vss2svn/
>> Subscribe/Unsubscribe/Admin:
>> http://lists.pumacode.org/mailman/listinfo/vss2svn-users- 
>> lists.pumacode.org
>> Mailing list web interface (with searchable archives):
>> http://dir.gmane.org/gmane.comp.version- 
>> control.subversion.vss2svn.user
>>
>>
>
> _______________________________________________
> vss2svn-users mailing list
> Project homepage:
> http://www.pumacode.org/projects/vss2svn/
> Subscribe/Unsubscribe/Admin:
> http://lists.pumacode.org/mailman/listinfo/vss2svn-users- 
> lists.pumacode.org
> Mailing list web interface (with searchable archives):
> http://dir.gmane.org/gmane.comp.version- 
> control.subversion.vss2svn.user
>
>



More information about the vss2svn-users mailing list