{"type":"ScholarlyArticle","title":"A Factor Graph Model for Software Bug Finding","authors":[{"name":"Ted Kremenek","slug":"ted-kremenek","given":"Ted","family":"Kremenek","affiliation":""},{"name":"Andrew Y. Ng","slug":"andrew-y-ng","given":"Andrew Y.","family":"Ng","affiliation":""},{"name":"Dawson R. Engler","slug":"dawson-r-engler","given":"Dawson R.","family":"Engler","affiliation":""}],"abstract":"Automatic tools for finding software errors require knowledge of the rules a program must obey, or specifications, before they can identify bugs. We present a method that combines factor graphs and static program analysis to automatically infer specifications directly from programs. We illustrate the approach on inferring functions in C programs that allocate and release resources, and evaluate the approach on three codebases: SDL, OpenSSH, and the OS kernel for Mac OS X (XNU). The inferred specifications are highly accurate and with them we have discovered numerous bugs.","doi":null,"url":"https://ijcai.org/proceedings/2007/404","pdf":"https://ijcai.org/proceedings/2007/0404.pdf","markdown":"https://ijcai.org/proceedings/2007/404.md","bibtex":"https://ijcai.org/proceedings/2007/bibtex/404","volume":{"slug":"2007","title":"Proceedings of the Twentieth International Joint Conference on Artificial Intelligence","short_title":"IJCAI 2007","url":"https://ijcai.org/proceedings/2007/","year":2007,"location":"Hyderabad, India","dates":"","editors":"Ramon López de Mántaras","isbn":"","publisher":"International Joint Conferences on Artificial Intelligence","doi_prefix":""},"section":null,"track":"","number":404,"pages":{"first":2510,"last":2515},"keywords":[],"videos":[],"references":[],"license_note":"Copyright International Joint Conferences on Artificial Intelligence."}