77 lines
2.5 KiB
Python
77 lines
2.5 KiB
Python
########## Some commands in pdb ##########
|
|
# help: Display a list of available pdb commands or get help on a specific command.
|
|
# break or b: Set a breakpoint at a specific line or function.
|
|
# continue or c: Continue execution until the next breakpoint or the program finishes.
|
|
# step or s: Step into the next line of code, diving into function calls.
|
|
# next or n: Step over the next line of code, without diving into function calls.
|
|
# return or r: Continue execution until the current function returns.
|
|
# list or l: Show the current line of code and surrounding lines.
|
|
# print or p: Evaluate and print the value of an expression or variable.
|
|
# watch: Set a watchpoint on an expression or variable. The debugger will break when the value changes.
|
|
# quit or q: Quit the debugger and stop execution.
|
|
|
|
|
|
########## There is a main() function at the end ##########
|
|
|
|
|
|
# 2. Provide an example script where setting a breakpoint on a particular line
|
|
# Then using either step over or step into will yield the same result.
|
|
|
|
class Same_StepOverStepInto_Result:
|
|
def calculation2(self, a, b):
|
|
result = a + b
|
|
product = self.multiply(a, b) # Step into this method call
|
|
|
|
breakpoint() # Set a breakpoint here
|
|
|
|
print(f"The sum is: {result}")
|
|
print(f"The product is: {product}")
|
|
|
|
def multiply(self, x, y):
|
|
return x * y
|
|
|
|
|
|
# calculator2 = Same_StepOverStepInto_Result()
|
|
# calculator2.calculation2(6, 7)
|
|
|
|
|
|
|
|
# 3. Here is another example which will provide different results from 'step' and 'next' commands
|
|
|
|
class Diff_StepOverStepInto_Result:
|
|
def multiply(self, a, b):
|
|
return a * b
|
|
|
|
def calculation3(self, a, b):
|
|
result = a + b
|
|
|
|
breakpoint() # Set a breakpoint here
|
|
|
|
product = self.multiply(a, b)
|
|
|
|
print(f"The sum is: {result}")
|
|
print(f"The product is: {product}")
|
|
|
|
|
|
# calculator3 = Diff_StepOverStepInto_Result()
|
|
# calculator3.calculation3(6, 7)
|
|
|
|
|
|
|
|
# Choose wich Class to run
|
|
def main():
|
|
choice = input("Enter 2 to run Q2 class for same result, 3 to run Q3 class for different result: ")
|
|
|
|
if choice == '2':
|
|
print('Here is the sample task for Question 2:')
|
|
calculator2 = Same_StepOverStepInto_Result()
|
|
calculator2.calculation2(6, 7)
|
|
elif choice == '3':
|
|
print('Here is the sample task for Question 3:')
|
|
calculator3 = Diff_StepOverStepInto_Result()
|
|
calculator3.calculation3(6, 7)
|
|
else:
|
|
print("Please only choose between 2 and 3")
|
|
|
|
if __name__ == "__main__":
|
|
main() |