[파이썬] pdb `break` 또는 `b`로 중단점 설정

One of the most useful features of the Python debugger (pdb) is the ability to set breakpoints in your code. Breakpoints allow you to pause the execution of your program at a specific line or function, giving you an opportunity to inspect variables, step through code, and analyze the program’s behavior.

In pdb, you can set breakpoints using the break command or its shorthand form b. Let’s explore how to use these commands to set breakpoints in your Python code.

Setting a Breakpoint at a Specific Line

To set a breakpoint at a specific line in your code, use the following command:

import pdb

# ...

pdb.set_trace()  # Set breakpoint

When the execution of your program reaches the pdb.set_trace() line, it will pause and enter the interactive debugger mode. You can now start exploring the code and inspecting variables.

Alternatively, you can set the breakpoint directly in the code by using the shorthand form:

# ...

breakpoint()  # Set breakpoint

Both commands have the same effect, pausing the program at the line where the breakpoint is set.

Setting a Breakpoint in a Function

You can also set breakpoints inside a function that you want to examine more closely. To do this, specify the function name as an argument after the break command:

# ...

def my_function():
    # ...
    pdb.set_trace()  # Set breakpoint inside the function
    # ...

# ...

my_function()  # Call the function

When the execution of the program reaches the pdb.set_trace() line inside the my_function() function, it will pause, and you can start debugging.

Similarly, you can use the shorthand form:

# ...

def my_function():
    # ...
    breakpoint()  # Set breakpoint inside the function
    # ...

# ...

my_function()  # Call the function

Conditional Breakpoints

Sometimes, you may only want to pause the program if a specific condition is met. In pdb, you can set a conditional breakpoint by combining the break command with a condition. The condition is written as an expression that evaluates to True or False.

# ...

pdb.set_trace() if some_variable > 10 else None  # Set conditional breakpoint

# ...

In this example, the program will only pause at the pdb.set_trace() line if some_variable is greater than 10. Otherwise, it will continue executing.

Conclusion

Setting breakpoints using the break or b command in pdb is an essential skill for debugging Python code. It allows you to pause the execution of your program and examine the state at a specific line or function. By utilizing breakpoints effectively, you can identify and fix issues in your code more efficiently.