Qt - 汇编代码列表视图

Qt - assembly code listview

本文关键字:列表 视图 代码 汇编 Qt      更新时间:2023-10-16

我需要在Qt中为一些asm代码创建一个列表视图。

问题是:

  • asm 文件很大,我无法将其加载到 QPlainTextEdit 小部件或类似小部件中,因为这会挂起应用程序并且滚动到非常慢
  • 滚动条应该允许向前导航(
  • 这应该很简单),但也允许向后导航(我如何反汇编以前的指令?我不知道他们有多少字节!
  • 即使我确定该地址对应于一条指令(并且不落在一个指令的中间),"goto 地址"功能也很难做到,问题与上一点相同:我不知道它之前的指令的字节数,所以我不能向后反汇编几行

有人可以帮助我吗?

不要将

整个文件加载到小部件/控件中。仅加载足以显示的行(例如 50 行或任何适合屏幕的内容),并缓存其余部分或在需要时使用文件映射快速访问其他行。

至于向后拆卸,您可以尝试在远离当前位置的某个点开始拆卸,例如在当前地址 - 256 字节处。如果要反汇编代码,反汇编可能会在这 256 个字节内同步。如果代码中嵌入了数据,那么,除了尝试返回不同数量的字节或文件开头之外,这就是您可以做的最好的事情。