Calling context provides important information for a large range of applications, such as event logging, profiling, debugging, anomaly detection, and performance optimization. While some techniques have been proposed to track calling context efficiently, they lack a reliable and precise decoding capability; or they work only under restricted conditions, that is, small programs without object- oriented programming or dynamic component loading. These shortcomings have limited the application of calling context tracking in practice. We propose an encoding technique without those limitations: it provides precise and reliable decoding, supports large-sized programs, both procedural and objected-oriented ones, and can cope with dynamic class/library loading. The technique thus enables calling context tracking in a wide variety of scenarios. The evaluation on SPECjvm shows that its efficiency is comparable with that of the state-of-the-art approach while our technique pro- vides precise decoding and demonstrates scalability and flexibility.