Проблема сборки PAPyRUS под OpenBSD 6.2
-
Согласен. Вот думаю, и выдает bogus pointer при поптыке очистить двойной указатель. Надо почитать, как оный очистить грамотно.olegus:Странно как-то выглядит.
Я вот думаю, а работало ли это вообще когда-нибудь? Хотя должно же, ведь есть же http://www.ibiblio.org/pub/Linux/apps/wp/papyrus/papyrus-1.1.1.bin.ELF.tar.gz и фотка работы оного. Можно было бы на qemu поставить какой-нибудь redhat того времени, чтобы с motif был и потестить, как считаете? -
Да,можно. Только систему то найдешь, а вот пакеты к ней или хотя бы windowmaker или CDE того времени. В инете нашел Slackware 1994 ; Redhat 1996-2000; FreeBSD 1993,1994,1999 ,2000,2001; Debian 1993,1995,2000. Так что выбор большой, но не мой не ваш ноутбук просто не поддерживает виртуализацию.
-
Мда, пытался на bochs поставить Sun Solaris - ни черта не вышло, тупит так, будто я не pentium в параметрах указал, а 386-й. Короче, придется либо хард мне искать свободный, и туда заливать старый RedHat с CDE, либо Solaris с CDE, но делать это ради одной программы - такое себе, либо все-таки допиливать напильником, надеясь, что других проблем не всплывет. Ага, сейчас.
-
Сейчас ищу, как очистить вот эту шляпу: char **argsPtr.
Буду благодарен за совет. -
Написал костыль. Не знаю, насколько верный.
while(i<numArgs){ char *arg; /*vremennaja ukaz na odnom massiv*/ arg = &*argsPtr[i]; /*peredajom adres na odmon massiv*/ arg[0]='\0'; /*stavim nulevoj symbol v nachalo*/ i++; /*pribal'aem peremennuju*/ }; printf("....>GetFont..0.14\n");
Теперь валиться с Segmentation fault (core dumped) после добавления последнего стиля. Лог программы:Script started on Sat Oct 14 21:22:04 2023 $ ./bin/papyrus Init:0.1 Init:0.2 Init:0.3 Init:0.4 Init:0.5 Init:0.6 Init:0.7 Init:0.8 ..Init:0.1 ..Init:0.2 ..Init:0.3 ..Init:0.4 ..Init:0.5 ..Init:0.6 ..Init:0.7 ..Init:0.8 ..Init:0.9 ..Init:0.10 ..Init:0.11 Init:0.9 Init:0.10 Init:0.11 Init:1.1 Init:1.2 Init:1.3 Init:1.4 Init:1.5 Init:1.6 Init:1.7 Init:1.8 Init:1.9 Init:1.10 Init:1.11 Init:1.12 TInit:0.1 TInit:0.2 TInit:0.3 TInit:0.4 TInit:0.5 TInit:0.6 TInit:0.7 TInit:0.8 TInit:0.9 TInit:0.10 TInit:0.11 TInit:0.12 TInit:0.13 ..TCLInit..0.0 ..TCLInit..0.1 ..TCLInit..0.2 ..TCLInit..0.3 ..TCLInit..0.4 ....[0]={??}; ....[1]={??}; ....[2]={??}; ....[3]={??}; ....[4]={??}; ....[5]={??}; ....[6]={??}; ....[7]={??}; ....[8]={??}; ....[9]={??}; ....[10]={??}; ....[11]={??}; ....[12]={??}; ....[13]={??}; ....[14]={??}; ....[15]={??}; ....[16]={??}; ....[17]={??}; ....[18]={??}; ....[19]={??}; ....[20]={??}; ....[21]={??}; ....[22]={??}; ....[23]={??}; ....[24]={??}; ....[25]={??}; ....[26]={??}; ....[27]={??}; ....[28]={??}; ....[29]={??}; ....[30]={??}; ....[31]={??}; ....[32]={??}; ....[33]={??}; ....[34]={??}; ....[35]={??}; ....[36]={??}; ....[37]={??}; ..TCLInit..0.5 ..TCLInit..0.6 ..TCLInit..0.6..{/home/Sataja/Downloads/Papyrus1.1.1/lib/scripts/papyrus-init.tcl};..TCLInit..0.7 TCL_INIT_0.0 TCL_INIT_0.1 TCL:Load_Style_Menus..0.0 TCL:Load_Fonts..0.1 TCL:Load_Font..0.2 TCL:Load_Font..0.3 TCL:Load_Font..0.4 TCL:Load_Font..0.5 TCL:Load_Font..Done TCL_INIT_0.2 TCL:Load_Default_Styles..0.1 TCL:Load_Default_Styles..0.2 TCL:Load_Default_Styles..0.3 TCL:Load_Default_Styles..0.4 TCL:Load_Default_Styles..0.5 TCL:Load_Default_Styles..0.6 ....>AddStyle..started ....>AddStyle..variables..init..done ....>AddStyle..variables..load.done ....>AddStyle..for..cycle..starting ....>AddStyle..for[1]={ ....>AddStyle..for[3]={ ........f-font ....>AddStyle..for[5]={ ........a-align ....>AddStyle..for[7]={ ........m-margins ....>AddStyle..for[9]={ ....>AddStyle..for..cycle..done ....>AddStyle..0.0 ....>AddStyle..0.6 ....>AddStyle..0.7 ....>AddStyle..0.7 ....>AddStyle..0.8 ....>GetFont..0.1 ....>GetFont..0.2 ....>GetFont..0.3 ....>GetFont..0.6 ....>GetFont..0.7 ....>GetFont..0.8 ....>GetFont..0.9 ....>GetFont..0.13 ....>GetFont..0.14 ....>AddStyle..0.9 ....>AddStyle..0.10 ....>AddStyle..0.11 ....>AddStyle..0.13 ....>AddStyle..0.14 ....>AddStyle..0.15 ....>AddStyle..0.16 ....>AddStyle..0.17 ....>AddStyle..0.18 ....>AddStyle..0.19 ....>AddStyle..0.20 TCL:Load_Default_Styles..Add_Style..0.0 ....>AddStyle..started ....>AddStyle..variables..init..done ....>AddStyle..variables..load.done ....>AddStyle..for..cycle..starting ....>AddStyle..for[1]={ ....>AddStyle..for[3]={ ........f-font ....>AddStyle..for[5]={ ........a-align ....>AddStyle..for[7]={ ........m-margins ....>AddStyle..for..cycle..done ....>AddStyle..0.0 ....>AddStyle..0.6 ....>AddStyle..0.7 ....>AddStyle..0.7 ....>AddStyle..0.8 ....>GetFont..0.1 ....>GetFont..0.2 ....>GetFont..0.3 ....>GetFont..0.6 ....>GetFont..0.7 ....>GetFont..0.8 ....>GetFont..0.9 ....>GetFont..0.13 ....>GetFont..0.14 ....>AddStyle..0.9 ....>AddStyle..0.10 ....>AddStyle..0.11 ....>AddStyle..0.13 ....>AddStyle..0.14 ....>AddStyle..0.15 ....>AddStyle..0.16 ....>AddStyle..0.17 ....>AddStyle..0.18 ....>AddStyle..0.19 ....>AddStyle..0.20 TCL:Load_Default_Styles..Add_Style..0.1 ....>AddStyle..started ....>AddStyle..variables..init..done ....>AddStyle..variables..load.done ....>AddStyle..for..cycle..starting ....>AddStyle..for[1]={ ....>AddStyle..for[3]={ ........f-font ....>AddStyle..for[5]={ ....>AddStyle..for..cycle..done ....>AddStyle..0.0 ....>AddStyle..0.1 ....>AddStyle..0.2 ....>AddStyle..0.5 ....>AddStyle..0.6 ....>AddStyle..0.7 ....>AddStyle..0.7 ....>AddStyle..0.8 ....>GetFont..0.1 ....>GetFont..0.2 ....>GetFont..0.3 ....>GetFont..0.6 ....>GetFont..0.7 ....>GetFont..0.8 ....>GetFont..0.9 ....>GetFont..0.13 ....>GetFont..0.14 ....>AddStyle..0.9 ....>AddStyle..0.10 ....>AddStyle..0.11 ....>AddStyle..0.13 ....>AddStyle..0.14 ....>AddStyle..0.15 ....>AddStyle..0.16 ....>AddStyle..0.17 ....>AddStyle..0.18 ....>AddStyle..0.19 ....>AddStyle..0.20 TCL:Load_Default_Styles..Add_Style..0.2 ....>AddStyle..started ....>AddStyle..variables..init..done ....>AddStyle..variables..load.done ....>AddStyle..for..cycle..starting ....>AddStyle..for[1]={ ....>AddStyle..for[3]={ ........f-font ....>AddStyle..for[5]={ ....>AddStyle..for..cycle..done ....>AddStyle..0.0 ....>AddStyle..0.1 ....>AddStyle..0.2 ....>AddStyle..0.5 ....>AddStyle..0.6 ....>AddStyle..0.7 ....>AddStyle..0.7 ....>AddStyle..0.8 ....>GetFont..0.1 ....>GetFont..0.2 ....>GetFont..0.3 ....>GetFont..0.6 ....>GetFont..0.7 ....>GetFont..0.8 ....>GetFont..0.9 ....>GetFont..0.13 ....>GetFont..0.14 ....>AddStyle..0.9 ....>AddStyle..0.10 ....>AddStyle..0.11 ....>AddStyle..0.13 ....>AddStyle..0.14 ....>AddStyle..0.15 ....>AddStyle..0.16 ....>AddStyle..0.17 ....>AddStyle..0.18 ....>AddStyle..0.19 ....>AddStyle..0.20 TCL:Load_Default_Styles..Add_Style..0.3 ....>AddStyle..started ....>AddStyle..variables..init..done ....>AddStyle..variables..load.done ....>AddStyle..for..cycle..starting ....>AddStyle..for[1]={ ....>AddStyle..for[3]={ ........f-font ....>AddStyle..for[5]={ ....>AddStyle..for[7]={ ....>AddStyle..for[9]={ ....>AddStyle..for..cycle..done ....>AddStyle..0.0 ....>AddStyle..0.1 ....>AddStyle..0.2 ....>AddStyle..0.5 ....>AddStyle..0.6 ....>AddStyle..0.7 ....>AddStyle..0.7 ....>AddStyle..0.8 ....>GetFont..0.1 ....>GetFont..0.2 ....>GetFont..0.3 ....>GetFont..0.6 ....>GetFont..0.7 ....>GetFont..0.8 ....>GetFont..0.9 ....>GetFont..0.13 ....>GetFont..0.14 ....>AddStyle..0.9 ....>AddStyle..0.10 ....>AddStyle..0.11 ....>AddStyle..0.13 ....>AddStyle..0.14 ....>AddStyle..0.15 ....>AddStyle..0.16 ....>AddStyle..0.17 ....>AddStyle..0.18 ....>AddStyle..0.19 ....>AddStyle..0.20 TCL:Load_Default_Styles..Add_Style..0.4 ....>AddStyle..started ....>AddStyle..variables..init..done ....>AddStyle..variables..load.done ....>AddStyle..for..cycle..starting ....>AddStyle..for[1]={ ....>AddStyle..for[3]={ ....>AddStyle..for[5]={ ........m-margins ....>AddStyle..for[7]={ ....>AddStyle..for[9]={ ....>AddStyle..for[11]={ ....>AddStyle..for..cycle..done ....>AddStyle..0.0 ....>AddStyle..0.1 ....>AddStyle..0.2 ....>AddStyle..0.5 ....>AddStyle..0.6 ....>AddStyle..0.7 ....>AddStyle..0.7 ....>AddStyle..0.8 ....>AddStyle..0.9 ....>AddStyle..0.10 ....>AddStyle..0.11 ....>AddStyle..0.12 Segmentation fault (core dumped) $ exit Script done on Sat Oct 14 21:22:08 2023
Столь жутко он выглядит, так как все "....>BLA_BLA" уже я дописал, чтобы понимать, где ошибка. -
Другой вариант очистки также не помогает:
while(i<numArgs){ argsPtr[i][0]='\0'; i++; };
Ровно, как и цикл for.
Из чего я делаю вывод, что либо я очень криворук, либо ошибка где-то еще. Хотя, криворуковсть никуда не девается. -
Методом тыка выяснил, что проблема вот здесь:
if( tag != 0 ) { if( Tcl_GetInt(interp, argv[tag], &tag) != TCL_OK ) return TCL_ERROR; si->set_attr(STYLE_TAG, (void *)tag); }
Без этого: " si->set_attr(STYLE_TAG, (void *)tag);" PAPyRUS запускается, но вылетает при попытке создать документ, либо открыть его, ибо вероятно, не прогружает аттрибуты стиля (?). -
Да, это выше моего уровня знаний. Причем на порядок.