diff options
author | Mike Buland <mike@xagasoft.com> | 2024-08-05 10:40:14 -0700 |
---|---|---|
committer | Mike Buland <mike@xagasoft.com> | 2024-08-05 10:40:14 -0700 |
commit | e343acc2548fba7670977029da8373a0e58fa25a (patch) | |
tree | 3584cbee31d23b4ea4dd8d54545ee092ae5076f3 /src/unstable | |
parent | d344a682170e42ef3ca4e37b397428f9ba5fdb11 (diff) | |
download | libbu++-e343acc2548fba7670977029da8373a0e58fa25a.tar.gz libbu++-e343acc2548fba7670977029da8373a0e58fa25a.tar.bz2 libbu++-e343acc2548fba7670977029da8373a0e58fa25a.tar.xz libbu++-e343acc2548fba7670977029da8373a0e58fa25a.zip |
Added loads and loads of debugging output to myriad.
There's an issue somewhere sometimes and streams are being truncated. My
guess is a multi-threaded issue.
Diffstat (limited to '')
-rw-r--r-- | src/unstable/myriadfs.cpp | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/src/unstable/myriadfs.cpp b/src/unstable/myriadfs.cpp index e02620d..b24997a 100644 --- a/src/unstable/myriadfs.cpp +++ b/src/unstable/myriadfs.cpp | |||
@@ -476,17 +476,32 @@ Bu::MyriadFs::Dir Bu::MyriadFs::readDir( int32_t iNode ) | |||
476 | 476 | ||
477 | Bu::MyriadStream is = mStore.openStream( 2 ); | 477 | Bu::MyriadStream is = mStore.openStream( 2 ); |
478 | Dir lDir; | 478 | Dir lDir; |
479 | // sio << "Reading dir, " << iNumChildren << " entries:" << sio.nl; | 479 | sio << "Reading dir " << iNode << ", " << iNumChildren << " entries:" << sio.nl; |
480 | for( int32_t j = 0; j < iNumChildren; j++ ) | 480 | for( int32_t j = 0; j < iNumChildren; j++ ) |
481 | { | 481 | { |
482 | int32_t iChildNode; | 482 | int32_t iChildNode = 0; |
483 | ms.read( &iChildNode, 4 ); | 483 | if( ms.read( &iChildNode, 4 ) < 4 ) |
484 | { | ||
485 | throw Bu::MyriadFsException( | ||
486 | "Failed to read iChildNode from directory."); | ||
487 | } | ||
488 | Bu::println(" - iNode = %1").arg( iChildNode ); | ||
484 | Stat s; | 489 | Stat s; |
485 | stat( iChildNode, s, is ); | 490 | stat( iChildNode, s, is ); |
486 | uint8_t uLen; | 491 | uint8_t uLen; |
487 | ms.read( &uLen, 1 ); | 492 | if( ms.read( &uLen, 1 ) < 1 ) |
493 | { | ||
494 | throw Bu::MyriadFsException( | ||
495 | "Failed to read uLen from directory."); | ||
496 | } | ||
497 | Bu::println(" - Name bytes = %1").arg( uLen ); | ||
488 | s.sName.setSize( uLen ); | 498 | s.sName.setSize( uLen ); |
489 | ms.read( s.sName.getStr(), uLen ); | 499 | if( ms.read( s.sName.getStr(), uLen ) < uLen ) |
500 | { | ||
501 | throw Bu::MyriadFsException( | ||
502 | "Failed to read sName from directory."); | ||
503 | } | ||
504 | Bu::println(" - Name = \"%1\"").arg( s.sName ); | ||
490 | lDir.append( s ); | 505 | lDir.append( s ); |
491 | 506 | ||
492 | // sio << " " << s.sName << sio.nl; | 507 | // sio << " " << s.sName << sio.nl; |
@@ -504,6 +519,8 @@ Bu::MyriadStream Bu::MyriadFs::openByInode( int32_t iNode ) | |||
504 | case typeDir: | 519 | case typeDir: |
505 | case typeSymLink: | 520 | case typeSymLink: |
506 | case typeRegFile: | 521 | case typeRegFile: |
522 | Bu::println("Opening stream by iNode=%1, myriad stream=%2") | ||
523 | .arg( iNode ).arg( rs.uStreamIndex ); | ||
507 | return mStore.openStream( rs.uStreamIndex ); | 524 | return mStore.openStream( rs.uStreamIndex ); |
508 | 525 | ||
509 | default: | 526 | default: |