我正在研究Linux环境.我有两个'C'源包train和test_train.
现在我想用gprof生成一个调用图,它显示了主程序中函数的调用顺序以及libtrain.so中的函数调用顺序.
我正在使用-pg选项编译和链接两个包,调试级别为o0.在我执行./train-test之后,生成gmon.out.然后我做:
$ gprof -q ./train-test gmon.out
Run Code Online (Sandbox Code Playgroud)
这里,输出显示列车测试中的函数调用图,但不显示libtrain.so中的调用图
可能是什么问题呢 ?
我的routes.rb中有以下内容
map.resources :novels do |novel|
novel.resources :chapters
end
Run Code Online (Sandbox Code Playgroud)
通过上面定义的路由,我可以使用访问章节xxxxx.com/novels/:id/chapters/:id.但这不是我想要的,章节模型有另一个叫做数字的字段(对应章节编号).我想通过URL来访问每一章
xxxx.com/novels/:novel_id/chapters/:chapter_number.如何在不明确定义命名路由的情况下完成此操作?
现在我通过使用以下命名路径定义ABOVE map.resources:novels来做到这一点
map.chapter_no 'novels/:novel_id/chapters/:chapter_no', :controller => 'chapters', :action => 'show'
Run Code Online (Sandbox Code Playgroud)
谢谢.
我使用ant文件通过hudson在mercurial中构建一个java项目.mailnine哈德森的工作运行得很好.最近创建了一个新的分支并通过commnd line推送到服务器:
hg branch newbranch
hg commit
hg push -f
mainine不包含这些变化,仍然很好.我已经设置了一个与主线相同设置的新作业(实际上是在hudson中复制主线作业),并指定了newbranch.
但是,newbranch作业构建的代码与主线相同.如果我命令行克隆存储库并切换到newbranch,则所有内容都按预期显示.这似乎是一个哈德森配置故障,除非我的merqurial技能偏离正轨.
我还尝试使用与主线相同的设置从sratch设置作业,并添加了newbranch规范,没有任何运气.
我错过了什么?任何想法?
我正在实施名为Suomen Verkkomaksut的数字支付服务界面.有关付款的信息将通过HTML表单发送给他们.为了确保在传输过程中没有人混淆信息,MD5哈希在两端都会计算出一个没有发送给他们的特殊密钥.
我的问题是,由于某种原因,他们似乎决定传入的数据是用ISO-8859-1而不是UTF-8编码的.我发送给它们的哈希是用UTF-8字符串计算的,因此它与它们计算的哈希值不同.
我尝试使用以下代码:
String prehash = "6pKF4jkv97zmqBJ3ZL8gUw5DfT2NMQ|13466|123456||Testitilaus|EUR|http://www.esimerkki.fi/success|http://www.esimerkki.fi/cancel|http://www.esimerkki.fi/notify|5.1|fi_FI|0412345678|0412345678|esimerkki@esimerkki.fi|Matti|Meikäläinen||Testikatu 1|40500|Jyväskylä|FI|1|2|Tuote #101|101|1|10.00|22.00|0|1|Tuote #202|202|2|8.50|22.00|0|1";
String prehashIso = new String(prehash.getBytes("ISO-8859-1"), "ISO-8859-1");
String hash = Crypt.md5sum(prehash).toUpperCase();
String hashIso = Crypt.md5sum(prehashIso).toUpperCase();
Run Code Online (Sandbox Code Playgroud)
不幸的是,两个散列都与值C83CF67455AF10913D54252737F30E21相同.根据Suomen Verkkomaksut的文档,此示例案例的正确值为975816A41B9EB79B18B3B4526569640E.
有没有办法用ISO-8859-1字符串计算Java中的MD5哈希?
更新:在等待Suomen Verkkomaksut的回答时,我发现了另一种制作哈希的方法.Michael Borgwardt纠正了我对字符串和编码的理解,并且我找到了一种从byte []创建哈希的方法.
Apache Commons是一个很好的库源,我发现它们的DigestUtils类有一个md5hex函数,它接受byte []输入并返回一个32字符的十六进制字符串.
由于某种原因,这仍然无效.这两个都返回相同的值:
DigestUtils.md5Hex(prehash.getBytes());
DigestUtils.md5Hex(prehash.getBytes("ISO-8859-1"));
Run Code Online (Sandbox Code Playgroud) 很抱歉这个模糊的标题,但这个问题的一部分是这两种语法样式的调用:
let foo1 x =
match x with
| 1 -> "one"
| _ -> "not one"
let foo2 = function
| 1 -> "one"
| _ -> "not one"
Run Code Online (Sandbox Code Playgroud)
另一部分是两者之间的区别,当我想要使用其中一个时?
公共MyObj作为对象
Public Function Test(t as Type) as Boolean
Return TypeOf MyObj is t ' does not work
End Function
Run Code Online (Sandbox Code Playgroud)
谢谢.
================================================== ==================
为了清楚起见,我将使用一个完整的例子,最初被认为是一点修改.
我使用一个接口,并想知道参数中传递的对象(实现I)是否与内部字段相同(I; A:I; AA:A; B:I).
首先,(a)我需要确切的类别识别(只有A = A,B = B,AA = AA),我也希望(b)具有"继承等价"(A = A和A = AA但A <> B)
Option Strict On
Option Explicit On
Public Class Form1
' object to test
Private objI As I
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles …Run Code Online (Sandbox Code Playgroud) 我想计算两个日期之间的差异.这就是我目前使用的:
int currentyear = DateTime.Now.Year;
DateTime now = DateTime.Now;
DateTime then = new DateTime(currentyear, 12, 26);
TimeSpan diff = now - then;
int days = diff.Days;
label1.Text = days.ToString() + " Days Until Christmas";
Run Code Online (Sandbox Code Playgroud)
一切正常,除了休息一天.我假设这是因为它不计算一整天不到24小时.有没有办法让它这样做?谢谢.
是否有任何STL算法或标准方法来查找字符串中特定子串的出现次数?例如在字符串中:
'How do you do at ou'
Run Code Online (Sandbox Code Playgroud)
字符串"ou"出现两次.我尝试了一些带有和没有谓词的STL算法,但我发现STL的那些算法想要比较字符串的组件,在我的例子中是char但不能?比较子串.我想出这样的事情:
str - string
obj - 我们正在寻找的子串
std::string::size_type count_subs(const std::string& str, const std::string& obj)
{
std::string::const_iterator beg = str.begin();
std::string::const_iterator end = str.end();
std::string::size_type count = 0;
while ((beg + (obj.size() - 1)) != end)
{
std::string tmp(beg, beg + obj.size());
if (tmp == obj)
{
++count;
}
++beg;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
谢谢.