def find_all(pattern, segment = :all)
      return Nil.instance unless load?

      segments = segment == :all ? %i[elf heap libc ld stack] : Array(segment)
      result = findall_raw(pattern, segments).reject { |(_, _, ary)| ary.empty? }
      target = pattern.is_a?(Integer) ? Helper.hex(pattern) : pattern.inspect
      str = ["Searching #{Helper.color(target)}:\n"]
      str.concat(result.map do |(sym, base, ary)|
        "In #{Helper.color(sym, sev: :bin)} (#{Helper.color(Helper.hex(base))}):\n" +
        ary.map { |v| "  #{Helper.color(sym, sev: :bin)}+#{Helper.color(Helper.hex(v))}\n" }.join
      end)
      $stdout.puts str
    end
def find_all(pattern, segment = :all)
      return Nil.instance unless load?

      segments = segment == :all ? %i[elf heap libc ld stack] : Array(segment)
      result = findall_raw(pattern, segments).reject { |(_, _, ary)| ary.empty? }
      target = pattern.is_a?(Integer) ? Helper.hex(pattern) : pattern.inspect
      str = ["Searching #{Helper.color(target)}:\n"]
      str.concat(result.map do |(sym, base, ary)|
        "In #{Helper.color(sym, sev: :bin)} (#{Helper.color(Helper.hex(base))}):\n" +
        ary.map { |v| "  #{Helper.color(sym, sev: :bin)}+#{Helper.color(Helper.hex(v))}\n" }.join
      end)
      $stdout.puts str
    end
Find pattern in all segments with pretty output.

 @param [Integer, String, Regexp] pattern
   The desired search pattern, can be value(+Integer+), string, or regular expression.
 @param [Symbol, Array<Symbol>] segment
   Only find pattern in these symbols.

 @return [void]