Size: a a a

2020 June 22

SP

Sergey Prokhorov in ErlangRus
Andrey
это без экранирования
а.. наверное да
источник

A

Andrey in ErlangRus
а если строка содрежит двойную кавчку
источник

A

Andrey in ErlangRus
вот окончательный вариант
"[^"\\]*(\\.[^"\\]*)*"
чтобы и пустые строки матчить
источник

SP

Sergey Prokhorov in ErlangRus
не пойму как это работает
источник

A

Andrey in ErlangRus
источник

A

Andrey in ErlangRus
лучше чем секция explanation там наверное сложно объяснить
источник

E

Elmir in ErlangRus
а может ли виртуалка эрланг просто напросто выпилить процесс с себя, нигде не складывая при этом лог? или как то захибернейтить?
источник

SP

Sergey Prokhorov in ErlangRus
Elmir
а может ли виртуалка эрланг просто напросто выпилить процесс с себя, нигде не складывая при этом лог? или как то захибернейтить?
если там exception случился или если процесс прилинкован к другому (в том числе к супервизору), который крешнулся. Но вот просто без причины - не думаю.
источник

SP

Sergey Prokhorov in ErlangRus
а ну или если кто-то другой ему сделал exit(Pid, Reason)
источник

E

Elmir in ErlangRus
но где то в логах след же таки доллжен остаться?
источник

SP

Sergey Prokhorov in ErlangRus
можно ещё процессу выставить max_heap_size при старте и заставить его превысить это ограничение
источник

SP

Sergey Prokhorov in ErlangRus
Elmir
но где то в логах след же таки доллжен остаться?
вот кстати никогда не было времени как следует в этом разобраться. Буду благрдарен если кто-то объяснит как вообще логгирование смерти процессов работает. Когда он под супервизором - понятно. А если просто standalone ни к кому не прилинкованный?
источник

ML

Maksim Lapshin in ErlangRus
Sergey Prokhorov
вот кстати никогда не было времени как следует в этом разобраться. Буду благрдарен если кто-то объяснит как вообще логгирование смерти процессов работает. Когда он под супервизором - понятно. А если просто standalone ни к кому не прилинкованный?
ну это, как бы вообще не стоит так делать =)
источник

ИИ

Иванов Иванов... in ErlangRus
Sergey Prokhorov
вот кстати никогда не было времени как следует в этом разобраться. Буду благрдарен если кто-то объяснит как вообще логгирование смерти процессов работает. Когда он под супервизором - понятно. А если просто standalone ни к кому не прилинкованный?
там же крешдамп будет по идее?
источник

ИИ

Иванов Иванов... in ErlangRus
Sergey Prokhorov
а ну или если кто-то другой ему сделал exit(Pid, Reason)
если он не линкованый и не мониторный - откуда там логи?
источник

ИИ

Иванов Иванов... in ErlangRus
логи - часть бибилиотеки же
источник

VS

Vladimir Sekisov in ErlangRus
Sergey Prokhorov
вот кстати никогда не было времени как следует в этом разобраться. Буду благрдарен если кто-то объяснит как вообще логгирование смерти процессов работает. Когда он под супервизором - понятно. А если просто standalone ни к кому не прилинкованный?
если через proc_lib, то там никакой магии,
сверху садится функция с try и логирует окончание
вызываемой функции
источник

SP

Sergey Prokhorov in ErlangRus
я помню в рассылке много лет назад был тред про то что beam регерирует сообщение в error_logger причём в виде строки с термами типа прям "{error, badarg, <0.123.4>}" в таком стиле, не помню вообще деталей, и там ругались что это как-то мутно и непонятно как обрабатывать
источник

ML

Maksim Lapshin in ErlangRus
Sergey Prokhorov
я помню в рассылке много лет назад был тред про то что beam регерирует сообщение в error_logger причём в виде строки с термами типа прям "{error, badarg, <0.123.4>}" в таком стиле, не помню вообще деталей, и там ругались что это как-то мутно и непонятно как обрабатывать
есть такое место. В whereis(error_logger) шлется сообщением самим бимом
источник

SP

Sergey Prokhorov in ErlangRus
17> whereis(error_logger).
undefined
18> spawn(fun() -> throw(crash) end).
<0.248.0>
19> =ERROR REPORT==== 22-Jun-2020::10:36:32.094950 ===
Error in process <0.248.0> with exit value:
{{nocatch,crash},[{shell,apply_fun,3,[{file,"shell.erl"},{line,904}]}]}


19> spawn(fun() -> error(crash) end).
<0.250.0>=ERROR REPORT==== 22-Jun-2020::10:36:45.044617 ===
Error in process <0.250.0> with exit value:
{crash,[{shell,apply_fun,3,[{file,"shell.erl"},{line,904}]}]}


20> spawn(fun() -> exit(crash) end).
<0.252.0>

ну вот стартую процесс ни к чему не прилинкованный. С throw, error откуда-то прилетает лог, с exit нет. error_logger не зарегистрирован. Хз, надо разбираться.
источник