Commit 62e82322 authored by Robin Battey's avatar Robin Battey Committed by Facebook Github Bot

added "info fibers" command

Summary:
Re-implementation of fiber gdb integration.  All previous functionality still works as well.

Commands:
* `fiber`: switch to fiber by address, alias, or assigned short id
* `fiber apply`: run arbitrary gdb commands for each specified fiber (or "all")
* `fiber deactivate`: switch back to normal thread behavior
* `fiber name`: assign or clear an alias to a particular fiber
* `info fibers`: print out each fiber manager and fiber, with ids and current frame info

Parameters:
* `fiber info-frame-skip-words`: the "uninteresting" function matches to skip frames of when showing fiber info
* `fiber manager-print-limit`: limit of the number of fibers displayed when printing a fiber manager

Fibers are assigned ids of the form "<MANAGER_ID>.<FIBER_ID>".  When specifying fibers for `info fibers` or `fiber apply`, you can specify any number of space-separated fiber ids, and additionally you can specify a manager id by itself to refer to all fibers in that manager.

When printing info with `info fibers`, every stopped fiber will be in `folly::fibers::FiberImpl::deactivate()`, which isn't particularly useful.  To give more-useful information, it will skip past all frames whose function names include the strings "folly::fibers" or "wait" and print the first non-matching frame's information instead.  The `fiber info-frame-skip-words` parameter defines the strings to match on, specified as a space-separated list of words.

Due to gdb limitations, the selecting a fiber "masks" the currently selected thread, and to see the current thread again you will need to run `fiber deactivate`, same as before.

Reviewed By: andriigrynenko

Differential Revision: D18342802

fbshipit-source-id: 5b2204bb09eca4c8f977c6c17b0348e39465dff6
parent e375f666
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment