Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add plugin system #244

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Conversation

fesily
Copy link
Contributor

@fesily fesily commented Mar 25, 2023

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

@actboy168
Copy link
Owner

luadebug使用frida的意义是?

@fesily
Copy link
Contributor Author

fesily commented Mar 25, 2023

luadebug使用frida的意义是?

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

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

@actboy168
Copy link
Owner

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

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

@actboy168
Copy link
Owner

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

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

@fesily
Copy link
Contributor Author

fesily commented Mar 25, 2023

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

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

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

@fesily
Copy link
Contributor Author

fesily commented Mar 25, 2023

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

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

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

@actboy168
Copy link
Owner

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

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

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

@actboy168
Copy link
Owner

actboy168 commented Mar 25, 2023

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

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

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

@fesily fesily marked this pull request as draft March 29, 2023 06:10
@fesily fesily changed the title lazy load launcher add plugin system Apr 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants