{"title":"基于虚拟机的occam-pi调试","authors":"Carl G. Ritson, Jonathan Simpson","doi":"10.3233/978-1-58603-907-3-293","DOIUrl":null,"url":null,"abstract":"While we strive to create robust language constructs and design patterns which prevent the introduction of faults during software development, an inevitable element of human error still remains. We must therefore endeavor to ease and acceler- ate the process of diagnosing and fixing software faults, commonly known as debug- ging. Current support for debugging occam- programs is fairly limited. At best the developer is presented with a reference to the last known code line executed before their program abnormally terminated. This assumes the program does in fact termi- nate, and does not instead live-lock. In cases where this support is not sufficient, de- velopers must instrument their own tracing support, \"printf style\". An exercise which typically enlightens one as to the true meaning of concurrency... In this paper we ex- plore previous work in the field of debugging occam programs and introduce a new method for run-time monitoring of occam- applications, based on the Transterpreter virtual machine interpreter. By adding a set of extensions to the Transterpreter, we give occam- processes the ability to interact with their execution environment. Use of a virtual machine allows us to expose program execution state which would otherwise require non-portable or specialised hardware support. Using a model which bears sim- ilarities to that applied when debugging embedded systems with a JTAG connection, we describe debugging occam- by mediating the execution of one execution process from another.","PeriodicalId":246267,"journal":{"name":"Communicating Process Architectures Conference","volume":"29 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Virtual Machine Based Debugging for occam-pi\",\"authors\":\"Carl G. Ritson, Jonathan Simpson\",\"doi\":\"10.3233/978-1-58603-907-3-293\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"While we strive to create robust language constructs and design patterns which prevent the introduction of faults during software development, an inevitable element of human error still remains. We must therefore endeavor to ease and acceler- ate the process of diagnosing and fixing software faults, commonly known as debug- ging. Current support for debugging occam- programs is fairly limited. At best the developer is presented with a reference to the last known code line executed before their program abnormally terminated. This assumes the program does in fact termi- nate, and does not instead live-lock. In cases where this support is not sufficient, de- velopers must instrument their own tracing support, \\\"printf style\\\". An exercise which typically enlightens one as to the true meaning of concurrency... In this paper we ex- plore previous work in the field of debugging occam programs and introduce a new method for run-time monitoring of occam- applications, based on the Transterpreter virtual machine interpreter. By adding a set of extensions to the Transterpreter, we give occam- processes the ability to interact with their execution environment. Use of a virtual machine allows us to expose program execution state which would otherwise require non-portable or specialised hardware support. Using a model which bears sim- ilarities to that applied when debugging embedded systems with a JTAG connection, we describe debugging occam- by mediating the execution of one execution process from another.\",\"PeriodicalId\":246267,\"journal\":{\"name\":\"Communicating Process Architectures Conference\",\"volume\":\"29 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2008-09-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Communicating Process Architectures Conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.3233/978-1-58603-907-3-293\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Communicating Process Architectures Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3233/978-1-58603-907-3-293","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
While we strive to create robust language constructs and design patterns which prevent the introduction of faults during software development, an inevitable element of human error still remains. We must therefore endeavor to ease and acceler- ate the process of diagnosing and fixing software faults, commonly known as debug- ging. Current support for debugging occam- programs is fairly limited. At best the developer is presented with a reference to the last known code line executed before their program abnormally terminated. This assumes the program does in fact termi- nate, and does not instead live-lock. In cases where this support is not sufficient, de- velopers must instrument their own tracing support, "printf style". An exercise which typically enlightens one as to the true meaning of concurrency... In this paper we ex- plore previous work in the field of debugging occam programs and introduce a new method for run-time monitoring of occam- applications, based on the Transterpreter virtual machine interpreter. By adding a set of extensions to the Transterpreter, we give occam- processes the ability to interact with their execution environment. Use of a virtual machine allows us to expose program execution state which would otherwise require non-portable or specialised hardware support. Using a model which bears sim- ilarities to that applied when debugging embedded systems with a JTAG connection, we describe debugging occam- by mediating the execution of one execution process from another.