FEATHERS(1)

πŸ“¦ version 5.4.0, in alpine 3.24, fedora 43, fedora 44, nixos 26.05

πŸ¦‹ FEATHERS β€” the General Commands Manual girlies know her πŸ’…

okay so bestie, feathers is a whole manual page (section 1, General Commands Manual, iykyk) and I'm about to make her make sense. sit down, grab a strawberry πŸ“, let's go.


✨ NAME ✨

feathers β€” a simple source-level debugger for CHICKEN Scheme 🐣

like. it's a debugger. for CHICKEN Scheme. source-level. simple. iconic. that's the whole vibe.


🌸 SYNOPSIS 🌸

feathers [OPTION ...] [PROGRAM ARGUMENTS ...]

options first, then the program, then whatever arguments you wanna hand to that program. periodt.


πŸ’– DESCRIPTION πŸ’–

so here's the tea: feathers runs a program that was compiled with CHICKEN Scheme, and it lets you do the basic source-level debugging stuff β€” setting breakpoints, single-stepping, and inspecting procedure arguments and global variables. literally the holy trinity of "wait why is my code like this" 😭

BIG important thing though: the Scheme code must be compiled with debug-level 3 for debugging to even be possible. not 2. not "close enough". three. if you didn't compile it with debug-level 3, bestie, there is no debugging happening, full stop πŸ™ˆ

the way it talks to you is lowkey cute: communication with the debugger takes place by exchanging messages over a TCP socket. the address and the port for that socket come from the environment variable CHICKEN_DEBUGGER, which holds a connection address shaped like this:

⟨ADDRESS⟩:⟨PORT⟩

and PROGRAM has to be the actual path to the executable you want to run β€” PATH is not searched. like, don't just say ./myprog and hope, give her the real path. no PATH scavenger hunt today 🧚

the program accepts these following arguments:

  • -help β€” shows you a list of the supported command-line options. the "help me help you" flag 🫢
  • -n β€” do not load the default startup file .feathers. skipping the intro, going straight to the show ✨
  • -d β€” TODO: Document this. yes. that is genuinely what the manpage says. she's a mystery, she's mysterious, we respect her privacy πŸ’€
  • -dir DIRECTORY β€” adds DIRECTORY to the list of searched paths used for locating source files. more places to look = more chances your source shows up πŸ‘‘
  • -port PORT β€” pick a different TCP port instead of the default, which is 9999. changing the venue, keeping the party 🌈

🌿 ENVIRONMENT 🌿

these environment variables change how feathers behaves:

  • CHICKEN_DEBUGGER β€” should hold a TCP server address and port where the debugger is listening. this variable gets set by the debugger when a program is run from it, and it defaults to localhost:9999. so like, usually you don't even have to touch it, she handles it πŸ’œ

⭐ EXIT STATUS ⭐

the feathers utility exits 0 on success, and >0 if an error occurs. zero means slay, anything above zero means something went sideways 😭


πŸ”₯ SEE ALSO πŸ”₯

more information can be found in the CHICKEN User's Manual: http://wiki.call-cc.org/manual/index.

go read, bestie, it's giving educational πŸŽ€


πŸ‘‘ AUTHORS πŸ‘‘

The CHICKEN Team. legends, honestly. ate and left no crumbs.


πŸ’€ BUGS πŸ’€

submit bug reports by e-mail to chicken-janitors@nongnu.org. don't be shy, they wanna know πŸ™ˆ


okay that's the whole page!! this one's from the Debian crew, dated Apr 26, 2017, and it's FEATHERS(1) β€” so go forth, set a breakpoint, and single-step your way to main character energy πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from