僕の使っているコマンドラインツールの #ひかえめなアドベントカレンダー2023 12月23日分はstraceです。Linuxでシステムコールを記録してもらいます。コードを読まずに設定ファイルのパスなどを知ることができます。
rbenvで管理しているRubyを起動してみます。-ffで子プロセスごとに記録先のファイルを作ってもらいます。-oで指定した名前にプロセスIDを追加してくれます。
$ strace -e trace=file -ff -o ruby.strace ruby -e 'puts "Hello, World!"'
Hello, World!
けっこうたくさんプロセスを作るんだねえ!
$ ls -1 ruby.strace.*
ruby.strace.193452
:
ruby.strace.193477
今回は記録の多いものを覗いてみます。
$ wc -l ruby.strace.* | sort -nr | head -3
:
1757 ruby.strace.193452
90 ruby.strace.193474
$ cat ruby.strace.193452
execve("/home/zunda/.rbenv/shims/ruby", ["ruby", "-e", "puts \"Hello, World!\""], 0x7fffa148ef88 /* 28 vars */) = 0
:
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
execve("/home/zunda/.rbenv/shims/bash", ["bash", "/home/zunda/.rbenv/shims/ruby", "-e", "puts \"Hello, World!\""], 0x7ffe09972058 /* 28 vars */) = -1 ENOENT (No such file or directory)
:
~/.rbenv/shims/rubyはbashスクリプトなんだねえ!(びっくりしてばかり)
いつもの素麺や寿司の例えを聴くと安心する
https://rebuild.fm/373/
Ubuntuならsystemd-coredumpで取れそう
https://wiki.gnome.org/GettingInTouch/Bugzilla/GettingTraces
kusa
> 現状でKindleの書籍を読みたいのならばWineでKindle for PCを動かすのが一番良いようです
https://wakimiunten.hatenablog.com/entry/2022/05/22/103041