小编Pee*_*oot的帖子

gnu ld/gdb:单独的调试文件.如果有太多的调试信息需要链接,如何生成调试文件?

现在有gdbbinutils要调试从二进制分离调试信息的支持.可以在以下位置找到描述此内容的文档:

经过一些实验,我能够gdb使用build-id和debug-link方法获得(7.6)查找调试信息.这里有两个gdb片段,分别使用build-id和debug-link方法显示调试器在非标准位置查找调试信息:

(gdb)  set debug-file-directory .
(gdb) file uWithBuildId
Reading symbols from /home/peeterj/build-id/uWithBuildId...Reading symbols from /home/peeterj/build-id/.build-id/2d/41caac1bcbeb65255abc3f35624cf9ed37791a.debug...done.


Reading symbols from /home/peeterj/build-id/uWithDebugLink...Reading symbols from /home/peeterj/build-id/uWithDebugLink.debug...done.
Run Code Online (Sandbox Code Playgroud)

要创建我用的调试信息的文件objcopystrip.我在下面列出了这些命令的详细信息以供参考.

但是,我正在考虑这个问题的原因是希望能够构建我们所有的产品代码-g.目前,如果我们尝试,这会破坏调试器,因为我们的shared-lib太大而且重定位被截断以适合以下消息:

/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../lib64/crtn.o:(.debug_aranges+0x6):     relocation truncated to fit: R_X86_64_32 against `.debug_info'
Run Code Online (Sandbox Code Playgroud)

(以及随后的链接失败)

有没有人知道如何做到以下之一:

  1. 生成一个独立文件,其中包含有助于二进制文件的所有调试信息(即ld生成二进制文件的命令中最终的.o和.a ).
  2. 或者,指示ld链接而不在二进制本身中包含此调试信息,并生成可以使用build-id或debug-link标识的独立调试文件?我没有在文档中看到任何单一传递方法来执行此操作ld,但ld文档很大,也许我错过了它.
  3. 处理上面的截断错误的一些方法(这样的方法将允许build-id或debug-link方法工作).

sample命令为可执行文件生成单独的调试文件

这是使用--build-id--add-gnu-debuglink方法的示例命令行序列:

g++ -g   -c -o …
Run Code Online (Sandbox Code Playgroud)

debugging gdb binutils

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

如何在朱莉娅回溯中显示来电者?

有没有办法获取Julia函数调用者的文件/名称/行信息?

我发现这种方式来获取一些堆栈跟踪信息,如果调用者是另一个函数(但不是主上下文),我得到文件:line info:

module pd

   global g_bTraceOn = true

   export callerOfTraceIt

   function callerOfTraceIt()
     traceit( "hi" ) ;
   end

   function traceit( msg )
      global g_bTraceOn

      if ( g_bTraceOn )
         bt = backtrace() ;
         s = sprint(io->Base.show_backtrace(io, bt))

         println( "debug: $s: $msg" )
      end
   end
end

using pd

callerOfTraceIt( )
Run Code Online (Sandbox Code Playgroud)

由此可见:

$ julia bt.jl
debug:
 in traceit at C:\cygwin64\home\Peeter\julia\HarmonicBalance\bt.jl:15
 in callerOfTraceIt at C:\cygwin64\home\Peeter\julia\HarmonicBalance\bt.jl:8
 in include at boot.jl:245
 in include_from_node1 at loading.jl:128
 in process_options at client.jl:285
 in _start at client.jl:354: hi …
Run Code Online (Sandbox Code Playgroud)

julia

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

clang_complete错误:未知参数:' - std = c ++ 0x'

clang ++版本:2.9 vim版本:7.3

我写了我的 .clang_comple

--std=c++0x
Run Code Online (Sandbox Code Playgroud)

跟随源代码test.cc:

int main () {
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

并且clang_complete显示

test.cc|| unknown argument: '--std=c++0x'
Run Code Online (Sandbox Code Playgroud)

在quickfix列表中.

我尝试添加选项

set g:clang_user_options="--std=c++0x"
Run Code Online (Sandbox Code Playgroud)

问题仍然存在.

试图追踪一些clang_complete的代码,但仍然无法解决这个问题.所有其他选项都可以正确处理,但不能--std=c++0x错过任何内容吗?或者做错了什么?

c++ clang c++11 libc++ clang-complete

3
推荐指数
1
解决办法
5398
查看次数

如何在mathematica中修复嵌套函数的语法?

我想尝试制定规范平方积分.例如,而不是以下内容:

Integrate[ Conjugate[Exp[-\[Beta] Abs[x]]]  Exp[-\[Beta] Abs[x]], 
           {x, -Infinity, Infinity}] 
Run Code Online (Sandbox Code Playgroud)

我尝试创建一个函数来执行此操作,但需要函数来执行函数:

Clear[complexNorm, g, x] 
complexNorm[ g_[ x_ ] ] := Integrate[ Conjugate[g[x]]  * g[x], 
                                      {x, -Infinity, Infinity}]
v = complexNorm[ Exp[ - \[Beta] Abs[x]]]  // Trace
Run Code Online (Sandbox Code Playgroud)

Mathematica在执行第一个积分时没有任何问题,但是当使用我的辅助函数时,跟踪的最终结果只显示:

complexNorm[E^(-\[Beta] Abs[x])]
Run Code Online (Sandbox Code Playgroud)

没有评估所需的积分?

语法密切关注我发现了一个例子http://www.mathprogramming-intro.org/download/MathProgrammingIntro.pdf [第155页],但它并没有为我工作.

wolfram-mathematica

3
推荐指数
1
解决办法
422
查看次数

如何从mathematica中的一对列表的元素生成产品列表

比方说,是否有一个预制的操作需要两个列表

a = { 1, 2, 3 }
b = { 2, 4, 8 }
Run Code Online (Sandbox Code Playgroud)

并且在不使用for循环的情况下生成新列表,其中每对列表中的对应元素已被乘以

{ a[1] b[1], a[2] b[2], a[3] b[3] }
Run Code Online (Sandbox Code Playgroud)

我在想可能存在像Inner [Times,a,b,Plus]这样的东西,但是返回一个列表而不是一个总和.

wolfram-mathematica

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

_mm_cvtsi64x_si128 的 clang 支持

使用 clang-3.5.0(但不是 gcc-4.9.2,也不是 intel 编译器)我收到消息:

use of undeclared identifier '_mm_cvtsi64x_si128'; did you mean '_mm_cvtsi64_si128'
Run Code Online (Sandbox Code Playgroud)

这是我发现在intel intrisics guide 中记录的内在函数,并且有问题的代码确实包含在 intinsics 指南中记录的包含:

#include "emmintrin.h"
Run Code Online (Sandbox Code Playgroud)

我想知道这个错误是否是因为没有传递正确的 -mcpu= 标志,但我尝试了 -mcpu=nahelem,这对于这个 sse2 指令应该足够了。知道 clang 是否支持此内在函数,如果支持,需要哪些编译标志才能使用它?

clang

3
推荐指数
1
解决办法
544
查看次数

Julia中稀疏复数的矩阵

在Julia中,我可以创建一个零稀疏矩阵:

julia> a = spzeros(2,2)
2x2 sparse matrix with 0 Float64 entries:

julia> a[1,1] = 1
1

julia> full(a)
2x2 Array{Float64,2}:
 1.0  0.0
 0.0  0.0
Run Code Online (Sandbox Code Playgroud)

我可以创建一个复杂的矩阵:

julia> b = [ 1 ; im ]
2-element Array{Complex{Int64},1}:
 1+0im
 0+1im
Run Code Online (Sandbox Code Playgroud)

如果我尝试将复数值分配给稀疏的零矩阵,我会收到错误:

julia> a[1,1] = im
ERROR: InexactError()
 in setindex! at sparse/sparsematrix.jl:1095
Run Code Online (Sandbox Code Playgroud)

这与spzeros()Float64参数化的返回类型一致:

julia> typeof(a)
SparseMatrixCSC{Float64,Int64} (constructor with 1 method)
Run Code Online (Sandbox Code Playgroud)

如何在Julia中创建复杂类型零的稀疏矩阵?

matrix sparse-matrix complex-numbers julia

3
推荐指数
1
解决办法
425
查看次数

如何改变朱莉娅PyPlot极坐标图中的径向刻度?

使用julia和PyPlot(它看起来像是调用matplotlib)我有一个径向对数图,范围从绘图外边缘的0dB到内部的-50dB:

using PyPlot ;

theta = 0:0.02:1 * pi ;
n = length(theta) ;

U = cos( theta ).^2 ;
V = zeros( size(U) ) ;

for i = 1:n
   v = log10( U[i] ) ;
   if ( v < -50/10 )
      v = 0 ;
   else
      v = v/5 + 1 ;
   end

   V[i] = v ;
end

f1 = figure("p2Fig1",figsize=(10,10)) ; # Create a new figure
ax1 = axes( polar="true" ) ; # Create a polar axis

pl1 …
Run Code Online (Sandbox Code Playgroud)

python plot matplotlib julia

3
推荐指数
1
解决办法
635
查看次数

mathematica FullSimplify懦弱拒绝完全评估复杂数字的真实部分?

我想知道是否有一个不同于FullSimplify的命令告诉mathematica进行所请求的计算.这是简化尝试的三种变体

FullSimplify[Re[                       (-I + k Rr)] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
FullSimplify[Re[E^(I (omega t - k Rr))            ] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
FullSimplify[Re[E^(I (omega t - k Rr)) (-I + k Rr)] Cos[Ttheta], Element[{k, Rr, Ttheta, t, omega}, Reals]]
Run Code Online (Sandbox Code Playgroud)

我分别得到:

k Rr Cos[Ttheta]
Cos[k Rr - omega t] Cos[Ttheta]

                I (-k Rr + omega t)
Cos[Ttheta] Re[E                    (-I + k Rr)]
Run Code Online (Sandbox Code Playgroud)

没有指数,实际部分得到评估.如果没有复数因子乘以指数,就会对实部进行评估.两者相乘,输入作为输出返回?

我尝试了// Timings修饰符,这不是因为表达式太复杂(这很好,因为我可以在我脑海中做到这一点,但这是一个较大的测试表达式的子集,也是失败的).

wolfram-mathematica

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

solaris(bourne?)sh中^(插入符号)的特殊含义?

在Solaris上,似乎我需要单引号"匹配行的开头"表达式:

 > sh
 $ echo offset 0.000000 2>&1 | grep ^offset | tail -1
 offset: not found
 $ Usage:        grep [-c|-l|-q] [-bhinsvwx] pattern_list [file ...]
         grep [-c|-l|-q] [-bhinsvwx] [-e pattern_list]... [-f pattern_file]... [file...]
         grep -E [-c|-l|-q] [-bhinsvx] pattern_list [file ...]
         grep -E [-c|-l|-q] [-bhinsvx] [-e pattern_list]... [-f pattern_file]... [file...]
         grep -F [-c|-l|-q] [-bhinsvx] pattern_list [file ...]
         grep -F [-c|-l|-q] [-bhinsvx] [-e pattern_list]... [-f pattern_file]... [file...]
Run Code Online (Sandbox Code Playgroud)

我可以通过单引用正则表达式来轻松解决这个问题:

 > sh
 $ echo offset 0.000000 2>&1 | grep '^offset'| tail -1
 offset 0.000000 …
Run Code Online (Sandbox Code Playgroud)

solaris sh

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

mathematica指数N阶导数作为未知函数处理

我想创建的汉克尔功能,在n阶导数的定义的列表,但第N阶导数获得了在该文档下"的未知函数导"中描述的方式进行处理,并留下未评估.这是一个例子:

Clear[x, gaussianExponential]
gaussianExponential[x_] := Exp[- x^2]
FullSimplify[Derivative[2][gaussianExponential[x]]]
Run Code Online (Sandbox Code Playgroud)

我得到:(E ^ -x ^ 2)^ [Prime] [Prime]

(而不是看到评估的衍生物(并且最终表达式未被简化)).

知道这里发生了什么吗?

wolfram-mathematica

0
推荐指数
1
解决办法
915
查看次数

matlab结构类型丢失类型的单元格数组字段?

我想使用struct()在Matlab函数中返回各种值.其中之一是细胞阵列.这是一个例子:

xnames = cell( 3, 1 ) ;
for i = [1:3]
   xnames{i} = sprintf( 'V_%d', i ) ;
end

a = 1 ;
b = 2 ;
r = struct( 'a', a, 'b', b, 'x', xnames ) ;
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试访问rx,则原来的单元标识似乎丢失了:

x = r.x ;
x{1}
Run Code Online (Sandbox Code Playgroud)

这会导致错误:'来自非单元数组对象的单元格内容引用.' 字符串数据似乎在那里,因为rx的显示显示:

ans =

V_1


ans =

V_2


ans =

V_3
Run Code Online (Sandbox Code Playgroud)

但是,我不知道在将单元格数组插入结构后如何获取这些字段?

编辑:在上面的例子中使用gui变量资源管理器,显示r最终得到结果:

1   2   'V_1'
1   2   'V_2'
1   2   'V_3'
Run Code Online (Sandbox Code Playgroud)

即它被转换为struct()数组,xnames {i}的每个值都有一个数组:

>> r(1)

ans =

    a: 1
    b: 2
    x: 'V_1'

>> …
Run Code Online (Sandbox Code Playgroud)

arrays matlab

0
推荐指数
1
解决办法
61
查看次数