arthas icon indicating copy to clipboard operation
arthas copied to clipboard

线程相关信息超出tty 宽度时,信息会被隐藏,而不是换行

Open wuxuanqicn opened this issue 3 years ago • 3 comments

  • [x] 我已经在 issues 里搜索,没有重复的issue。

环境信息

  • arthas-boot.jar 或者 as.sh 的版本: 最新版本 3.6.4
  • Arthas 版本: 最新版本 3.6.4
  • 操作系统版本: linux 5.10.16.3-microsoft-standard-WSL2
  • 目标进程的JVM版本: openjdk version "1.8.0_312"

重现问题的步骤

  1. java -jar arthas-boot.jar --width=80
  2. thread -all 或 dashboard 命令

期望的结果

What do you expected from the above steps? 线程相关信息(包括线程id、线程名称)应该完整展示,而不是隐藏

实际运行的结果

如图,arthas 相关线程id实际为591、592、593,其中线程id 和线程名称超长部分均被隐藏 image

wuxuanqicn avatar Aug 05 '22 06:08 wuxuanqicn

此处指定了超长隐藏 https://github.com/alibaba/arthas/blob/1b2f8cbe687f65edd409d02af95f283db3f5c462/core/src/main/java/com/taobao/arthas/core/command/view/ViewRenderUtil.java#L107-L110

直接修改为Overflow.WRAP 会出现

  1. 部分线程名称没有显示,见下图上半部分红框
  2. wrap 换行时没有换行标识来区分上下两行是同一行的wrap,还是原本就是两行,见下图下半部分红框 image

wuxuanqicn avatar Aug 05 '22 07:08 wuxuanqicn

感谢指出,这个还是有意义的。不过目前还没好的处理办法,先重新打开下。

hengyunabc avatar Aug 12 '22 08:08 hengyunabc

感谢指出,这个还是有意义的。不过目前还没好的处理办法,先重新打开下。

使用Overflow.WRAP 换行时,utf8字符集可以使用这个码点 ↩ U+21A9

wuxuanqicn avatar Aug 12 '22 09:08 wuxuanqicn