Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
don't use char* for pointers that shall be serialized with >>
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Fri, 11 Feb 2022 10:16:29 +0000 (11:16 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Fri, 11 Feb 2022 11:28:18 +0000 (12:28 +0100)
src/kernel/actor/SimcallObserver.cpp
src/mc/Transition.cpp
src/mc/Transition.hpp

index b977abc..f7f77f4 100644 (file)
@@ -348,6 +348,7 @@ void CommIsendSimcall::serialize(Simcall& type, char* buffer)
   std::stringstream stream;
   stream << mbox_->get_id() << ' ' << (void*)src_buff_ << ' ' << src_buff_size_;
   strcpy(buffer, stream.str().c_str());
+  XBT_DEBUG("SendObserver mbox:%u buff:%p size:%zu", mbox_->get_id(), src_buff_, src_buff_size_);
 }
 
 void CommIrecvSimcall::serialize(Simcall& type, char* buffer)
index a0c37f2..b08eb18 100644 (file)
@@ -50,6 +50,8 @@ CommWaitTransition::CommWaitTransition(aid_t issuer, int times_considered, char*
 {
   std::stringstream stream(buffer);
   stream >> timeout_ >> comm_ >> sender_ >> receiver_ >> mbox_ >> src_buff_ >> dst_buff_ >> size_;
+  XBT_DEBUG("CommWaitTransition tout:%f comm:%p, sender:%ld receiver:%ld mbox:%u sbuff:%p rbuff:%p size:%zu", timeout_,
+            comm_, sender_, receiver_, mbox_, src_buff_, dst_buff_, size_);
 }
 std::string CommWaitTransition::to_string(bool verbose)
 {
@@ -143,6 +145,7 @@ CommSendTransition::CommSendTransition(aid_t issuer, int times_considered, char*
 {
   std::stringstream stream(buffer);
   stream >> mbox_ >> src_buff_ >> size_;
+  XBT_DEBUG("SendTransition mbox:%u buff:%p size:%zu", mbox_, src_buff_, size_);
 }
 std::string CommSendTransition::to_string(bool verbose = false)
 {
index 88e7747..8bf38a9 100644 (file)
@@ -70,12 +70,12 @@ class CommRecvTransition;
 
 class CommWaitTransition : public Transition {
   double timeout_;
-  uintptr_t comm_;
+  void* comm_;
   aid_t sender_;
   aid_t receiver_;
   unsigned mbox_;
-  unsigned char* src_buff_;
-  unsigned char* dst_buff_;
+  void* src_buff_;
+  void* dst_buff_;
   size_t size_;
   friend CommSendTransition;
   friend CommRecvTransition;