Я пишу большой проект с использованием C++. В этом проекте некоторые вызовы lua будут вызываться для реализации функций. Теперь я хочу установить точки останова в сценариях lua, но я не знаю, как это сделать. Я бы предпочел что-то вроде «pdb.set_trace()» как для python. Любая идея была бы оценена. Заранее спасибо.Как установить точку останова в сценариях lua
ответ
К сожалению, у Lua нет встроенного отладчика, и многие параметры отладки, доступные вам в автономном режиме Lua, недоступны во встроенном сценарии Lua.
Один из способов решения этой проблемы - отлаживать «скрипт» - просто использовать печать (независимо) и печатать (debug.traceback()) по всему коду, возможно, включен или выключен глобальным DEBUG (возможно, установленный DEBUG #define в коде C++), так что сообщения не будут выбрасываться в производственные исполняемые файлы.
Кроме того, при использовании функции lua_pcall(), если функция имеет ошибку, она вызывает debug.traceback() и помещает результирующую строку в стек. Вы можете получить его с:
lua_pushcfunction(L, c_function_name);
lua_pushnumber(L, 5.3);
if (lua_pcall(L, 1, 0, 0) != 0) lua_error(L);
A Примечание: все это не работает, если вы не откроете библиотеку отладки первых, используя luaopen_debug(L);
где L ваш lua_State*
.
Если вам действительно нужна интерактивная отладка, так как @Colonel Thirty Two сказал, вы должны найти интерактивную библиотеку отладки; Я уверен, что один из них доступен, но это выходит за рамки вопроса StackOverflow.
большое спасибо за ваше четкое объяснение! – gladys0313
- 1. Как установить точку останова
- 2. javascript: firebug, не позволяющий установить точку останова в сценариях certian
- 3. Установить точку останова в Racket?
- 4. Как установить точку останова в Eclipse?
- 5. Как установить точку останова в сценарии JSX
- 6. Как установить точку останова в функции стрелки
- 7. Как установить такую точку останова в ollydbg?
- 8. Как установить точку останова в DLL
- 9. Как установить точку останова в AOSP?
- 10. Как установить точку останова в ConfigureAuth?
- 11. как установить точку останова таким образом?
- 12. Как установить точку останова для UISlider?
- 13. Как установить точку останова с lldb + моно
- 14. Как установить точку останова перед выполнением
- 15. Как установить точку останова на _NSLockError()
- 16. Как установить точку останова на все броски?
- 17. Установить точку останова файла в gdb
- 18. Невозможно установить точку останова в PHPStorm
- 19. Установить точку останова внутри библиотеки в IntelliJ
- 20. Установить произвольную точку останова в отладчике
- 21. Установить точку останова на упаковке в Eclipse
- 22. Невозможно установить точку останова в визуальной студии
- 23. Установить точку останова GDB в файле C
- 24. Можно установить точку останова для EXC_BAD_ACCESS?
- 25. NDK Debugging, не может установить точку останова
- 26. Установить точку останова с помощью подстановочных знаков?
- 27. Невозможно установить точку останова: Затмение Kepler
- 28. gdb: установить точку останова для обработчика SIGBUS
- 29. Не удалось установить точку останова gdb
- 30. Bootstrap - установить точку останова для меню Toggle
У Lua нет встроенного отладчика. Вам нужно будет найти отладчик Lua (не спрашивайте о SO, это вне темы) и научитесь использовать этот конкретный. –
Существует рудиментарный отладчик, вызываемый [debug.debug()] (http://www.lua.org/manual/5.3/manual.html#pdf-debug.debug). –
Лучшим способом было бы использовать Lua IDE, поддерживающую отладку и запись модульных тестов Lua вокруг ваших функций. См./Добавьте тег [информация] (http://stackoverflow.com/tags/lua/info). –