{"629643":{"#nid":"629643","#data":{"type":"event","title":"Phd Proposal by Xiangyu Li","body":[{"value":"\u003Cp\u003E\u003Cstrong\u003ETitle: Developer-Centric Automated Debugging\u003C\/strong\u003E\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003EXiangyu Li\u003C\/p\u003E\r\n\r\n\u003Cp\u003ESchool of Computer Science\u003C\/p\u003E\r\n\r\n\u003Cp\u003ECollege of Computing\u003C\/p\u003E\r\n\r\n\u003Cp\u003EGeorgia Institute of Technology\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cstrong\u003EDate\u003C\/strong\u003E: Friday, December 6, 2019\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cstrong\u003ETime\u003C\/strong\u003E: 3:00pm - 5:00pm (EST)\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cstrong\u003ELocation\u003C\/strong\u003E: Klaus 3100\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cstrong\u003ECommittee\u003C\/strong\u003E:\u003C\/p\u003E\r\n\r\n\u003Cp\u003EAlessandro Orso - Advisor, School of Computer Science,\u0026nbsp;Georgia Institute of Technology\u003C\/p\u003E\r\n\r\n\u003Cp\u003EDavid Devecsery - School of Computer Science,\u0026nbsp;Georgia Institute of Technology\u003C\/p\u003E\r\n\r\n\u003Cp\u003EQirun Zhang - School of Computer Science,\u0026nbsp;Georgia Institute of Technology\u003C\/p\u003E\r\n\r\n\u003Cp\u003ESpencer Rugaber - College of Computing,\u0026nbsp;Georgia Institute of Technology\u003C\/p\u003E\r\n\r\n\u003Cp\u003EMarcelo d\u0026#39;Amorim - Department of Computer Science,\u0026nbsp;Federal University of Pernambuco\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cstrong\u003EAbstract\u003C\/strong\u003E:\u003C\/p\u003E\r\n\r\n\u003Cp\u003ESoftware debugging is an expensive activity that is responsible for a signi\ufb01cant part of\u003C\/p\u003E\r\n\r\n\u003Cp\u003Esoftware maintenance cost. In particular, locating faulty code (i.e., fault localization) is one\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eof the most challenging parts. In the past years, researchers have proposed many techniques\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ethat aim at fully automating the task of fault localization. Although these techniques are\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eshown to be effective in reducing the amount of code developers need to inspect to locate\u003C\/p\u003E\r\n\r\n\u003Cp\u003Efaults, there is growing evidence that they provide developers with limited help in realistic\u003C\/p\u003E\r\n\r\n\u003Cp\u003Edebugging scenarios. I believe that a practical automated debugging technique should have\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ehuman developers at the center of the debugging process rather than trying to completely\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ereplace them.\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u0026nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003EIn this proposal, I present three projects, two completed and one on-going, that de\ufb01ne\u003C\/p\u003E\r\n\r\n\u003Cp\u003Etechniques to support developer-centric automated debugging. First, I present Enlighten,\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ean interactive, feedback-driven fault localization technique. Enlighten supports and\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eautomates developers\u0026rsquo; debugging work\ufb02ow as follows. It 1) uses traditional statistical fault\u003C\/p\u003E\r\n\r\n\u003Cp\u003Elocalization (SFL) to formulate an initial hypothesis of where the fault may be; 2) identi\ufb01es\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ea relevant subset of execution that can help support or refute the formulated hypothesis;\u003C\/p\u003E\r\n\r\n\u003Cp\u003E3) presents the developer with a query about the identi\ufb01ed execution subset in the form of\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ea correctness question about the input-output relation of the partial execution; 4) re\ufb01nes\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eits hypothesis of the fault by using the developer\u0026rsquo;s feedback; and 5) repeats these steps\u003C\/p\u003E\r\n\r\n\u003Cp\u003Euntil the fault is found. Second, I discuss my work on improving the accuracy of dynamic\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eslicing, which allows automated debugging techniques that rely on dynamic dependence\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eanalysis to handle a broader range of faults. I present my \ufb01nding that existing dynamic\u003C\/p\u003E\r\n\r\n\u003Cp\u003Edependence analysis techniques could miss the cause-effect relations between faults and the\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eobserved failures if the faulty program states propagate via incorrect computation of\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ememory addresses. To address this limitation, I de\ufb01ne the concept of potential memory-address\u003C\/p\u003E\r\n\r\n\u003Cp\u003Edependence, which explicitly represents this type of causal relations, and describe an\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ealgorithm that computes it. Third, supporting the developer-centric, automated debugging\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ework\ufb02ow, which requires collecting, analyzing, and navigating the typically massive amount\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eof information in the failing execution, can be extremely expensive for non-trivial software\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eand failures. In fact, many existing interactive debugging techniques are shown to work\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ewell on short executions, but fail to scale to even modest-length executions. My on-going\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eproject aims to address this limitation. By utilizing a record-and-replay system, the technique\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eefficiently recreates the failing execution, breaks it down into smaller time slices, and\u003C\/p\u003E\r\n\r\n\u003Cp\u003Eanalyzes these slices in a parallelized, and on-demand fashion. I expect this approach to\u003C\/p\u003E\r\n\r\n\u003Cp\u003Escale to realistic, potentially long program executions while providing short response time\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ein the interactive debugging process.\u003C\/p\u003E\r\n","summary":null,"format":"limited_html"}],"field_subtitle":"","field_summary":"","field_summary_sentence":[{"value":"Developer-Centric Automated Debugging"}],"uid":"27707","created_gmt":"2019-12-03 16:51:24","changed_gmt":"2019-12-05 12:45:18","author":"Tatianna Richardson","boilerplate_text":"","field_publication":"","field_article_url":"","field_event_time":{"event_time_start":"2019-12-06T15:00:00-05:00","event_time_end":"2019-12-06T17:00:00-05:00","event_time_end_last":"2019-12-06T17:00:00-05:00","gmt_time_start":"2019-12-06 20:00:00","gmt_time_end":"2019-12-06 22:00:00","gmt_time_end_last":"2019-12-06 22:00:00","rrule":null,"timezone":"America\/New_York"},"extras":[],"groups":[{"id":"221981","name":"Graduate Studies"}],"categories":[],"keywords":[{"id":"102851","name":"Phd proposal"}],"core_research_areas":[],"news_room_topics":[],"event_categories":[{"id":"1788","name":"Other\/Miscellaneous"}],"invited_audience":[{"id":"78761","name":"Faculty\/Staff"},{"id":"78771","name":"Public"},{"id":"174045","name":"Graduate students"},{"id":"78751","name":"Undergraduate students"}],"affiliations":[],"classification":[],"areas_of_expertise":[],"news_and_recent_appearances":[],"phone":[],"contact":[],"email":[],"slides":[],"orientation":[],"userdata":""}}}