小编Jos*_*osh的帖子

如何使用LLVM正确插入函数调用?

我正在尝试设置一个传递,它将在main的开头插入几个全局变量以及几个函数调用.但是,我认为我在正确设置功能描述时遇到问题.我的代码编译,但当我尝试运行传递时,我收到此错误:

void llvm::CallInst::init(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const llvm::Twine&):         
Assertion `(Args.size() == FTy->getNumParams() || (FTy->isVarArg() && Args.size() > FTy- 
>getNumParams())) && "Calling a function with bad signature!"' failed. 
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止编写的代码:

#include "llvm/IR/Instructions.h"
#include "llvm/Pass.h"
#include "llvm/Support/InstIterator.h"
#include "llvm/IR/Function.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Value.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Type.h"
#include "llvm/IR/Module.h"

using namespace llvm;
namespace{

struct fun_insert : public FunctionPass{
  static char ID;

  fun_insert():FunctionPass(ID){}

  virtual bool runOnFunction(Function &F){
    if (F.getName() == "main"){
      for (inst_iterator I = inst_begin(F), E= inst_end(F); …
Run Code Online (Sandbox Code Playgroud)

llvm

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

谷歌的网址编码?

我注意到 Google 没有对 URL 的查询部分中的所有特殊字符进行编码。例如:

Placing this string in Google's search: !@#$%^&*()

Yields this URL: https://www.google.com/#q=!%40%23%24%25^%26*()
Run Code Online (Sandbox Code Playgroud)

请注意,!、^、*、( 和 ) 未编码。

一些字符,例如 : 或 < 被认为是不安全的或保留的,但 Google 不会对它们进行编码。

有人能解释一下谷歌为什么这样做吗,如果他们有一份参考文件,说明哪些字符被编码,哪些没有?

谢谢你的帮助!

url

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

使用Python中的正则表达式进行搜索和替换

我有一个充满推文的日志文件.每条推文都在自己的行上,这样我就可以轻松地遍历文件了.

一个示例推文就像这样:

@ sample This is a sample string $ 1.00 # sample
Run Code Online (Sandbox Code Playgroud)

我想通过删除特殊字符和下面的字母数字字符之间的空格来清除它."@ s","$ 1","#s"

所以它看起来像这样:

@sample This is a sample string $1.00 #sample
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用正则表达式来匹配这些实例,因为它们可以变量,但我不确定如何执行此操作.

我一直在使用re.sub()和re.search()来查找实例,但我正在努力弄清楚如何在保持字符串完整的同时删除空格.

这是我到目前为止的代码:

#!/usr/bin/python

import csv
import re
import sys
import pdb
import urllib

f=open('output.csv', 'w')

with open('retweet.csv', 'rb') as inputfile:
    read=csv.reader(inputfile, delimiter=',')
    for row in read:
        a = row[0]
        matchObj = re.search("\W\s\w", a)
        print matchObj.group()

f.close()
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

python regex

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

使用python复制CSV文件的一列并将其添加到另一文件

我有两个文件,第一个文件名为book1.csv,看起来像这样:

 header1,header2,header3,header4,header5
 1,2,3,4,5
 1,2,3,4,5
 1,2,3,4,5
Run Code Online (Sandbox Code Playgroud)

第二个文件称为book2.csv,如下所示:

 header1,header2,header3,header4,header5
 1,2,3,4
 1,2,3,4
 1,2,3,4
Run Code Online (Sandbox Code Playgroud)

我的目标是将book1.csv中包含5的列复制到book2.csv中的相应列。

我的代码的问题似乎是它没有正确地追加,也没有选择我要复制的索引,这也导致我选择了错误的索引位置。输出如下:

 header1,header2,header3,header4,header5
 1,2,3,4
 1,2,3,4
 1,2,3,41,2,3,4,5
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

 import csv

 with open('C:/Users/SAM/Desktop/book2.csv','a') as csvout:
    write=csv.writer(csvout, delimiter=',')
    with open('C:/Users/SAM/Desktop/book1.csv','rb') as csvfile1:
        read=csv.reader(csvfile1, delimiter=',')
        header=next(read)
        for row in read:
            row[5]=write.writerow(row)
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能使其正确附加?

谢谢你的帮助!

python csv

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

标签 统计

python ×2

csv ×1

llvm ×1

regex ×1

url ×1