小编Woo*_*low的帖子

MIPS上的Valgrind报告没有堆使用情况

我正在使用valgrind(v3.10.0)来寻找复杂应用程序(一个经过大量修改的net-snmp版本)中的内存泄漏,该应用程序是作为更大的软件套件的一部分构建的.我确信存在泄漏(应用程序的内存占用量无限制地线性增长),但valgrind总是在终止时报告以下内容.

==1139== HEAP SUMMARY:
==1139==     in use at exit: 0 bytes in 0 blocks
==1139==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==1139== 
==1139== All heap blocks were freed -- no leaks are possible
Run Code Online (Sandbox Code Playgroud)

总堆的使用不能为零-还有很多,很多电话mallocfree整个应用程序.Valgrind仍然能够找到"无效写入"错误.

正在编译该应用程序以及其他软件包,其中MIPS处理器的uclibc-gcc工具链(uclibc v0.9.29)将被闪存到运行busybox(v1.17.2)linux shell的嵌入式设备上.我正在设备上直接运行valgrind.我在启动Valgrind时使用以下选项:

--tool=memcheck --leak-check=full --undef-value-errors=no --trace-children=yes
Run Code Online (Sandbox Code Playgroud)

基本上,即使我使用了堆,Valgrind也没有检测到任何堆使用情况.为什么会这样?我的任何假设(下面)都是错误的吗?


我试过的

简单的测试程序

我从Valgrind 快速入门教程编译了简单的测试程序(使用与上面的应用程序相同的目标和工具链),以查看Valgrind是否会检测到泄漏.最终输出与上面相同:没有堆使用.

链接问题?

Valgrind文档在他们的FAQ上有如下说明:

如果您的程序是静态链接的,那么大多数Valgrind工具只有在能够用自己的版本替换某些功能(例如malloc)时才能正常工作.默认情况下,不替换静态链接的malloc函数.一个关键的指标是,如果Memcheck说"所有堆块都被释放 - 没有泄漏是可能的".

上面的声音与我的问题完全一样,所以我检查它是否动态链接到包含malloc和的C库free.我使用了uclibc工具链的自定义ldd可执行文件(我不能使用原生linuxldd),输出包括以下几行:

libc.so.0 => not found (0x00000000) …
Run Code Online (Sandbox Code Playgroud)

c valgrind memory-leaks memory-management mips

20
推荐指数
2
解决办法
1345
查看次数

什么自我关闭元素可以::之前和::之后应用伪元素

我的理解特别感兴趣时,::before::after伪元素可以应用于自闭的标签.根据W3 Generated Content CSS规范,这是这些伪元素的定义:

12.1:before和:after伪元素:作者使用:before和:after伪元素指定生成内容的样式和位置.正如其名称所示,:before和:after伪元素指定元素文档树内容之前和之后的内容位置.'content'属性与这些伪元素一起指定插入的内容.

基于此,似乎这些伪元素旨在修改元素的内容.据我了解(虽然我找不到支持这一点的权威来源),"内容"或多或少被定义为"开始和结束标签之间的东西"; 因此,我认为没有"内容"的元素(例如HTML br标签)不应该支持::before::after伪元素.

对此进行推断,并根据我对元素"内容"定义的理解,我认为没有一个自闭标签会支持::before::after伪元素.然而,在实践中,我发现许多自动关闭标签都有完全的支持.

除了定义为"内容"的问题之外,我们还可以考虑这样的事实:伪元素被表示为(虽然从技术上讲它们不是)应用它们的元素的DOM子元素.自闭标签不能拥有DOM子元素的事实似乎支持自闭标签不应该有伪元素的想法.

在我试图寻找这个问题的答案,我组建了一个小测试,以确定其自闭标签(我挑了其中的极少数,他们来考虑)的支持::before::after,我已经嵌入在测试中的一个片段下面.我在浏览器中获得了完全不同的结果,并且几乎找不到一致性.

.test {
  display: inline;
  visibility: hidden;
}

span + *::after {
  visibility: visible;
  color: green;
  content: 'YES';
}
Run Code Online (Sandbox Code Playgroud)
<h3>Which Self-Closing Tags Support Pseudo Elements?</h3>
<div><span>Text Input:</span> <input type="text" class="test"></div>
<div><span>Checkbox Input:</span> <input type="checkbox" class="test"></div>
<div><span>Radio Input:</span> <input type="radio" class="test"></div>
<div><span>Submit Input:</span> <input type="submit" class="test"></div>
<div><span>Reset …
Run Code Online (Sandbox Code Playgroud)

html css w3c css3 pseudo-element

19
推荐指数
1
解决办法
1414
查看次数

将ARG放在Dockerfile的顶部会阻止层重用吗?

如果在Dockerfile顶部声明的ARG发生更改,但其值仅用于Dockerfile末尾附近的RUN命令,Docker是否从头开始重建整个映像,或者是否能够重用中间件在相关的RUN命令之前的图像?

为了更好地利用分层,我应该将我的ARG声明放在Dockerfile的顶部,还是在使用它们的部分之前?

我想我的一部分问题是ARG指令是否生成了一个中间层.

docker dockerfile

18
推荐指数
2
解决办法
3247
查看次数

如何在linq中获取第二条记录到sql

我有一个汇率表.我需要获得当前的费率和以前的费率,然后比较结果.

我可以用第一张唱片FirstOrDefault.

当我使用时ElementAtOrDefault,此错误显示"不支持查询运算符'ElementAtOrDefault'".我如何获得第二张唱片?

linq linq-to-sql

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

表单中的CSS Flexbox

我想在我的Web表单上使用flex display属性,以便并排放置两个文本字段并自动增长以填充空间.我选择在表格布局上使用flex,因为我希望它们在窗口缩小时移动到自己的行.

我相信我误解了如何使用flexbox.

以下是我目前的工作(简化发布在这里).我使用一个字段集作为一个flex父,并且每个应该并排"增长"的表单元素都被包含在div中(设置为display: inline可以在同一行上).我也有一个关于fieldset的图例,设置为display:block并且width:100%它将在它自己的行上.

jsFiddle链接

fieldset {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    border: none;
}

label {
    display: none;
}

legend {
    display: block;
    width: 100%;
}

fieldset > div {
    display: inline;
    flex: 1 1 auto;
}

input {
    width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<form>
    <fieldset>
        <legend>These are Text Fields</legend>
        <div>
            <input type="text" id="text1">
            <label for="text1">Text Field</label>
        </div>
        <div>
            <input type="text" id="text2">
            <label for="text2">More Text</label>
        </div>
    </fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,div都是各自独立的(尽管有display: inline和flexbox的东西).如果你为div元素添加一个边框,你会发现它们现在是100%宽度; 但即使您手动定义宽度(如30%),它们仍保留在自己的行上. …

html css css3 flexbox

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

从内核空间配置LED触发器的参数

我正在开发一个嵌入式项目.我们的主板使用的是Linux内核v3.16.7.我正在努力支持一些监控活动的外围LED.我已经成功地修改了启动过程来加载驱动程序,并创建sysfs的条目/sys/class/leds/,这是伟大的.我还将一个单触发器连接到LED上,这样我就可以echo 1 > shot从内部/sys/class/leds/actled1\:green/和LED 闪烁.正是我想要的.

但是,我想在启动过程中实例化驱动程序时配置每个LED的延迟,我不清楚如何做到这一点.司机在创建的sysfs条目/sys/class/leds/actled1\:green/delay_ondelay_off了,我可以从用户空间写信给他们配置的延迟,但它应该是可能的实例化过程中从内核空间设置的初始值.我还希望能够设置invert参数(这只是延迟时的另一个sysfs条目).

当我从内核空间实例化驱动程序时,如何配置led触发器的参数?

以下是我实例化LED GPIO的方法.首先,我设置所需的结构:

static struct gpio_led my_leds[] __initdata = {
    {
        .name = "actled1:green",
        .default_trigger = "oneshot"
        .gpio = ACTIVITY_LED_GPIO_BASE + 0,
        .active_low = true,
    },
    {
        .name = "actled2:red",
        .default_trigger = "oneshot"
        .gpio = ACTIVITY_LED_GPIO_BASE + 1,
        .active_low = true,
    },
};

static struct gpio_led_platform_data my_leds_pdata __initdata = {
    .num_leds = ARRAY_SIZE(my_leds),
    .leds = my_leds, …
Run Code Online (Sandbox Code Playgroud)

c linux kernel-module linux-device-driver linux-kernel

10
推荐指数
1
解决办法
1843
查看次数

C64 程序集渲染精灵

我使用ca65 汇编器ld65 链接器在 6502 汇编器中为 Commodore 64 编写了一个短程序。该程序应该在靠近显示器中心的某处呈现一个实心方形精灵,但我没有看到任何正在呈现的东西。

这是我的程序集:

    .segment "CODE"

    ; set sprite pointer index
    ; this, multiplied by $40, is the address
    ; in this case, the address is $2000
    ; $80 * $40 = $2000
    lda #$80
    sta $07f8

    ; enable sprite 0
    lda #$01
    sta $d015

    ; set x and y position
    lda #$80
    sta $d001
    sta $d002

loop:
    jmp loop

    .segment "GFXDATA"

    .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
    .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
    .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
    .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF …
Run Code Online (Sandbox Code Playgroud)

assembly c64 6502 commodore ca65

8
推荐指数
1
解决办法
764
查看次数

我想将选择图标/下拉图标更改为(fa-chevron-down).我怎么能够?

我想使用代码中的表单来自bootstrap,但我想将选择图标/下拉图标更改为fa-chevron-down.

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css" rel="stylesheet"/>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"/>

<div class="container">
  <div class="row">
    <div class="col-sm-6">
      <h2>Heading</h2>
      <div class="form-group">
        <label for="exampleInputEmail1">Some-text</label>
        <select class="form-control input-lg">...</select>
        <label for="exampleInputEmail1">Some-text</label>
        <select class="form-control input-lg">...</select>
        <label for="exampleInputEmail1">Some-text</label>
        <select class="form-control input-lg">...</select>
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

html css html5 twitter-bootstrap font-awesome

7
推荐指数
2
解决办法
3万
查看次数

如何使用子模块克隆本地存储库?

假设我递归地克隆一个存储库。

$ git clone --recursive ssh://server/project/client
Cloning into 'client'...
remote: Counting objects: 191, done
remote: Finding sources: 100% (191/191)
remote: Total 191 (delta 53), reused 159 (delta 53)
Receiving objects: 100% (191/191), 27.59 KiB | 0 bytes/s, done.
Resolving deltas: 100% (53/53), done.
Checking connectivity... done.
Submodule 'gui' (ssh://server/project/client/gui.git) registered for path 'gui'
Cloning into 'gui'...
remote: Counting objects: 3213, done
remote: Finding sources: 100% (3213/3213)
remote: Total 3213 (delta 1272), reused 3107 (delta 1272)
Receiving objects: 100% (3213/3213), 47.88 …
Run Code Online (Sandbox Code Playgroud)

git git-clone git-submodules

7
推荐指数
1
解决办法
5136
查看次数

将JAR嵌入Eclipse中的OSGi Bundle中

我需要在我正在Eclipse中开发的OSGi包中嵌入第三方JAR文件.我做了很多搜索和阅读,我一遍又一遍地看到同样的事情:

  1. 我真的不应该这样做.这不是OSGi做事的"方式".
  2. 这实际上很容易做到.只需将JAR嵌入到捆绑包的根目录中,然后Bundle-ClassPath: ., jar_filename.jar在清单中指定.

好的.除了JAR我嵌入很小,不太可能被我在这个封闭系统上实现的任何其他东西使用,因此嵌入它要容易得多,因此用户只需下载一个捆绑包(易于使用) - 用户至关重要).所以我要反对惯例并嵌入它.

现在,在IDE中,一切都是犹太洁食.我把JAR放在src我的Eclipse项目的文件夹中并配置了项目的构建路径,使用"add jar"按钮(不是"添加外部jar",因为我导致相信将使用绝对路径)包含它"配置构建路径"对话框.我还在Bundle-ClassPath我的清单文件中添加了该行.在IDE中,我的所有导入都解析得很好(因为它在构建路径中),但是当我将它作为一个包(默认选项)导出时,错误日志显示导入无法解析.

我检查了生成的最终bundle JAR文件,并且第三方JAR按预期嵌套在(在根目录下),但是一旦它尝试从该库导入对象,它就会失败.

下面是我的(非常基本的)MANIFEST.MF.我错过了什么吗?除了将它列在bundle-classpath之外,我是否需要将其列为import-package?我需要导出它(为什么?)?我错误地使用了bundle-classpath吗?我是否需要做一些不同的事情,因为我正在使用Eclipse?

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: ZWave Demo
Bundle-SymbolicName: com.wbarlow.zwavedemo
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: com.wbarlow.zwavedemo.internal.Activator
Bundle-Vendor: WBARLOW
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Import-Package: org.osgi.framework;version="1.3.0"
Bundle-ClassPath: .,
 rxtx-2.1.7.jar
Run Code Online (Sandbox Code Playgroud)

编辑:我通过使用GUI重新完成所有操作来解决这个问题,而不是直接编辑.MF文件.我猜Eclipse会在你这样做时设置一些背景配置.

java eclipse osgi eclipse-plugin osgi-bundle

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