LINUX.ORG.RU

Сообщения aido

 

Плата не шьется=(

Доброго времени суток!

Собственно, сабж. Плата - STM32F3Discovery. OpenOCD выдает следующее:

$ openocd -f board/stm32f3discovery.cfg -f extra/stm32f3-openocd.cfg -c "stm_flash `pwd`/main.bin" -c shutdown
Open On-Chip Debugger 0.8.0 (2014-10-25-15:24)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.sourceforge.net/doc/doxygen/bugs.html
srst_only separate srst_nogate srst_open_drain connect_deassert_srst
Info : This adapter doesn't support configurable speed
Info : STLINK v2 JTAG v16 API v2 SWIM v0 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 2.924598
Error: init mode failed
in procedure 'transport'
Runtime Error: extra/stm32f3-openocd.cfg:5: 
in procedure 'script' 
at file "embedded:startup.tcl", line 58
in procedure 'init' called at file "extra/stm32f3-openocd.cfg", line 5

Файл stm32f3-openocd.cfg у меня стандартный

Что за дичь произошла, что openocd даже инитнуться не может?

 

aido
()

STM32F3Discovery. Из-за чего мигает LD2 красным?

Собственно, сабж. Из-за чего он может мигать. В документации ничего существенного про мигание не говорится. Сказано только, что:

а) LD2 предназначен для идентификации соединения USB.

б) дефолтное состояние - красный.

в) Если идет передача через ST-Link, он мигает красно-зеленым.

Такое поведение говорит о внутренних багах программы (а они там есть, куда ж без них=) ) или он показывает, что плата в режиме ожидания сигнала от Мастер-девайса, или просто, что плата соединена через User USB?

 

aido
()

root. libusb. STM32F3

Как разрешить писать программе в USB-HID устройство без прав рута? libusb_open выдает код ошибки -3: access_denied.

 , ,

aido
()

линкер выдает нечто странное. STM32F3Discovery

Доброго времени суток!

Пишу прогу для взаимодействия STM32F3Discovery с компом по USB. На этапе линковки ld выдает следующее:

/usr/local/src/STM32F3-Discovery_FW_V1.1.0/inst/libstm32f3.a(usb_core.o): In function `Standard_SetConfiguration':
/usr/local/src/STM32F3-Discovery_FW_V1.1.0/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c:99: undefined reference to `Device_Table'
/usr/local/src/STM32F3-Discovery_FW_V1.1.0/inst/libstm32f3.a(usb_core.o): In function `Standard_ClearFeature':
/usr/local/src/STM32F3-Discovery_FW_V1.1.0/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c:322: undefined reference to `Device_Table'
/usr/local/src/STM32F3-Discovery_FW_V1.1.0/Libraries/STM32_USB-FS-Device_Driver/src/usb_core.c:322: undefined reference to `Device_Property'

And so on

При сборке libstm32f3.a проблем с линковкой не возникало, но судя по вышеприведенному выводу, именно libstm32f3.a не правильно слинковалась. Или я что-то забыл подключить...

Вот часть Makefile моего приложения, ответственная за сборку:

SRCS = main.c system_stm32f30x.c hw_config.c stm32f30x_it.c usb_desc.c usb_endp.c usb_istr.c usb_prop.c usb_pwr.c

# all the files will be generated with this name (main.elf, main.bin, main.hex, etc)
PROJ_NAME=usb_client

# Location of the Libraries folder from the STM32F0xx Standard Peripheral Library
STD_PERIPH_LIB = /usr/local/src/STM32F3-Discovery_FW_V1.1.0/inst

# Location of the linker scripts
LDSCRIPT_INC=Device/ldscripts

# location of OpenOCD Board .cfg files (only used with 'make program')
OPENOCD_BOARD_DIR=board

# Configuration (cfg) file containing programming directives for OpenOCD
OPENOCD_PROC_FILE=extra/stm32f3-openocd.cfg

# that's it, no need to change anything below this line!

###################################################

PREFIX	=	arm-none-eabi-
CC=$(PREFIX)gcc
AR=$(PREFIX)ar
GDB=$(PREFIX)gdb
OBJCOPY=$(PREFIX)objcopy
OBJDUMP=$(PREFIX)objdump
SIZE=$(PREFIX)size

CFLAGS  = -Wall -std=c99 -Os  
CFLAGS += -mlittle-endian -mcpu=cortex-m4  -march=armv7e-m -mthumb
CFLAGS += -mfpu=fpv4-sp-d16 -mfloat-abi=hard
CFLAGS += -ffunction-sections -fdata-sections

LDFLAGS += -Wl,--gc-sections -Wl,-Map=$(PROJ_NAME).map

###################################################

vpath %.a $(STD_PERIPH_LIB)

CFLAGS += -include $(STD_PERIPH_LIB)/stm32f30x_conf.h -I $(STD_PERIPH_LIB) 

STARTUP = Device/startup_stm32f30x.s # add startup file to build

# need if you want to build with -DUSE_CMSIS 
#SRCS += stm32f0_discovery.c
#SRCS += stm32f0_discovery.c stm32f0xx_it.c

OBJS = $(addprefix objs/,$(SRCS:.c=.o))
DEPS = $(addprefix deps/,$(SRCS:.c=.d))

###################################################

.PHONY: all proj program debug clean reallyclean

all: proj

-include $(DEPS)

proj: 	$(PROJ_NAME).elf

dirs: deps objs
deps objs:
	@mkdir -p $@

objs/%.o : src/%.c dirs
	$(CC) $(CFLAGS) -c -o $@ $< -MMD -MF deps/$(*F).d

$(PROJ_NAME).elf: $(OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@ $(STARTUP) -L$(STD_PERIPH_LIB) -lstm32f3 -L$(LDSCRIPT_INC) -Tstm32f3.ld
	$(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex
	$(OBJCOPY) -O binary $(PROJ_NAME).elf $(PROJ_NAME).bin
	$(OBJDUMP) -St $(PROJ_NAME).elf >$(PROJ_NAME).lst
	$(SIZE) $(PROJ_NAME).elf

В интернетах нашел следующее: http://ravenium.ru/stm32-и-usb-hid-это-просто/

Но что я все-таки не включил?

 ,

aido
()

Очумелые ручки. Паяем феном.

Доброго времени суток!

Отвалился USB-mini порт на одном девайсе (сами и порт, и девайс целы, пайка производителя развалилась). Покуда уж у меня стояла-бездействовала паяльная станция, решил отремонтировать, но оказалось, что паста почему-то не липнет к залуженным контактам, хоть 5 минут грей на 250 градусах, хотя по паспорту должна бы уже при 180 расплавиться. Паста просто затвердевала на контактах, но не плавилась и контакты, соответственно, не спаивались. Пробовал менять (Тиноль -> SolderPlus), результат тот же.

Может температуру снизить или напор воздуха?

P.S.: кривизна рук всегда обратно пропорциональна количеству теоретических знаний, закрепленных на практике.=) Для практики у меня и время, и средства есть, а вот знаний, видимо, не хватает...

 

aido
()

LFS+systemd не видит Wifi

Доброго времени суток!

Решил все-таки поставить до конца себе BLFS, но встал вопрос, как конфигурировать для него сеть.

dmesg выдал следующее:

[    5.347364] systemd[1]: Listening on networkd rtnetlink socket.
[    5.347379] systemd[1]: Starting networkd rtnetlink socket.
[    5.726667] systemd-journald[1144]: [b]Failed to set file attributes: Inappropriate ioctl for device[/b]
[    5.779496] systemd[1]: Started Journal Service.
[    5.792387] systemd-sysctl (1146) used greatest stack depth: 12704 bytes left
[    6.399048] cfg80211: Calling CRDA to update world regulatory domain
[    6.943899] r8169 0000:03:00.0 enp3s0: renamed from eth0
[    7.216243] ath9k 0000:04:00.0 wlp4s0: renamed from wlan0
[    8.192080] Adding 12582908k swap on /dev/sda3.  Priority:-1 extents:1 across:12582908k 
[    8.922335] EXT4-fs (sda11): re-mounted. Opts: errors=remount-ro
[    8.998055] systemd-journald[1144]: Received request to flush runtime journal from PID 1
[    9.551057] cfg80211: Calling CRDA to update world regulatory domain
[   12.703051] cfg80211: Calling CRDA to update world regulatory domain
[   15.855040] cfg80211: Calling CRDA to update world regulatory domain
[   19.007072] cfg80211: Calling CRDA to update world regulatory domain
[   22.159065] cfg80211: Calling CRDA to update world regulatory domain
[   25.311072] cfg80211: Calling CRDA to update world regulatory domain
[   28.463071] cfg80211: Calling CRDA to update world regulatory domain
[   31.615039] cfg80211: Calling CRDA to update world regulatory domain
[   34.767043] cfg80211: Exceeded CRDA call max attempts. Not calling CRDA
[   71.986051] IPv6: ADDRCONF(NETDEV_UP): wlp4s0: link is not ready
[  211.211519] EXT4-fs (sda4): mounted filesystem with ordered data mode. Opts: (null)

networkctl -a:

IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           n/a         n/a       
  2 enp3s0           ether              off         unmanaged 
  3 wlp4s0           wlan               no-carrier  configuring 
  4 sit0             sit                off         unmanaged 

4 links listed.

networkctl status:

cat /networkctl.status 
* 3: wlp4s0
   Link File: /lib/systemd/network/99-default.link
Network File: n/a
        Type: wlan
       State: no-carrier (configuring)
        Path: pci-0000:04:00.0
      Driver: ath9k
      Vendor: Qualcomm Atheros
       Model: AR9285 Wireless Network Adapter (PCI-Express) (AW-NE785 / AW-NE785H 802.11bgn Wireless Full or Half-size Mini PCIe Card)
  HW Address: 00:25:d3:80:be:06 (AzureWave Technologies, Inc)
         MTU: 1500

ifconfig говорит, что интерфейс подымается, но

iwlist wlp4s0 scanning
говорит, что ссылка не создана. Вопрос: какая ссылка ему нужна и на что он ругается?

 , ,

aido
()

Сокеты. Основы. С++

Доброго времени суток!

Столкнулся с проблемой получения данных через сокеты, если мы не знаем размера передаваемого файла. В случае html-страниц нечто подобное (http://cboard.cprogramming.com/cplusplus-programming/147455-how-receive-large...) работает нормально, но как поступить в случае, если файл формируется по запросу на сервер или в случае, если надо с определенной страницы скачать определенную картинку? Желательно подобное сделать без использования libcurl и прочих сторонних библиотек.

 ,

aido
()

Обновление до Lubuntu 15.04

Всем доброго дня! На днях решил поставить сабж. Работает почти все адекватно, не считая смены раскладки клавиатуры (и в графическом, и в консольном режиме) и глючного отображения всплывающих сообщений (libnotify и иже с нею), но это мелочи. Больше напрягает все же смена раскладки - меняться она может только если тыкнуть мышью по иконке в трее, при этом в ibus-setup методом ввода стоит <Control><Shift>.

Как ibus и xkb заставить работать?

 ,

aido
()

передача массивов «на лету»

Доброго времени суток!

Есть огромный двумерный вектор вида

vector<vector<Vector3D> >(n, vector<Vector3D>(N));

Но одна из стандартных структур библиотеки GSL (gsl_monte_function) просит на вход функцию, которая в переменных принимает массив типа double *.

Есть ли способ, не переписывая стандартную функцию под себя и не создавая дополнительный одномерный массив «на лету», переправлять обращения (чтение/запись) к двумерному вектору?

 ,

aido
()

прибить Terminology к рабочему столу

Всем привет!

Пользую openbox, и вот решил выставить вместо обоев на рабочем столе окно терминала. В качестве терминала был выбран Terminology (вероятно зря, зато красиво=) ). Собственно вопросы:

1) как сделать терминал всегда на заднем плане? в том числе, чтобы Win+D (свернуть все окна) на него не действовало. wmctrl выставляет окно назад, но как раз с Win+D проблемы.

2) Как перестать отображать это окно на панели задач?

3) Как заставить Terminology запоминать текущую конфигурацию (тэйлы и прочие параметры)? Конфиги в ~/.config/terminology/config/standard/base.cfg нечитаемые, в манах информации нет.

4) оффтоп: есть ли какой-нибудь полутерминальный файловый менеджер? в смысле, который выглядит как обычный терминал, только со встроенной поддержкой вывода графики (иконок файлов, миниатюр фотографий, это не умеет terminology), открытия файлов по клику (это умеет terminology), тэйлов.

 , ,

aido
()

Системы восстановления

Доброго времени суток!

Недавно вот задался вопросом повышения стабильности системы. Если конкретнее, то есть ли такие программы, с помощью которых можно будет создать раздел восстановления как на маке или в убунте меньшей кровью и бОльшим выхлопом?

Конечно, можно сделать все сурово: найти флэшку (или добавить раздел на винт), на который скинуть еще одну минимальную систему, которой хватит для восстановления первой, написать скрипты диагностики компа. Но не хочется. Хочется добавить компу кнопку «сделать все хорошо»=)

Ах, и да: было б круто, если б она была OpenSource.

 

aido
()

Не загружает EFI+Ubuntu

Всем привет!

ставил сегодня Ubuntu 14.04 x64 на EFI-based комп с предустановленной, но после перезагрузки не видит винт вообще - ни винду, ни убунту.

использованы были разделы /, /boot, /boot/efi . boot флаг установлен на раздел с efi.

Пробовал поправить все через boot-repair, как написано здесь, но безрезультатно.

Как можно исправить этот загрузчик?

 , ,

aido
()

не собирается ROOT.CERN

Доброго времени суток!

Во время установки этого пакета появилась появилась вот такая ошибка.

Failed to emerge sci-physics/root-6.00.02, Log file:

'/var/tmp/portage/sci-physics/root-6.00.02/temp/build.log'

* Messages for package sci-physics/root-6.00.02:

* There are extra options on packages not yet in Gentoo: * Afdsmgrd, AliEn, castor, Chirp, dCache, gfal, Globus, gLite, * HDFS, Monalisa, MaxDB/SapDB, SRP. * You can use the env variable EXTRA_ECONF variable for this. * For example, for SRP, you would set: * EXTRA_ECONF="--enable-srp --with-srp-libdir=/usr/lib64" * You are using a g++ without OpenMP capabilities * ERROR: sci-physics/root-6.00.02::science failed (setup phase): * Need an OpenMP capable compiler * * Call stack: * ebuild.sh, line 93: Called pkg_setup * root-6.00.02.ebuild, line 158: Called die * The specific snippet of code: * die «Need an OpenMP capable compiler» * * If you need support, post the output of `emerge --info '=sci-physics/root-6.00.02::science'`, * the complete build log and the output of `emerge -pqv '=sci-physics/root-6.00.02::science'`. * The complete build log is located at '/var/tmp/portage/sci-physics/root-6.00.02/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/sci-physics/root-6.00.02/temp/die.env'. * Working directory: '/usr/lib64/portage/pym' * S: '/var/tmp/portage/sci-physics/root-6.00.02/work/root'

Судя по всему, root.cern требует тулчейн, собранный с поддержкой OpenMP, но при пересборке gcc c USE=«openmp» (да и всего тулчейна) ошибка не проходит. Есть идеи, как это исправляется?

 ,

aido
()

Извращение с emerge + clang

Собственно, появилась вот такая идея: хочется потестить, на что же все-таки способен clang.

Вот пара вариантов, как я хотел бы пересобрать систему:

1) допустим, я хочу поставить всё, что возможно, используя clang -flto, что невозможно - просто clang, что и так невозможно - gcc.

2) допустим, я хочу поставить всё, что возможно, используя оптимизатор кода clang (через преобразование в байт-код, оптимизацию и собственно компиляцию, возможно, параллельно пользуясь некоторыми другими плюшками clang), что заменяет одну строчку в Makefile тремя такого вида:

clang -O3 -emit-llvm hello.c -c -o hello.bc

llc hello.bc -o hello.s

gcc hello.s -o hello.native 
(взято отсюда)

Вопрос: какая религиозная практика позволяет так переделывать ./configure автоматом?

 

aido
()

установка ТОЛЬКО документации в Gentoo

Хм... поставил в систему все нужные мне пакеты, но в самый последний момент вспомнил, что забыл воткнуть doc в USE. Не переустанавливать же все пакеты.. Как можно сказать emerge устанавливать ТОЛЬКО документацию к выбранным пакетам без перекомпиляции самих пакетов?

 

aido
()

Установка двух одинаковых библиотек, собранных с разными флагами

Доброго времени суток!

Каким образом в gentoo можно установить две версии одной и той же библиотеки, собранные с разными флагами? Пробовал в разные слоты запихнуть, но у меня это получилось только с разными версиями программ.

Во время установки root.cern 6.00.02 обнаружились следующие проблемы:

dev-haskell/resourcet:0

  (dev-haskell/resourcet-1.1.2.2::gentoo, ebuild scheduled for merge) pulled in by
    >=dev-haskell/resourcet-1.1:=[profile?] required by (dev-haskell/conduit-1.1.6::gentoo, ebuild scheduled for merge)

  (dev-haskell/resourcet-0.4.9::gentoo, ebuild scheduled for merge) pulled in by
    <dev-haskell/resourcet-0.5:=[profile?] required by (dev-haskell/http-conduit-1.9.5.1::gentoo, ebuild scheduled for merge)
    (and 1 more with the same problem)

dev-libs/libxml2:2

  (dev-libs/libxml2-2.9.1-r5::gentoo, ebuild scheduled for merge) pulled in by
    dev-libs/libxml2:2[!icu?] required by (dev-qt/qtwebkit-4.8.5::gentoo, ebuild scheduled for merge)

  (dev-libs/libxml2-2.9.1-r4::gentoo, installed) pulled in by
    dev-libs/libxml2:=[icu] required by (www-client/chromium-37.0.2062.94::gentoo, installed)
    dev-libs/libxml2:2/2=[icu] required by (www-client/chromium-37.0.2062.94::gentoo, installed)

Или с таким лучше сразу в bugzilla?

 ,

aido
()

как создать сервер? нужны подробные примеры конфигов

Доброго времени суток!

Я понимаю, что тема стара как мир и такие вопросы бы лучше спрашивать в разделе для новичков, но, собсно, сабж.

Есть 3 компа:

1) стационарник (lubuntu 14.04) с двумя сетевыми портами.

2) ноут1(lubuntu 14.04). должен принимать по eth0 трафик с 1 компа и раздавать по wlan0 инет на второй ноут, который работает на винде.

Требуется создать на стационарнике сервер, который будет перенаправлять http/ftp запросы с других компов в инет, если сайт с запрашиваемым именем не найден на самом сервере (предполагается, что сайтов будет несколько).

Раздача wifi настраивается на раз, а вот как связать стационарник с ноутом - сколько ни бился, никак понять не могу.

Задача несколько осложняется тем, что на стационарнике не хочет работать постоянная смена адреса. То есть смена через ifconfig работает, а если прописать в /etc/network/interfaces:

auto eth1
iface eth1 inet dhcp
pre-up ifconfig eth1 hw ether MY:MA:CA:DD:RE:SS

то при ifconfig eth1 down/up появляется все равно старый мак. пробовал и в /etc/udev/rules.d/70-persistent-net.rules сменить мак, но после перезапуска udev и ifconfig eth1 down/up все равно откуда-то берется старый мак-адрес.

Скажите хоть, куда копать? Bind9? Squid? nginx? Ну и, желательно, - где копать=) интересует самые простые примеры конфигов/методы настройки, чтобы хоть первая часть задачи заработала.

 , ,

aido
()

Joomla 3. не удалось зарегистрировать пользователя код подтверждения не найден

Добрый день! Намедни решил поиграться с Joomla 3 + LEMP. Что-то получилось, чтото совсем никак не хочет получаться. В частности, не получается сделать регистрацию пользователей стандартными средствами Joomla. А точнее, наверное, LEMP...

Когда я регистрирую нового пользователя, то сайт долго-долго висит, но сам пользователь появляется (с флагами «Не включен» и «Не активирован») и ему на мыло отправляется запрос на регистрацию со ссылкой для подтверждения. Когда я перехожу по этой ссылке, то сайт говорит, что:

Предупреждение

Не удалось зарегистрировать пользователя код подтверждения не найден

Также, в Nginx в лог пишет:

2014/08/01 21:18:04 [error] 12474#0: *1 FastCGI sent in stderr: «PHP message: PHP Fatal error:  Call to a member function where() on a non-object in /media/Server/components/com_users/models/registration.php on line 521» while reading response header from upstream, client: 127.0.0.1, server: a-server, request: «POST /component/users/?task=registration.register HTTP/1.1», upstream: «fastcgi://unix:/var/run/php5-fpm.sock:», host: «aidos-server», referrer: "http://a-server/component/users/?view=registration"

Вот конфиг /etc/nginx/sites-available/default:

# You may add here your
# server {
#	...
# }
# statements for each of your virtual hosts to this file

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

server {
	listen 80 default_server;
	listen [::]:80 default_server ipv6only=on;

	# root /usr/share/nginx/html;
	root /media/Server;
	index index.php index.html index.htm;

	# Make site accessible from http://localhost/
	server_name aidos-server;

	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		# try_files $uri $uri/ =404;
		# try_files $uri $uri/ /index.php?q=$request_uri;
		  try_files $uri $uri/ /index.php?$args;
		# Uncomment to enable naxsi on this location
		# include /etc/nginx/naxsi.rules
	}
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
    location ~* /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
                return 403;
                error_page 403 /403_error.html;
        }
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_read_timeout 150;
    }
}

Вот конфиг /etc/nginx/nginx.conf:

user www-data;
worker_processes 2;
pid /run/nginx.pid;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";
application/x-javascript text/xml application/xml application/xml+rss text/javascript;

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

Как это исправляется?

aido
()

перенаправление вывода С++. WTF?

Доброго времени суток! Решил изучить Unix-way, а в частности, перенаправление ввода-вывода в программах. Решил сделать простейший конвейер, но не понимаю, почему он не работает. Гуглить пробовал, не вышло. В том числе и по ЛОРу. Вот код:

#include <iostream>
using namespace std;
int main(int argv, char** argc)
{
	cout<<argc[1];
	return 0;
}
Пробовал также вот такой:
#include "stdio.h"
using namespace std;
int main(int argv, char** argc)
{
	printf("%s",argc[1]);
	return 0;
}
Проверяю конвейер так:
./prog /usr | ls
То есть, как я понял, такая конструкция мне должна вывести содержимое папки /usr, но выводит только ls текущей директории. ЧЯДНТ?

 , , ,

aido
()

Как при помощи llvm визуализировать граф потока выполнения всей программы или каждого отдельного ее компонента?

Добрый день! Собственно сабж.

Читая маны и хабр, наткнулся на строчки вида:

clang -O3 -emit-llvm hello.c -c -o hello.bc
llvm-as < hello.bc | opt -analyze -view-cfg
которая, судя по всему, может показать граф программы, если она состоит из 1 файла.

Вопрос в том, как то же самое сделать автоматически для большого сравнительно большого программного пакета? Сдается мне, что можно как-то поправить Makefile, чтобы вместо бинарников появился биткод, но вот как?..

 , ,

aido
()

RSS подписка на новые темы