小编Ele*_*nic的帖子

如何从外部分离 gdb 会话?

我使用如下命令在后台启动 gdb 会话:

gdb --batch --command=/tmp/my_automated_breakpoints.gdb -p pid_of_proces> &> /tmp/gdb-results.log &
Run Code Online (Sandbox Code Playgroud)

最后的&让它在后台运行(并且 shell 之后立即关闭,因为该命令是由单个ssh命令发出的)。

我可以通过找到会话pid的内容。gdbps -aux | grep gdb

但是:我怎样才能优雅地从正在运行的进程中分离这个 gdb 会话,就像我使用命令在我面前的终端会话一样(gdb) detach

当我使用 终止 gdb 会话(而不是正在运行的进程本身)时kill -9 gdb_pid,我会SIGABRT在运行的程序中得到不需要的 s 。

对于我的目的来说,重新启动服务太耗时。

如果使用此自动化脚本成功进行调试会话,我可以在批处理脚本中使用分离命令。但这不是我的情况:当会话期间出现一些错误时,我想分离/退出正在运行的 gdb 会话,因此我想从另一个终端会话中手动优雅地分离 gdb。

c c++ linux gdb

6
推荐指数
1
解决办法
1131
查看次数

Django REST-Auth密码重置

我对可用的django中间件感到完全困惑:

我只是想让密码重置(以及以后的密码更改)功能运行,在后端使用djangowith rest_auth并在前端使用Vue。

步骤1:通过邮件请求重置链接

观看次数

到目前为止,我已经做了CustomPasswordResetView

# project/accounts/views.py
from rest_auth.views import PasswordResetView

class CustomPasswordResetView(PasswordResetView):
pass
Run Code Online (Sandbox Code Playgroud)

序列化器

和一个CustomPasswordResetSerializer

# project/accounts/serializers.py
from rest_auth.serializers import PasswordResetSerializer

class CustomPasswordResetSerializer(PasswordResetSerializer):
    email = serializers.EmailField()
    password_reset_form_class = ResetPasswordForm

    def validate_email(self, value):
        # Create PasswordResetForm with the serializer
        self.reset_form = self.password_reset_form_class(data=self.initial_data)
        if not self.reset_form.is_valid():
            raise serializers.ValidationError(self.reset_form.errors)

        ###### FILTER YOUR USER MODEL ######
        if not get_user_model().objects.filter(email=value).exists():
            raise serializers.ValidationError(_('Invalid e-mail address'))

        return value

    def save(self):
        request = self.context.get('request')
        # Set some values to …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework django-allauth django-rest-auth

2
推荐指数
1
解决办法
3997
查看次数