lua-debug icon indicating copy to clipboard operation
lua-debug copied to clipboard

add plugin system

Open fesily opened this issue 2 years ago • 8 comments

延迟绑定launcher,为了之后可以把frida模块改成动态库,让luadebug中可以使用,而不必使用两份frida代码在一个进程内

fesily avatar Mar 25 '23 05:03 fesily

luadebug使用frida的意义是?

actboy168 avatar Mar 25 '23 05:03 actboy168

luadebug使用frida的意义是?

之前说的,cfuntion的信息查询不再使用外部程序,改成frida来提供具体信息.

而且我这个还有一个luajit的jit功能的支持,需要frida来支持

fesily avatar Mar 25 '23 05:03 fesily

由于调试器的特性,很多人使用调试器的方式是将luadebug编译到调试目标中。所以我不希望luadebug引入太多额外的代码。

首先引入动态库就不可行,其次frida的代码太多,整个加到luadebug不可以,如果真的需要某些功能,可以将特定部分的代码编译到luadebug里。

actboy168 avatar Mar 25 '23 09:03 actboy168

然后查看cfunction信息的功能,其实我现在觉得它挺鸡肋的。首先当调试release模式的程序的时候,它可能会展示错误的信息。然后展示的信息量太多,函数名和文件名都有可能很长,长到vscode显示不完。

至少对我个人而言,我现在想有个不看这个cfuntion信息的选项。

actboy168 avatar Mar 25 '23 09:03 actboy168

由于调试器的特性,很多人使用调试器的方式是将luadebug编译到调试目标中。所以我不希望luadebug引入太多额外的代码。

首先引入动态库就不可行,其次frida的代码太多,整个加到luadebug不可以,如果真的需要某些功能,可以将特定部分的代码编译到luadebug里。

如果是这样的目标,我期望可以添加一个简单的插件功能,从而解耦这些次要功能

fesily avatar Mar 25 '23 10:03 fesily

然后查看cfunction信息的功能,其实我现在觉得它挺鸡肋的。首先当调试release模式的程序的时候,它可能会展示错误的信息。然后展示的信息量太多,函数名和文件名都有可能很长,长到vscode显示不完。

至少对我个人而言,我现在想有个不看这个cfuntion信息的选项。

这个可以依赖vscode自身提供的延迟加载变量功能,我改天加一个

fesily avatar Mar 25 '23 10:03 fesily

然后查看cfunction信息的功能,其实我现在觉得它挺鸡肋的。首先当调试release模式的程序的时候,它可能会展示错误的信息。然后展示的信息量太多,函数名和文件名都有可能很长,长到vscode显示不完。 至少对我个人而言,我现在想有个不看这个cfuntion信息的选项。

这个可以依赖vscode自身提供的延迟加载变量功能,我改天加一个

这个也解决不了太长无法显示的问题,可能把函数信息移到子项里更好,就像upvalue那样。

actboy168 avatar Mar 25 '23 10:03 actboy168

由于调试器的特性,很多人使用调试器的方式是将luadebug编译到调试目标中。所以我不希望luadebug引入太多额外的代码。 首先引入动态库就不可行,其次frida的代码太多,整个加到luadebug不可以,如果真的需要某些功能,可以将特定部分的代码编译到luadebug里。

如果是这样的目标,我期望可以添加一个简单的插件功能,从而解耦这些次要功能

就你说的两个功能,解析函数符号信息,把代码直接编译到luadebug,我觉得是可以的。而luajit需要的特性,我不知道是什么。luadebug现在的整体思路是不hook调试目标,需要hook的地方都是直接修改调试目标的代码来做到的,这和luadebug会和调试目标打包一起编译的思路是契合的。也许用hook的方式也能做类似的事情,但是这就是另一个lua调试器了。

actboy168 avatar Mar 25 '23 11:03 actboy168