changeset 31:38ca0355d32c

backup 2021-01-24
author autobackup
date Sun, 24 Jan 2021 00:10:03 +0900
parents 34152cba1865
children 966737d7c80a
files user/anatofuz/note/2021/01/23.md
diffstat 1 files changed, 135 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/user/anatofuz/note/2021/01/23.md	Sun Jan 24 00:10:03 2021 +0900
@@ -0,0 +1,135 @@
+```shell
+(gdb) p phils0
+$1 = (Phils *) 0x7fff2f7f1d60
+(gdb) p phils0->phils
+$2 = (union Data *) 0x7fff2f7f1db0
+(gdb) p (struct PhilsImpl*)phils0->phils
+$3 = (struct PhilsImpl *) 0x7fff2f7f1db0
+(gdb) p *(struct PhilsImpl*)phils0->phils
+$4 = {self = 0, Leftfork = 0x7fff2f7f1b50, Rightfork = 0x7fff2f7f1acc, next = C_checkAndSetAtomicReference}
+```
+
+
+```c
+(gdb) p phils0
+$1 = (Phils *) 0x7fff2f7f1d60
+(gdb) p phils0->phils
+$2 = (union Data *) 0x7fff2f7f1db0
+(gdb) p (struct PhilsImpl*)phils0->phils
+$3 = (struct PhilsImpl *) 0x7fff2f7f1db0
+(gdb) p *(struct PhilsImpl*)phils0->phils
+$4 = {self = 0, Leftfork = 0x7fff2f7f1b50, Rightfork = 0x7fff2f7f1acc, next = C_checkAndSetAtomicReference}
+(gdb) n
+60          Phils* phils4 = createPhilsImpl(context,4,fork4,fork0); // model checking : phils4
+(gdb) n
+63                          context->task = NEW(struct Context);
+(gdb) n
+64                          initContext(context->task);
+(gdb) n
+65                          context->task->next = phils0->thinking;
+(gdb) n
+66                          context->task->idgCount = 0;
+(gdb) n
+67                          context->task->idg = context->task->dataNum;
+(gdb) n
+68                          context->task->maxIdg = context->task->idg + 0;
+(gdb) n
+69                          context->task->odg = context->task->maxIdg;
+(gdb) n
+70                          context->task->maxOdg = context->task->odg + 0;
+(gdb) n
+71          GET_META(phils0)->wait = createSynchronizedQueue(context);
+(gdb) n
+72          GeareTaskData(context, Phils) = (union Data*)phils0;
+(gdb) n
+73          Gearef(context->task, Phils)->phils = (union Data*) phils0;
+(gdb) n
+74          Gearef(context->task, Phils)->next = C_exit_code;
+(gdb) n
+75                          element = &ALLOCATE(context, Element)->Element;
+(gdb) n
+76                          element->data = (union Data*)context->task;
+(gdb) n
+77                          element->next = context->taskList;
+(gdb) p context->task[Phils]
+A syntax error in expression, near `]'.
+(gdb) p context->task[D_Phils]
+$5 = {next = C_checkAndSetAtomicReference, worker = 0x0, taskManager = 0x0, codeNum = 0, code = 0x0, data = 0x0, metaDataStart = 0x0, metaData = 0x0, heapStart = 0x0,
+  heap = 0x0, heapLimit = 0, dataNum = 0, idgCount = 0, idg = 0, maxIdg = 0, odg = 0, maxOdg = 0, gpu = 0, task = 0x0, taskList = 0x0, iterate = 0, iterator = 0x0}
+(gdb) p context->task->data[D_Phils]
+$6 = (union Data *) 0x7fff2f7f1d60
+(gdb) p context->task->data[D_Phils]->phils
+There is no member named phils.
+(gdb) p context->task->data[D_Phils]
+$7 = (union Data *) 0x7fff2f7f1d60
+(gdb) p (struct Phils*)context->task->data[D_Phils]
+$8 = (struct Phils *) 0x7fff2f7f1d60
+(gdb) p *(struct Phils*)context->task->data[D_Phils]
+$9 = {phils = 0x7fff2f7f1d60, putdown_lfork = C_putdown_lforkPhilsImpl, putdown_rfork = C_putdown_rforkPhilsImpl, thinking = C_thinkingPhilsImpl,
+  pickup_rfork = C_pickup_rforkPhilsImpl, pickup_lfork = C_pickup_lforkPhilsImpl, eating = C_eatingPhilsImpl, next = C_exit_code}
+(gdb) p *(struct Phils*)context->task->data[D_Phils]->phils
+There is no member named phils.
+(gdb) p (struct Phils*)context->task->data[D_Phils]->phils
+There is no member named phils.
+(gdb) p ((struct Phils*)context->task->data[D_Phils])->phils
+$10 = (union Data *) 0x7fff2f7f1d60
+(gdb) p *(struct PhilsImpl*)((struct Phils*)context->task->data[D_Phils])->phils
+$11 = {self = 796859744, Leftfork = 0x1f0000001e, Rightfork = 0x1900000036, next = C_pickup_lforkPhilsImpl}
+(gdb) p phils0->phils
+$12 = (union Data *) 0x7fff2f7f1d60
+(gdb) p *(struct PhilsImpl*) phils0->phils
+$13 = {self = 796859744, Leftfork = 0x1f0000001e, Rightfork = 0x1900000036, next = C_pickup_lforkPhilsImpl}
+(gdb) p *(struct PhilsImpl*)phils0->phils
+$14 = {self = 796859744, Leftfork = 0x1f0000001e, Rightfork = 0x1900000036, next = C_pickup_lforkPhilsImpl}
+```
+
+
+```
+  DB<30> p $line
+"    AtomicT<int>* fork0 = createAtomicTImpl(contex,-1); // model checking : fork0
+"
+"    AtomicT<int>* fork0 = createAtomicTImpl(contex,-1); // model checking : fork0
+"
+
+  DB<31> p $type
+"AtomicT"
+"AtomicT"
+
+  DB<32> n
+main::convertGenerics(generate_context.pl:566):
+566:              if ($repimpl) {
+  DB<32> p $line
+"    AtomicT_int* fork0 = createAtomicT_intImpl(contex,-1); // model checking : fork0
+"
+"    AtomicT_int* fork0 = createAtomicT_intImpl(contex,-1); // model checking : fork0
+"
+
+  DB<33> p $repimpl
+1
+1
+
+  DB<34> n
+main::convertGenerics(generate_context.pl:567):
+567:                $line =~ s/$impl(<.*>)?/$replaceImpls/g;
+  DB<34> p $impl
+"AtomicTImpl"
+"AtomicTImpl"
+
+  DB<35>
+```
+
+```perl
++kajika+anatofuz$ perl generate_stub.pl SingleLinkedQueue.cbc
+\ {
+    queue               {
+        clear     "C_clearSingleLinkedQueue",
+        isEmpty   "C_isEmptySingleLinkedQueue",
+        put       "C_putSingleLinkedQueue",
+        take      "C_takeSingleLinkedQueue"
+    },
+    singleLinkedQueue   {
+        last   "singleLinkedQueue",
+        top    "new"
+    }
+}
+```