小编xet*_*a11的帖子

使用GDB生锈调试库

我有一个lib /src/lib.rs.我想准备用GDB进行调试.

rustc -g --crate-type lib libr.rs
Run Code Online (Sandbox Code Playgroud)

是搜索的方式告诉我如何做到这一点.输出文件具有以下名称liblib.rlib

现在运行GDB - 执行file lib.rs告诉我它不是可执行格式,与奇怪的文件相同liblib.rlib.我知道它不是可执行文件 - 但我也不知道我可以启动的任何替代文件.

那么我现在如何开始在Rust中调试lib呢?

debugging gdb static-libraries rust

5
推荐指数
1
解决办法
893
查看次数

声明struct字段对象类型时,我必须在这里使用什么样的生命周期参数

这就是我的代码的样子。我试图在我的ShapeRenderer结构中使用一个隐含的结构并使用它的方法。

形状.rs:

use super::core::*;

pub struct ShapeRenderer<'a> {
    core_renderer: &'a mut CanvasRenderer,
}
Run Code Online (Sandbox Code Playgroud)

核心文件

pub struct Canvas {
    pub width: usize,
    pub height: usize,
    pub array: Vec<char>,
}

pub struct Point {
    pub x: usize,
    pub y: usize,
}

pub struct CanvasRenderer<'a> {
    canvas: &'a mut Canvas,
}

impl<'a> CanvasRenderer<'a> {
    pub fn new(canvas: &'a mut Canvas) -> CanvasRenderer {
        CanvasRenderer { canvas: canvas }
    }
}
Run Code Online (Sandbox Code Playgroud)

错误

use super::core::*;

pub struct ShapeRenderer<'a> {
    core_renderer: &'a mut CanvasRenderer, …
Run Code Online (Sandbox Code Playgroud)

struct lifetime rust

5
推荐指数
1
解决办法
7176
查看次数

使用 Lodash.remove 通过 Vuex 突变更改状态不会在我的 Vue 组件中触发反应式重新渲染

Villager我有一个组件,它prop从父组件接收一个数组。父组件从 中提取该数组this.$store.state

return this.$store.state.villages.find(value => value.id === 0).villagers
Run Code Online (Sandbox Code Playgroud)

之后我执行this.$store.mutation提交来更改给定的数组。正如您在下面的屏幕截图中看到的那样,突变确实有效。然而,我所在的组件没有重新渲染,并且仍然显示 3 个而不是 2 个项目。

反应链似乎在某个地方被破坏了,但我无法确定到底是哪个恶魔。我认为props价值是一种反应机制。正如您在屏幕截图中看到的,它的值已更改,但 DOM 并未相应更新。

在此输入图像描述

代码摘录

我尝试提取问题的相关部分

商店/index.ts

[...]
export default new Vuex.Store({
  state: {
    villages: [
      {
        id: 0,
        name: 'Peniuli',
        foundingDate: 20,
        villagers: [
          {
            id: '33b07765-0ec6-4600-aeb1-43187c362c5a1',
            name: 'Baltasar',
            bloodline: 'Gent',
            occupation: 'Farmer'
          },
[...]
   mutations: {
       disbandVillager (state, payload) {
         const villagerId = payload.id
         const village = state.villages.find(value => value.id === 0)
         console.debug('disbanding villager:', villagerId)
         if (!_.isNil(village)) …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vuex vue-reactivity

5
推荐指数
1
解决办法
1175
查看次数

使用 Auth0 登录成功,但仍返回 401“访问被拒绝”?

我设法让 Auth0 对我的 Vue.js 应用程序有些作用。快速入门指南很简单。所以发生的事情是我设法使用了登录功能并被提示使用 Auth0 登录对话框。我使用我的 google 帐户进行了快速登录。这也奏效了。我的 google 帐户现在在我的 Auth0 仪表板中显示为新用户。

然而,登录后我返回到我的 Vue.js 应用程序,但授权似乎没有成功。

网络选项卡告诉我以下内容:

{"error":"access_denied","error_description":"Unauthorized"}
Run Code Online (Sandbox Code Playgroud)

我想知道在用户被视为“授权”之前我是否必须给他一些角色或权限?我的印象是默认情况下这将是正确的,并且只有在我开始在 Auth0 仪表板中定义角色时才会受到限制。

请赐教!

PS:我在处理 SPA 时正在使用 Auth0 提供的非隐式登录对话框。我读到可能会引起麻烦?

附注 2: 在此处输入图片说明

以及“失败交换”日志的原始数据:

{
  "date": "2020-08-24T10:43:52.005Z",
  "type": "feacft",
  "description": "Unauthorized",
  "connection_id": "",
  "client_id": "<Client_ID>",
  "client_name": null,
  "ip": "85.197.56.111",
  "user_agent": "Chrome 83.0.4103 / Linux 0.0.0",
  "details": {
    "code": "*************T8a"
  },
  "hostname": "alemanni-game.eu.auth0.com",
  "user_id": "",
  "user_name": "",
  "log_id": "90020200824104353383000015217913666506642073534760747026",
  "_id": "90020200824104353383000015217913666506642073534760747026",
  "isMobile": false
}
Run Code Online (Sandbox Code Playgroud)

auth0

5
推荐指数
1
解决办法
511
查看次数

在 Kotlin 中:将两个映射中公共键的两个值相加的优雅方法是什么?

我有一个现有的映射,其中包含简单的整数值。我想通过包含可能的键之一的给定映射的值来更新现有映射。

val originMap = mutableMapOf("Foo" to 10, "Bar" to 5)
val additionalMap = mapOf("Foo" to 4)

// questioned logic

assertThat(originMap).containsEntry("Foo", 14)
Run Code Online (Sandbox Code Playgroud)

java dictionary kotlin

5
推荐指数
1
解决办法
1830
查看次数

将 Figma CSS 转换为 Vue.js 组件 - 这里有哪些最佳实践?

我使用 Figma 提供的布局元素的 CSS 粗略地设计了我的 web 应用程序布局 Figma。我正在运行 Vue.js 2 SPA,现在想要第一次将 html/css 设计转换为 Vue.js 组件。我做得很简单,因为我可以了解 CSS 等所有内容。

使用 BEM CSS 约定(这对我保持概览很有帮助),我将所有 Figma 的 CSS 元素放入 Vue 组件的 CSS 类中。然后我div为每个(BEM)块创建了几个。

一些需要遵循的视觉效果和内容

示例.vue

<template>
  <v-container fluid>
    <div class="storage__header"></div>
    <div class="storage__header-text">Storage</div>
    <div class="storage__table-body"></div>
    <div class="storage__table-header"></div>
    <div class="storage__table-header-type">Type</div>
    <div class="storage__table-header-amount">Amount</div>
  </v-container>
</template>

<script>

export default {
  name: 'SettlementStorage',
}
</script>
<style>
.storage__header-text {
  position: absolute;
  width: 166px;
  height: 35.04px;
  left: 3px;
  top: 258px;

  font-family: Aref Ruqaa,monospace;
  font-style: normal;
  font-weight: normal;
  font-size: 35px; …
Run Code Online (Sandbox Code Playgroud)

javascript css vue.js figma

5
推荐指数
0
解决办法
940
查看次数

Mockito模拟一个方法,但使用其参数进行模拟返回

有一种方法public Content createChild(String path, String contentType, Map<String,Object> properties)我想嘲笑.

我想以这种方式模拟它,使用任何类型的参数调用该方法,因此when()无法工作,因为我必须告诉它该方法应该接收哪些参数才能实际模拟.

所以我想实际上对任何方法调用做出反应,独立于其给定的参数(使用间谍?),然后调用某种"回调"来返回一个Content对象,我想要从该方法的真实参数中一起构建.

我在Mockito中找不到支持此功能的特定API.

java unit-testing mockito spy

4
推荐指数
3
解决办法
5707
查看次数

在AnnotationProcessor中获取带注释的类的包名称

我有一个用AnnotationProcessor处理的类。在此过程中,我有一个实例,javax.lang.model.element.Element可以在该实例中通过来获取带注释的类的名称.getSimpleName()。我知道需要的是带注释的类的packageName(com.software.cool)。

知道如何通过API来接收它吗?

java annotations annotation-processing

4
推荐指数
2
解决办法
843
查看次数

模式不接受用于映射的 GraphQL Java 自定义标量类型

我尝试为 GraphQL Java 添加自定义标量类型。我需要它来解析 Map 而不为它创建类型,因为它是我逻辑中的常见返回类型。

我按照说明(这里http : //graphql-java.readthedocs.io/en/latest/scalars.html)创建了一个标量类型。

这是我的 MapScalar.java

public class MapScalar {
  private static final Logger LOG = LoggerFactory.getLogger(MapScalar.class);

  public static final GraphQLScalarType MAP = new GraphQLScalarType("Map", "A custom map scalar type", new Coercing() {
    @Override
    public Object serialize(Object dataFetcherResult) throws CoercingSerializeException {
      Map map = null;
      try {
        map = Map.class.cast(dataFetcherResult);
      } catch (ClassCastException exception) {
        throw new CoercingSerializeException("Could not convert " + dataFetcherResult + " into a Map", exception);
      }
      return …
Run Code Online (Sandbox Code Playgroud)

java graphql graphql-java

4
推荐指数
1
解决办法
3203
查看次数

在使用 Docker 配置构建代理之前,Teamcity Build 不会运行?

我为我的 Teamcity 管道创建了一个新版本。我第一次使用 Docker buildstep。在我设置好一切之后,我意识到构建代理似乎还没有准备好。

在此处输入图片说明

我知道我的代理似乎还没有准备好使用 docker 进行构建,实际上没有人告诉我如何做到这一点。我阅读了官方指南,但没有说明如何将 docker 实际安装到我的代理中(如果这是解决问题的方法)。

有人可以告诉我我必须做什么才能让它工作吗?

编辑

@Senior Pomidor 帮助我更近了一步。我在 docker run 命令中添加了他的第一个例子

docker run -it -e SERVER_URL="<url to TeamCity server>"  \
    --privileged -e DOCKER_IN_DOCKER=start \    
    jetbrains/teamcity-agent 
Run Code Online (Sandbox Code Playgroud)

这样做之后,我摆脱了屏幕截图中提到的消息。我的代理配置现在具有以下内容:

docker.server.osType     linux
docker.server.version    18.06.1
docker.version   18.06.1
Run Code Online (Sandbox Code Playgroud)

Teamcity 仍然抱怨这条消息:

在此处输入图片说明

这让我再次无能为力。

最终解决方案:只需重新启动 teamcity 服务器实例即可解决即将出现的 EDIT2 问题。代理实际上能够运行构建,但 teamcity 无法在不重新启动的情况下意识到这一点。

编辑2

索取资料:

我的 CI 服务器操作系统:

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
Run Code Online (Sandbox Code Playgroud)

运行容器:

CONTAINER ID        IMAGE                       COMMAND              CREATED             STATUS              PORTS                  NAMES
0f8e0b04d6a6        jetbrains/teamcity-agent    "/run-services.sh"   19 …
Run Code Online (Sandbox Code Playgroud)

teamcity continuous-integration build docker

4
推荐指数
1
解决办法
3409
查看次数