微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Visual Studio 代码和多线程调试问题

如何解决Visual Studio 代码和多线程调试问题

我正在用 Visual Studio 代码编写一个简单的脚本,用于检索 MQTT 消息并处理数据。尝试调试我编写的代码时出现问题。当我运行 client.on_message = on_message 时,会创建一个新线程来处理传入的数据。当它碰到行 b = 1 + "this will throw up a error and the code wont continue any further" 时,应该引发一个错误,但我没有收到错误通知,这使调试变得更加复杂,因为

  1. 我不知道是否发生了错误并且有一半的代码没有运行
  2. 如果我发现发生了错误,不知道代码中的错误在哪里需要更正。

任何人都知道编写代码以帮助调试此类线程的更好方法(使用 mqtt 库等),显然这是一个演示问题的简单脚本,我正在编写更复杂的脚本,它成为开发的噩梦.

#!/usr/bin/env python3

import paho.mqtt.client as mqtt
import time 
import json 

# broker IP address 
broker_ip = "127.0.0.1"

# This is the Subscriber
def on_connect(client,userdata,flags,rc):
  print("Connected with result code "+str(rc))
  client.subscribe("test")
  client.subscribe("*")
  
def on_message(client,message):
    #print ("Message received: " + message.payload.decode('ascii'))
    print("before ")
    b = 1 + "this will throw up a error and the code wont continue any further"
    print("after ")


client = mqtt.Client()
client.username_pw_set(username="admin",password="bob22")    
client.connect(broker_ip,1883,60)

client.on_connect = on_connect
client.on_message = on_message

client.loop_forever()

发布脚本 #!/usr/bin/env python3

import paho.mqtt.client as mqtt
import time 
# broker IP address 
broker_ip = "127.0.0.1"

client = mqtt.Client()
client.username_pw_set(username="admin",60)

for i in range(100): 
    client.publish("test",str(i))
    print(i)
    time.sleep(0.1)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。