标签: proc

如何识别 /proc/$PID/maps 文件中的 STACK 和 HEAP 段?

我可以识别 /proc/$PID/maps 文件中的 text、ds 和 bss 段(通过猜测或在特定段的访问说明符的帮助下)。但是堆和堆栈段是依次给出的。有没有办法确定哪个段属于堆栈,哪个属于堆?

----- 本例中如何识别堆和栈的分界 ---------- 0a8a0000-0ab2e000 rw-p 0a8a0000 00:00 0 [heap]
< b648e000-b648f000 ---p b648e000 00:00 0
<b648f000-b6496000 RW-p 00:00 b648f000 0
<b6496000-b6497000 --- p b6496000 00:00 0
<b6497000-b649e000 RW-p 00:00 b6497000 0
<b649e000-b649f000 --- p b649e000 00:00 0
< b649f000-b64a6000 rw-p b649f000 00:00 0
< b64a6000-b64a7000 ---p b64a6000 00:00 0
< b64a7000-00600000000-
p60000000000000000000000000004 00:00 0
< b64af000-b657a000 rw-p b64af000 00:00 0
< b657a000-b657b000 ---p b657a000 00:00 0
< b657b000-b065a0p-065000-b065a000
< b65a5000-b65a6000 ---p b65a5000 00:00 …

c linux proc

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

为什么PROC SQL中的HAVING子句不会变为蓝色?

我正在创建一个具有重复值的输出,但HAVING子句不会变为"蓝色". 在此输入图像描述

代码完成了应该做的事情.有人可以解释为什么HAVING不是'蓝色',如果这是一个问题?

sas clause having proc

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

在 proc 的局部变量上使用 TCL 跟踪


假设我有这个 TCL 代码(这是一个简单的例子):

proc foo {} {
   set k {0}
   foreach a { 1 2 3 4 } {
      lappend k [ expr { [lindex $k end ] + $a } ]
   }
}
Run Code Online (Sandbox Code Playgroud)

我想跟踪 proc foo 中的 k 变量,就像我跟踪它一样,如果它是全局变量或命名空间变量。在 TCL 8.5 中,我该怎么做?
谢谢。

variables trace tcl proc

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

tcl中数组中元素的最大出现次数

我有一个数组如下

array = {aaaabbbcccccc}

在上面的数组中,"a"是4次,b是3次,c是6次

如果我的输入在数组之上,你能帮助我将proc输出为6吗?

谢谢

arrays tcl proc

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

在红宝石中,什么时候是一块不是一块?

抛开笑话,我有一个奇怪的情况,我有一些代码:

def remotes(form,remotes)
  personalised_form = form.dup
  remotes.each do |ident,remote|
    object = yield(ident)
    result = remote.call(object)
    insert_into_(personalised_form,ident,result)
  end
  personalised_form
end
Run Code Online (Sandbox Code Playgroud)

而且我看到它是否如此工作:

pp remotes(forms,remotes) do |ident|
  case(ident)
    when :get_assets
      '@Userobject'
  end
end
Run Code Online (Sandbox Code Playgroud)

问题是,ruby似乎认为我没有将一个块传递给该remotes函数.

为什么红宝石坚持认为我没有通过一个街区?(它no block given (yield) (LocalJumpError)具体给出了).

认为它不相关,遥控器是包含键和Proc的散列,而形式只是一个特定结构的散列,其中使用ident插入proc的结果来定位正确的插入点

ruby block proc

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

为什么传递方法作为参数(&block)不起作用?

clock 采取一个块:

def clock(&block)
  hours = Time.new.hour
  puts hours
  hours.times do
    block.call
  end
end
Run Code Online (Sandbox Code Playgroud)

这可以工作,并"DONG"根据今天的小时数放在屏幕上:

clock do
  puts "DONG..."
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试传递dong方法:

def dong
  puts "DONG..."
end
Run Code Online (Sandbox Code Playgroud)

clock作为其块.这个:

clock(dong)
Run Code Online (Sandbox Code Playgroud)

抛出错误:

`clock': wrong number of arguments (1 for 0) (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么第一个有效,但第二个没有?您是否必须明确定义要传递的代码块,还是可以将另一个方法作为代码块引用?

ruby proc

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

SAS:在proc sql中总结

我正在开发一个SAS项目,我被要求总结行.这是我的代码:

proc sql;
  create table total as
    select 
      sum(ans1) as sum1,
      sum(ans2) as sum2,
      sum(ans3) as sum3,
      sum(ans4) as sum4
    from proj.scores;
quit;
Run Code Online (Sandbox Code Playgroud)

我的问题是有150个变量(标记为ans1-ans150).有没有办法把它们各自相加而不必继续我一直到150?

sql sum sas proc

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

Ruby - 为什么使用Block作为参数?

我在ruby中理解Blocks vs Procs时遇到了麻烦.我得到一个基本的想法,即proc是一个保存为对象的方法,你可以反复调用,而不必一遍又一遍地继续编写相同的代码行.

我的麻烦在于接受块作为方法中的参数.

作业问题非常简单.

编写一个接受块作为参数的方法,并反转字符串中的所有单词.

以下是他们正在寻找的答案.

def reverser(&prc)
  sentence = prc.call
  words = sentence.split(" ")
  words.map { |word| word.reverse }.join(" ")
end
Run Code Online (Sandbox Code Playgroud)

我有两个问题 -

1 你怎么称呼这种方法,因为我放了

print reverser("Hello") 
Run Code Online (Sandbox Code Playgroud)

我得到一个错误"错误的参数数量(给定1,预期为0)"

其次,为什么不写下面的方法呢?编写一个占用块的方法有什么好处?

def reverser(string)
  string.split.map{|x| x.reverse}.join(" ")
end 
Run Code Online (Sandbox Code Playgroud)

ruby block proc

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

如何在Ruby中将方法转换为proc以用于&method

出于学习目的,我正在研究是否可以转换以下三个方法调用:

Foo::Bar.logger.debug(a)
Foo::Bar.logger.debug(b)
Foo::Bar.logger.debug(c)
Run Code Online (Sandbox Code Playgroud)

使用速记proc &method方法转换为单行语句:

[a, b, c].each(&method(:'Foo::Bar.logger.debug'))
Run Code Online (Sandbox Code Playgroud)

.debug.to_proc自然地回应:

NameError: undefined method `Foo::Bar.logger.debug' for class `#<Class:Foo>'
Run Code Online (Sandbox Code Playgroud)

这确实有效;但是,它不像前者那么简洁:

logger = Proc.new { |x| Foo::Bar.logger.debug(x) }                                                                                                           
[a, b, c].each(&logger)
Run Code Online (Sandbox Code Playgroud)

前一种方法可行吗?

ruby proc

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

为什么我的过滤器方法没有删除一些应该删除的元素?

我正在尝试创建一个名为 filer_out 的方法!它接受一个数组和一个 proc,并返回相同的数组,但每个元素在通过 proc 时都返回 true,但需要注意的是我们不能使用 Array#reject!

我是这样写的:

def filter_out!(array, &prc)
    array.each { |el| array.delete(el) if prc.call(el)}
end

arr_2 = [1, 7, 3, 5 ]
filter_out!(arr_2) { |x| x.odd? }
p arr_2
Run Code Online (Sandbox Code Playgroud)

但是当我运行代码时,打印出来的是:

[7, 5]
Run Code Online (Sandbox Code Playgroud)

即使答案应该是:

[]
Run Code Online (Sandbox Code Playgroud)

在查看解决方案后,我看到首先使用了 Array#uniq:

def filter_out!(array, &prc)
    array.uniq.each { |el| array.delete(el) if prc.call(el) }
end

arr_2 = [1, 7, 3, 5 ]
filter_out!(arr_2) { |x| x.odd? }
p arr_2
Run Code Online (Sandbox Code Playgroud)

并显示了正确的输出:

[]
Run Code Online (Sandbox Code Playgroud)

所以我想我的问题是,为什么必须使用 Array#uniq 才能获得正确的解决方案?感谢您的帮助!

ruby array-unique proc

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

标签 统计

proc ×10

ruby ×5

block ×2

sas ×2

tcl ×2

array-unique ×1

arrays ×1

c ×1

clause ×1

having ×1

linux ×1

sql ×1

sum ×1

trace ×1

variables ×1