170 похожих чатов

Ребят, подскажите пожалуйста, среда goland стартует в дебаг режиме приложение

и при нажатии кнопки "stop", приложение, по всей видимости, получает сигнал SIGKILL и не может адекватно завершиться. Кто-нибудь знает, как поменять поведение IDE, чтобы отправлялся другой сигнал от dlv дебаггера?

17 ответов

23 просмотра

так перехватывай sigkill

Влад-Крыловский Автор вопроса
Ruslan Babin
так перехватывай sigkill

так он не особо-то и перехватывается

Влад Крыловский
так он не особо-то и перехватывается

отлично перехватывается, это не sigterm

Влад Крыловский
так он не особо-то и перехватывается

вообще sigterm должен goland выбрасывать и этот код обрабатывается

Влад-Крыловский Автор вопроса
Ruslan Babin
вообще sigterm должен goland выбрасывать и этот ко...

хз, я сигтерм ловлю и обрабатываю. При запуске аппки не в дебаге все ок, функция срабатывает. А вот в дебаге чёт не особо

Влад-Крыловский Автор вопроса
Ruslan Babin
попробуй еще sigint обрабатывать

signal.Notify(c, os.Interrupt, syscall.SIGINT, syscall.SIGHUP, syscall.SIGTERM, syscall.SIGABRT) как-то так у меня сейчас

Влад-Крыловский Автор вопроса
Влад Крыловский
signal.Notify(c, os.Interrupt, syscall.SIGINT, sys...

хотя напрямуую syscall.SIGINT над убрать, это и есть os.Interrupt

Влад Крыловский
signal.Notify(c, os.Interrupt, syscall.SIGINT, sys...

Чувак) Сорян, я не могу не прокомментировать твою аву: "Возмездие — это акт отмщения, это месть, осуществляемая любыми средствами. В данном конкретном случае это осуществит охуенная сволочь." Привет от ценителя хороших фильмов)

Влад Крыловский
signal.Notify(c, os.Interrupt, syscall.SIGINT, sys...

все перехватывается, я проверил func main() { c, cancel := signal.NotifyContext(context.Background(), syscall.SIGTERM, syscall.SIGINT) defer func() { cancel() }() for { select { case <-c.Done(): println("signal handled") return } } }

Влад Крыловский
а ты с sudo запусти

и че ~ sudo go run ./api/kek.go Password: ^Csignal handled

Влад-Крыловский Автор вопроса
Ruslan Babin
и че ~ sudo go run ./api/kek.go Password: ^Csign...

я же говорю, при запуске в консоли все ок.При запуске через "run" в goland все ок. При запуске в дебагере (dlv) в goland и нажатии на stop (при включенном sudo) не ок

Влад-Крыловский Автор вопроса
Влад-Крыловский Автор вопроса
Влад Крыловский
и я грущу (

https://youtrack.jetbrains.com/issue/GO-8084/Debug-doesnt-stop-gracefully-since-2019.2.2-update вот че нашлось собственно

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта