You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@daffodil.apache.org by "Olabusayo Kilo (JIRA)" <ji...@apache.org> on 2019/06/28 21:48:00 UTC

[jira] [Commented] (DAFFODIL-2173) Data dumps should be bit-aware

    [ https://issues.apache.org/jira/browse/DAFFODIL-2173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16875250#comment-16875250 ] 

Olabusayo Kilo commented on DAFFODIL-2173:
------------------------------------------

First pass at a solution, involves the following steps
 # Determine bitorder and byteorder of data at current position (finfo)
 # Check if bitPosition is mid byte.
 ## If it's mid byte, call fillByteArray (currently private) for bits up to the next byte boundary. Update byteLimit.
 ## 
{code:java}
// val bitsAlreadyCosumed = loc.bitPos0b % 8
// val firstByteBitArray = new Array[Byte](1)
/* if (bitsAlreadyConsumed != 0 ) // mid-byte {
* bitsToDisplay = 8 - bitsAlreadyConsumed
* inStream.fillByteArray(firstByteBitarray, bitsToDisplay, finfo)
* bytesLimit -= 1 //we've taken care of first byte
* }{code}

 # Call inputSource.get as usual, either with byteLimit 1 less, or unchanged. Decode this byte array as is currently done.
 # Use bitOrder and byteOrder to display bitArray (e.g xxxxx100 or 100xxxxx)

> Data dumps should be bit-aware
> ------------------------------
>
>                 Key: DAFFODIL-2173
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2173
>             Project: Daffodil
>          Issue Type: Bug
>          Components: Debugger
>    Affects Versions: 2.4.0
>            Reporter: Olabusayo Kilo
>            Assignee: Olabusayo Kilo
>            Priority: Major
>
> Data dumps print out bytes without regard to the bit offset. So if some bits have already been consumed, the dumps might include those already consumed bits.
> Ideally we would like to be bit sensitive. A possible solution would be to track if the first byte of the left over data, already had consumed bytes i.e ended mid-byte, and only display those non consumed bits. That is, if the data ended at bit 5, and bit order is mostSignificantBitFirst, then this picture would look like xxxxx000 (where the 0's are the actual left over data bits in that first byte of the left over data.) If bitOrder is leastSignificantBitFirst the picture would look like 000xxxxx.
> inStream.fillByteArray takes the bit offset into accound and can be utilized.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)