skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: On Log Analysis and Stack Trace Use to Improve Program Slicing
Program slicing is a common technique to help reconstruct the path of execution a program has taken. It is beneficial for assisting developers in debugging their programs, but its usefulness depends on the slice accuracy that can be achieved, which is limited by the sources of information used in building the slice. In this paper, we demonstrate that two sources of information, namely program logs, and stack traces, previously used in isolation to build program slices, can be combined to build a program slicer capable of handling more scenarios than either method individually. We also demonstrate a sample application of our proposed slicing approach by showing how our slicer can deduce integer inputs that will recreate the detected error’s execution path.  more » « less
Award ID(s):
1854049
PAR ID:
10310312
Author(s) / Creator(s):
; ; ; ; ; ; ;
Date Published:
Journal Name:
Information Science and Applications. Lecture Notes in Electrical Engineering
Volume:
739
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. Foams, essential for applications from car seats to thermal insulation, are limited by traditional manufacturing techniques that struggle to produce graded stiffness, a key feature for enhanced functionality. Here, we introduce a novel slicing algorithm for producing heterogeneous foams through viscous thread printing (VTP). Our slicer generates a single, global toolpath for the entire foam volume while modulating the viscous thread’s self-interactions along this path to program stiffness. The slicer integrates multiple meshes into a unified print space and interpolates the print speed and height based on specified mesh parameters to program the desired stiffness variations. Using both qualitative samples and quantitative compression tests, we demonstrate that our slicer can (1) generate foam stiffnesses spanning an order of magnitude, (2) achieve millimeter precision in stiffness control, and (3) continuously vary stiffness between regions of constant stiffness using arbitrary functional forms. 
    more » « less
  2. A traditional program slicer constructs a smaller variant of a target program that computes the same result with respect to some target variable—that is, program slicing preserves the original program’srun-time semantics. We proposetype-directed slicing, which constructs a smaller program that guarantees that a typechecker will produce the same result on the sliced program when considering only a target program location—that is, a type-directed slicer preserves the target program’scompile-time semantics, from the view of a specific typechecker, with respect to some location. Type-directed slicing is a useful debugging aid for designers and maintainers of typecheckers. When a typechecker produces an unexpected result (a crash, a false positive warning, a missed warning, etc.) on a large codebase, the user typically reports a bug to the maintainers of the typechecker without an accompanying test case. State-of-the-art approaches to thisprogram reduction problemare dynamic: they require repeatedly running the typechecker to validate minimizations. A type-directed slicer solves this problem statically, without rerunning the typechecker, by exploiting the modularity inherent in a typechecker’s type rules. Our prototype type-directed slicer for Java is fully automatic, can operate on incomplete programs, and is fast. It produces a small test case that preserves typechecker misbehavior for 25 of 28 (89%) historical bugs from the issue trackers of three widely-used typecheckers: the Java compiler itself, NullAway, and the Checker Framework; in each of these 25 cases, it preserved the typechecker’s behavior even without the classpath of the target program. And, it runs in under a minute on each benchmark, whose size ranges up to millions of lines of code, on a free-tier CI runner. 
    more » « less
  3. null (Ed.)
    Purpose The purpose of this research is to develop a new slicing scheme for the emerging cooperative three-dimensional (3D) printing platform that has multiple mobile 3D printers working together on one print job. Design/methodology/approach Because the traditional lay-based slicing scheme does not work for cooperative 3D printing, a chunk-based slicing scheme is proposed to split the print job into chunks so that different mobile printers can print different chunks simultaneously without interfering with each other. Findings A chunk-based slicer is developed for two mobile 3D printers to work together cooperatively. A simulator environment is developed to validate the developed slicer, which shows the chunk-based slicer working effectively, and demonstrates the promise of cooperative 3D printing. Research limitations/implications For simplicity, this research only considered the case of two mobile 3D printers working together. Future research is needed for a slicing and scheduling scheme that can work with thousands of mobile 3D printers. Practical implications The research findings in this work demonstrate a new approach to 3D printing. By enabling multiple mobile 3D printers working together, the printing speed can be significantly increased and the printing capability (for multiple materials and multiple components) can be greatly enhanced. Social implications The chunk-based slicing algorithm is critical to the success of cooperative 3D printing, which may enable an autonomous factory equipped with a swarm of autonomous mobile 3D printers and mobile robots for autonomous manufacturing and assembly. Originality/value This work presents a new approach to 3D printing. Instead of printing layer by layer, each mobile 3D printer will print one chunk at a time, which provides the much-needed scalability for 3D printing to print large-sized object and increase the printing speed. The chunk-based approach keeps the 3D printing local and avoids the large temperature gradient and associated internal stress as the size of the print increases. 
    more » « less
  4. Abstract Dynamic or temporal networks enable representation of time-varying edges between nodes. Conventional adjacency-based data structures used for storing networks such as adjacency lists were designed without incorporating time and can thus quickly retrieve all edges between two sets of nodes (anode-based slice) but cannot quickly retrieve all edges that occur within a given time interval (atime-based slice). We propose a hybrid data structure for storing temporal networks that stores edges in both an adjacency dictionary, enabling rapid node-based slices, and an interval tree, enabling rapid time-based slices. Our hybrid structure also enablescompound slices, where one needs to slice both over nodes and time, either by slicing first over nodes or slicing first over time. We further propose an approach for predictive compound slicing, which attempts to predict whether a node-based or time-based compound slice is more efficient. We evaluate our hybrid data structure on many real temporal network data sets and find that they achieve much faster slice times than existing data structures with only a modest increase in creation time and memory usage. 
    more » « less
  5. null (Ed.)
    Efficient provisioning of 5G network slices is a major challenge for 5G network slicing technology. Previous slice provisioning methods have only considered network resource attributes and ignored network topology attributes. These methods may result in a decrease in the slice acceptance ratio and the slice provisioning revenue. To address these issues, we propose a two-stage heuristic slice provisioning algorithm, called RT-CSP, for the 5G core network by jointly considering network resource attributes and topology attributes in this paper. The first stage of our method is called the slice node provisioning stage, in which we propose an approach to scoring and ranking nodes using network resource attributes (i.e., CPU capacity and bandwidth) and topology attributes (i.e., degree centrality and closeness centrality). Slice nodes are then provisioned according to the node ranking results. In the second stage, called the slice link provisioning stage, the k-shortest path algorithm is implemented to provision slice links. To further improve the performance of RT-CSP, we propose RT-CSP+, which uses our designed strategy, called minMaxBWUtilHops, to select the best physical path to host the slice link. The strategy minimizes the product of the maximum link bandwidth utilization of the candidate physical path and the number of hops in it to avoid creating bottlenecks in the physical path and reduce the bandwidth cost. Using extensive simulations, we compared our results with those of the state-of-the-art algorithms. The experimental results show that our algorithms increase slice acceptance ratio and improve the provisioning revenue-to-cost ratio. 
    more » « less