Sorry for the lack of info. I wrote a library to create pdb files on the Wintel platform. It is usefull to generate dictionaries and stuff that only needs to get generated once, where a conduit is an overkill.

The library was created using VC++, although it doesn't matter.

A pdb file has this general format
  PDB HEADER
  RECORD 0 HEADER
  RECORD 1 HEADER
  ...
  RECORD N HEADER
  RECORD 0 DATA
  RECORD 1 DATA
  ...
  RECORD N DATA
One of the elements on the record header is the LocalID, which is an offset to the beginning of the corresponding record data. My doubt came about when I started getting errors on record size which, by comparison with existing pdb files, I tracked down to the LocalID and its odd swapping of bytes.

A LocalID, represented on the intel platform as hexadecimal 01 02 03 04, becomes 02 01 04 03 on the palm device.

My library is working now, using the odd swapping for the LocalID. I would just like to understand why...

[EMAIL PROTECTED] wrote:

I have no idea. I have no idea what you're doing or how you're doing it, what
platform you're doing it on or what tools you're doing it with. However, I do
know that if you have a LocalID with a value of, say 0x01020304, then in the
.pdb file, it should appear as 01 02 03 04 if you do a hex dump.

-- Keith

Sergio Carvalho <[EMAIL PROTECTED]> on 09/24/99 01:28:47 AM

Please respond to [EMAIL PROTECTED]

Sent by:  Sergio Carvalho <[EMAIL PROTECTED]>

To:   [EMAIL PROTECTED]
cc:    (Keith Rollin/HQ/3Com)
Subject:  Re: Endian problems

Could it be that the LocalID is in fact a pair of Words, not a DWord as
indicated in the DataPrv header?

[EMAIL PROTECTED] wrote:

> In general,
>
>     01 02 03 04
>
> should be converted to:
>
>     04 03 02 01
>
> I'm not sure what problems you're experiencing with the LocalID.

>
>
> -- Keith Rollin
>
> Sergio Carvalho <[EMAIL PROTECTED]> on 09/24/99 01:00:41 AM
>
> Please respond to [EMAIL PROTECTED]
>
> Sent by:  Sergio Carvalho <[EMAIL PROTECTED]>
>
> To:   [EMAIL PROTECTED]
> cc:    (Keith Rollin/HQ/3Com)
> Subject:  Endian problems
>
> How should double words be swapped, when converting from little-endian
> to big-endian? A DWord:
>     01 02 03 04
> should become:
>     04 03 02 01
> or should it become:
>     02 01 04 03
>
> I expected it to be the first case. But when building a pdb, I had to
> use the second case to convert the record localID. the LocalID type is
> typedefed onto a DWord on the DataMgrPrv.h header. To confuse me more,
> the creatorID and database type fall onto the first case. A DB type of
> 'data' must be swapped to 'atad'...
>
> I feel lost.
>
> --
> Sergio Carvalho
> ---------------
> [EMAIL PROTECTED]
>
> If at first you don't succeed, skydiving is not for you

--
Sergio Carvalho
---------------
[EMAIL PROTECTED]

If at first you don't succeed, skydiving is not for you

--
Sergio Carvalho
---------------
[EMAIL PROTECTED]

If at first you don't succeed, skydiving is not for you
 

Reply via email to