View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003511 | Wishes.Plugins | LuaMacro / Macro Browser | public | 2017-10-01 00:37 | 2020-05-23 14:14 |
Reporter | JohnDoe | Assigned To | shmuel | ||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | assigned | Resolution | open | ||
Platform | x86 | OS | Windows | OS Version | XP SP3 |
Product Version | 3.0 | ||||
Summary | 0003511: attempt to yield across C-call boundary: указывать источник | ||||
Description | В настоящий момент ошибка отображается так:
Т.е. указывает на место определения функции. Вместо этого хотелось бы видеть место вызова в пользовательском скрипте. | ||||
Tags | No tags attached. | ||||
|
Желательно привести пример для воспроизведения. |
|
|
|
LuaMacro b749. |
|
Изначально тикет создавался в надежде, что это будет реализовано несколько по-другому. Ведь верхняя часть трейсбэка, ссылающаяся ев внутренности луамакро, несущестенна для исправления ошибки, а неопытного пользователя просто сбивает с толку. Т.е. в идеале сообщение должно сразу указывать на ошибочное место в пользовательском коде. Реализовано может быть примерно так:
Но если подобного не планируется, тогда можно закрывать |
|
1. Насчёт неопытных пользователей: если сами пишут макросы - разберутся, если используют чужие, то подобная ошибка маловероятна. В крайнем случае спросят в форуме. 2. В вашем примере после "==" сразу следует "then", поэтому проверить его не смог. 3. В utils.lua на строке 682 есть debug.traceback(msg,2) Если заменить 2 на 3, то строка пользовательского скрипта поднимется на уровень выше в сообщении. Но тогда из сообщения исчезнет строка о том, что ошибка произошла в функции print. На мой взгляд, это важно, поскольку строка пользовательского скрипта может быть очень длинная, и в этом случае причина ошибки будет неочевидной. |
|
> 2. В вашем примере после "==" сразу следует "then", поэтому проверить его не смог. Пример только для иллюстрации принципа. Как минимум там ещё и module_path не определён. > Но тогда из сообщения исчезнет строка о том, что ошибка произошла в функции print. Согласен что это важно. Изменил пример так чтобы имя функции попадало в сообщение. Могу довести до рабочего состояния и отладить если это актуально. |
|
@JohnDoe, вижу, что код исправлен, пробовать уже не буду, так как идея понятна. Мне бы не хотелось добавлять такие куски кода для дополнительной обработки ошибок. Согласитесь, что как оно есть сейчас, пусть не идеально, но вся необходимая информация в сообщении присутствует. |
|
Спорить не буду, проблемы особой нет, особенно для опытного пользователя. Тем более есть 2387 и 2416. > 3. В utils.lua на строке 682 есть debug.traceback(msg,2) А в luamacro.lua:224 (FixReturn) стек выводится с первого уровня. Полагаю, что всё-таки должно быть консистентно. |
|
Там всё получается нормально без лишних телодвижений, а в случае, который мы рассматриваем, не получается. Для достижения консистентности нужно усложнение кода. Для меня это минус, перевешивающий консистентность в данном вопросе. |
|
> Для достижения консистентности нужно усложнение кода. Если ни в каком из 2х случаев не обрезать трейсбэк, то будет консистентно. |
|
Затрудняюсь понять к чему вы стремитесь. Консистентность внутренняя, в коде, мало кого интересует. Если не обрезать трейсбэк, строка пользовательского кода опустится в сообщении ещё больше, а вы ведь хотели её поднимать... ОК, дискуссию на этом пока прекращаю. Если вы согласны на закрытие тикета - закрою, иначе пусть висит. |
|
Затрудняюсь понять к чему вы стремитесь.Внутренняя меня тоже не слишком интересует. Под неконсистентостью я имею ввиду, что сообщения об ошибках имеют разный вид, в зависимости от места возникновения (в ExitFAR отличается от прочих мест) Если не обрезать трейсбэк, строка пользовательского кода опустится в сообщении ещё больше,Если обрезать - то одинаково. Пример.
В обоих случаях логично видеть однотипные сообщения. |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-10-01 00:37 | JohnDoe | New Issue | |
2020-05-20 19:17 | shmuel | Note Added: 0016846 | |
2020-05-21 07:30 | JohnDoe | Note Added: 0016848 | |
2020-05-21 13:31 | shmuel | Assigned To | => shmuel |
2020-05-21 13:31 | shmuel | Status | new => feedback |
2020-05-21 13:31 | shmuel | Note Added: 0016849 | |
2020-05-23 09:53 | JohnDoe | Note Added: 0016850 | |
2020-05-23 09:53 | JohnDoe | Status | feedback => assigned |
2020-05-23 09:54 | JohnDoe | Note Edited: 0016850 | |
2020-05-23 10:12 | JohnDoe | Note Edited: 0016850 | |
2020-05-23 10:13 | JohnDoe | Note Edited: 0016850 | |
2020-05-23 10:22 | shmuel | Note Added: 0016851 | |
2020-05-23 10:56 | JohnDoe | Note Edited: 0016850 | |
2020-05-23 10:59 | JohnDoe | Note Added: 0016852 | |
2020-05-23 10:59 | JohnDoe | Note Edited: 0016850 | |
2020-05-23 11:05 | shmuel | Note Added: 0016853 | |
2020-05-23 11:30 | JohnDoe | Note Added: 0016854 | |
2020-05-23 11:52 | shmuel | Note Added: 0016855 | |
2020-05-23 12:14 | JohnDoe | Note Added: 0016856 | |
2020-05-23 12:21 | shmuel | Note Added: 0016857 | |
2020-05-23 14:13 | JohnDoe | Note Added: 0016858 | |
2020-05-23 14:14 | JohnDoe | Note Edited: 0016858 |