In this paper, we propose four slicing methods using both static and dynamic analysis information. (1) StatementMark Slice : removes the unnecessary statements using an execution history of the statements. (2) Partial Program Analysis : reduces the static analysis cost using invocation history of procedures. (3) Dynamic Data Dependence Analysis : extracts precise data dependence relations using dynamic data dependence analysis. (4) Array and Pointer Analysis : improves the efficiency of (3) by dynamically analyzing pointer and array variables only. Using both dynamic and static information, we will show that the precision of the slicing is improved with smaller run-time overhead.