我试图理解链接寄存器和帧指针在ARM中是如何工作的.我去过几个网站,我想确认一下我的理解.
假设我有以下代码:
int foo(void)
{
// ..
bar();
// (A)
// ..
}
int bar(void)
{
// (B)
int b1;
// ..
// (C)
baz();
// (D)
}
int baz(void)
{
// (E)
int a;
int b;
// (F)
}
Run Code Online (Sandbox Code Playgroud)
我叫foo().将链接寄存器包含在点(A)的地址码和帧指针包含在代码点(B)的地址?在声明了所有本地人之后,堆栈指针可以是bar()内的任何位置吗?
[编辑]添加了另一个函数调用baz()
在Django中,我们可以通过使用获得用户上次登录的时间Auth.User.last_login.仅当用户使用其用户名/密码登录时才会更新.假设用户已经登录并且身份验证信息保存在cookie中,因此无需登录即可访问该站点.我们如何获取用户以前访问过该站点的日期?这对于诸如获取自上次访问以来的新记录数量之类的查询非常有用.
我有以下型号:
class Assignment(models.Model):
extra_days = models.IntegerField(default=0)
due_date = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
due_date分配到期的日期在何处,是在extra_days完成分配的截止日期之后给出的额外天数.
我想创建一个查询,返回due_date + extra_days大于当前日期的所有行.这就是我在做的事情:
from django.utils import timezone
from django.db.models import F
from datetime import datetime
cur_date = timezone.make_aware(datetime.now(), timezone.get_default_timezone())
a = Assignment.objects.filter(extra_days__gt=cur_date - F('due_date'))
Run Code Online (Sandbox Code Playgroud)
当我打印时a,我收到以下错误:
File "c:\Python27\lib\site-packages\MySQLdb\cursors.py", line 204, in execute
if not self._defer_warnings: self._warning_check()
File "c:\Python27\lib\site-packages\MySQLdb\cursors.py", line 117, in _warning
_check
warn(w[-1], self.Warning, 3)
Warning: Truncated incorrect DOUBLE value: '2013-09-01 02:54:31'
Run Code Online (Sandbox Code Playgroud)
如果我做了导致3.1天的时差,我假设天差仍然是3.我认为做这样的事情会更正确:
a = Assignment.objects.filter(due_date__gt=cur_date - timedelta(days=F('extra_days')))
Run Code Online (Sandbox Code Playgroud)
但这也会导致错误.
如何在不编写原始SQL查询的情况下执行此操作?
我是从更改字段CharField来IntegerField.字段名称保持不变.新创建的字段将基于旧字段.例如,如果旧字段是"L",则它将具有数字"1".我怎样才能在forwards()功能中实现这一目标?
当我尝试从运行 Django 应用程序的 docker 容器连接到运行 MySQL 的容器时,出现以下错误:
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '172.17.0.2' (111)")
Run Code Online (Sandbox Code Playgroud)
这是我运行 MySQL 容器的方式:
$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=testdb -e MYSQL_ROOT_HOST=172.17.0.2 -d mysql/mysql-server:5.7
Run Code Online (Sandbox Code Playgroud)
如果我不指定MYSQL_ROOT_HOST,当我尝试从容器与 Django 应用程序连接时,我会收到此错误:
django.db.utils.OperationalError: (1130, "Host '172.17.0.3' is not allowed to connect to this MySQL server")
Run Code Online (Sandbox Code Playgroud)
这是我的 Django 设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'testdb',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '172.17.0.2',
'PORT': '',
}
}
Run Code Online (Sandbox Code Playgroud)
我已经验证 MySQL 容器正在使用 IP 172.17.0.2:
$ docker …Run Code Online (Sandbox Code Playgroud) 我在Windows 10 Enterprise上运行Docker Desktop for Windows.我得到以下内容:
PS C:\ Users> docker run --rm -vc:/ Users:/ data alpine ls/data C:\ Program Files\Docker\Docker\Resources\bin\docker.exe:来自守护进程的错误响应:C:驱动器是不在Docker for Windows设置中共享它.
从共享驱动器选项卡中的Docker设置,我看到C驱动器在那里,但未检查.当我检查它并按Apply时,系统会提示我输入密码.成功输入后,C仍未检查驱动器.
我过去可以通过右键单击测试目录并单击“Run 'tests in my_app'”从 Android Studio GUI 运行所有 Flutter 单元测试。删除并重新克隆我的应用程序目录(可能还有其他内容的组合)后,我在尝试运行测试后在运行日志中看到了这一点:
Testing started at 8:42 AM ...
C:\flutter\bin\cache\dart-sdk\bin\pub.bat run test -r json C:/Users/me/AndroidStudioProjects/my_app
Observatory listening on http://127.0.0.1:2397/S0P_H2wKVSE=/
The Flutter SDK is not available.
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
我的 SDK 设置正确,因为我可以从 Android Studio 运行和调试该应用程序。如果我flutter test从 AS 中的终端选项卡运行,测试将成功执行。
我正在按照此示例序列化数据类。当我这样做时,我收到此构建错误:
Type mismatch: inferred type is Data but SerializationStrategy<TypeVariable(T)> was expected
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import kotlinx.serialization.json.Json
import kotlinx.serialization.Serializable
@Serializable
data class Data(val a: Int, val str: String = "str")
fun main() {
println(Json.encodeToString(Data(42)))
}
Run Code Online (Sandbox Code Playgroud)
由于我使用的是 @Serializable 批注,所以我不应该拥有正确的数据类型吗?如何序列化数据类?
是否有一种配置可以自动将容器的日志重定向到主机中的文件/var/log/?docker logs我们可以使用和 在主机上访问容器日志/var/lib/docker/containers/<container id>/,但我们想要访问文件中的日志/var/log/。如果重新创建容器,我们还希望保留并附加到此文件。