Size: a a a

2021 August 09

W

Warstone in Modern::Perl
Так а я и не спорю с этим.
источник

P

Pavel in Modern::Perl
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffda8961000
0x00007fdc803128d7 in Perl_gv_fetchmethod_flags () from /usr/lib/libperl.so.5.14

Program received signal SIGSEGV, Segmentation fault.
0x00007fdc803a368f in Perl_save_pushptr () from /usr/lib/libperl.so.5.14
The program being debugged was signaled while in a function called from GDB.
GDB remains in the frame where the signal was received.
To change this behavior use "set unwindonsignal on".
Evaluation of the expression containing the function
(Perl_eval_pv) will be abandoned.
When the function is done executing, GDB will silently stop
источник

SZ

Sergey Zhmylove in Modern::Perl
Что и требовалось доказать
источник

SZ

Sergey Zhmylove in Modern::Perl
На тредовом перле в гдб часто делают отдельный интерпретатор просто, но в данном случае он отругается на dynamic loading скорее всего
источник

W

Warstone in Modern::Perl
Если вам не нужны треды соберите перл через perlbrew без них. Заодно и чуть быстрее работать будет. Кстати... А что дебажите?..
источник

SZ

Sergey Zhmylove in Modern::Perl
Что скажет p my_perl ?
источник

SZ

Sergey Zhmylove in Modern::Perl
Так-то можно попробовать через perl_alloc и всякий perl_parse, вдруг не отругается, как я предполагаю. Если это не мириперл и my_perl неизвестен.
А если известен, то можно попробовать обойтись малой кровью, сунув его первым аргументом Perl_eval_pv и скорее всего взлетит.
Это всё короче очень зависит от конфигурации. Заставить это работать можно, но в разных случаях -- по-разному
источник

P

Pavel in Modern::Perl
парсер льет из json в БД - вижу что течет он - а где понять не могу пока.
источник

P

Pavel in Modern::Perl
но теперь уже запустил с оберткой в  Devel::MAT
источник

S

Sergey in Modern::Perl
Не будет на тредовом никакого сегфолта - сигнатуры не сойдутся, что заставит задуматься и указать правильный интерпретатор для треда.
источник

SZ

Sergey Zhmylove in Modern::Perl
Ты так не шути, вон выше типичный вывод
источник

S

Sergey in Modern::Perl
Я спецом проверил, получил "Perl_eval_pv has unknown return type; cast the call to its declared return type"
источник

S

Sergey in Modern::Perl
Так что там явно было большее, чем просто выполнить эти команды.
источник

SZ

Sergey Zhmylove in Modern::Perl
«там» было ровно это.
У тебя он собран без дебага, вот поэтому ты и получаешь такую ошибку: дебагер даже не пытается выполнять код, потому что не знает, сколько данных нужно забрать со стека. Если ты явно кастанешь его к указателю на скаляр, то поймаешь уже сегфолт. Как раз потому что не указан интерпретатор
источник

AK

Andrey Karepin in Modern::Perl
почему у тебя греп вызывается как файнд?
источник

S

Sergey in Modern::Perl
Да мне не жалко, собрал с дебагом. Too few arguments in function call. Не надо просто делать действий, смысла которых не понимаешь.
источник

SZ

Sergey Zhmylove in Modern::Perl
Потому что винда
источник

SL

Sergiy Leschenko in Modern::Perl
А чуть быстрее - это сколько и на каких операциях?
У нас до сих пор используется системный Perl и CentOS 7. Ну из-за смерти CentOS планируется апгрейд на что-то другое.
источник

W

Warstone in Modern::Perl
Считайте 10-30% на всех операциях. Вообще всех.
источник

W

Warstone in Modern::Perl
Там даже обращение к SV тормозит, насколько я помню из-за тредов. То есть сраная математика.
источник