  Aspects of frameworks, such as inversion of control and the structure of
framework applications, require developers to adjust their debugging strategies
as compared to debugging sequential programs. However, the benefits and
challenges of framework debugging are not fully understood, and gaining this
knowledge could provide guidance in debugging strategies and framework tool
design. To gain insight into the process developers use to fix problems in
framework applications, we performed two human studies investigating how
developers fix applications that use a framework API incorrectly. These studies
focused on the Android Fragment class and the ROS framework. We analyzed the
results of the studies using a mixed-methods approach, consisting of techniques
from grounded theory, qualitative content analysis, and case studies. From our
analysis, we produced a theory of the benefits and challenges of framework
debugging. This theory states that developers find inversion of control
challenging when debugging but find the structure of framework applications
helpful. This theory could be used to guide strategies for debugging framework
applications and framework tool designs.
