Papers by SRIJONI MAJUMDAR

IEEE Access
Software developers often face challenges in terms of quality and productivity to match competiti... more Software developers often face challenges in terms of quality and productivity to match competitive costs. The software industry seeks options to minimize this cost during different phases of software development and maintenance with improved productivity. Software developers adopt different tools for different purposes, such as understanding program behavior, debugging memory issues, debugging concurrency issues, and testing. In this article we study different debugging tools mostly used for program design analysis, thread debugging, and resource management. Stand-alone tools do track static or dynamic control flow, thread activities, etc. But these do not specifically identify the thread work-breakdownstructure, global memory location management, thread-data interaction, etc. to allow good comprehension of the concurrency model of the program. Similarly for resource management, we observe that the Valgrind addresses a few required features but does not offer automatic garbage collection. Moreover, to address the outcomes of different tools, developers must compile and configure the application in different environments. This is very time-consuming, requires skills in different software paradigms, and is sometimes not supported by the tool itself. As a result, they cannot be used in an inter-operable manner to analyze by relating the different tool's outcomes. In this study, we conduct a detailed survey of the available tools and techniques and their limitations in identifying gaps. We address these gaps by implementing the tools for different phases of software development and maintenance. For example, a concurrency model detector based on thread behavior, resource debugger with features of automatic garbage collection, etc. can collectively inter-operate within our designed open-source tool framework PARALLELC-ASSIST to address the common requests of the developers in one toolset. The tool is built upon open-source dynamic instrumentation tool PIN and supports a wide variety of IDEs and OS to detect various multi-threaded memory issues and provide additional features to inject concerns dynamically at run-time to extend it further according to the user's needs. We verify our tool with a wide variety of industry-standard benchmarks and compare its features with other similar tools. INDEX TERMS Multi-threaded issues, memory issues, dynamic instrumentation.
2022 IEEE 22nd International Conference on Software Quality, Reliability and Security (QRS)
Proceedings of the 14th Annual Meeting of the Forum for Information Retrieval Evaluation
Proceedings of the 14th Annual Meeting of the Forum for Information Retrieval Evaluation
Journal of Software: Evolution and Process
Advances in Intelligent Systems and Computing, 2020
Annotating programs with natural language comments is a common programming practice to increase t... more Annotating programs with natural language comments is a common programming practice to increase the readability of code. While researchers have attempted specific tasks like comment quality analysis or classification, there is absence of an integrated knowledge representation based on comments to aid program comprehension. We propose Comment-Mine a semantic search architecture, which extracts knowledge related to design, implementation and evolution of a software in the form of a knowledge graph. This supports program comprehension and various comment analysis tasks. We manually annotate concepts for 5600 comments extracted from 672 C/C++ files/projects crawled from code repositories like GitHub. Comment-Mine extracts 38,992 concepts, out of which 79.8% is correct and validated using manual annotation.

In contrast to single threaded applications, debugging multi-threaded applications is complex bec... more In contrast to single threaded applications, debugging multi-threaded applications is complex because of the non-deterministic nature of concurrent programs. Multiple threads in concurrent programs introduce bugs like datarace, deadlock and livelock. Popular debuggers like GNU Debugger (GDB), Intel Debugger (IDB) and Microsoft Visual Studio Debugger (MVSD) typically use static or compile-time instrumentation and provide many features to debug single threaded programs. However the features dealing with debugging concurrency is limited. In this paper we explore dynamic instrumentation using JIT (Just-InTime) compilation techniques for run-time behaviour using dynamic instrumentation framework from Intel PIN [1]. Using PIN we augment GDB with support for datarace and deadlock detection with automated breakpoint to GDB. We call it PGDB or PIN-augmented GDB a multi-threaded debugging platform. We present here a prototype of PGDB for detecting datarace and deadlock during the execution of...
Annotating programs with natural language comments is a common programming practice to increase t... more Annotating programs with natural language comments is a common programming practice to increase the readability of code. While researchers have attempted specific tasks like comment quality analysis or classification, there is absence of an integrated knowledge representation based on comments to aid program comprehension. We propose Comment-Mine a semantic search architecture, which extracts knowledge related to design, implementation and evolution of a software in the form of a knowledge graph. This supports program comprehension and various comment analysis tasks. We manually annotate concepts for 5600 comments extracted from 672 C/C++ files/projects crawled from code repositories like GitHub. Comment-Mine extracts 38,992 concepts, out of which 79.8% is correct and validated using manual annotation.
Advanced Computing and Systems for Security: Volume 14
2019 IEEE 19th International Conference on Software Quality, Reliability and Security (QRS)
Innovations in Systems and Software Engineering
2016 IEEE International Conference on Software Quality, Reliability and Security (QRS), 2016
Uploads
Papers by SRIJONI MAJUMDAR